/* Shared modern auth-page styling: login, OTP verification, forget-password. */
:root{
  --auth-primary:#0d9488;
  --auth-primary-dark:#0b7d73;
  --auth-primary-soft:#e3f8f5;
  --auth-ink:#101828;
  --auth-muted:#66748c;
  --auth-border:#e3e7ee;
  --auth-danger:#d64550;
  --auth-success:#1f9d6c;
  --auth-navy-start:#0f1e3d;
  --auth-navy-end:#0d4a49;
}
html,body{min-height:100%}
body.modern-auth{
  min-height:100vh;
  height:auto;
  padding:32px;
  font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:#f4f7fa;
  color:var(--auth-ink);
}
.modern-auth .auth-shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(320px,.82fr) minmax(430px,1.18fr);
  width:min(1040px,100%);
  min-height:600px;
  margin:0 auto;
  overflow:hidden;
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 60px rgba(13,44,42,.16);
  animation:authRise .45s ease-out;
}
@keyframes authRise{0%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:translateY(0)}}

/* Dark navy/teal brand panel -- deliberately not a light pastel panel */
.modern-auth .auth-brand-panel{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:42px;
  background:linear-gradient(160deg,var(--auth-navy-start) 0%,var(--auth-navy-end) 100%);
  color:#eef5f4;
}
.modern-auth .auth-brand-panel::before{
  content:'';
  position:absolute;
  top:-60px;right:-90px;
  width:300px;height:300px;
  background:radial-gradient(circle,rgba(13,148,136,.45),transparent 70%);
  filter:blur(2px);
  pointer-events:none;
}
.modern-auth .auth-brand-panel::after{
  content:'';
  position:absolute;
  bottom:-90px;left:-70px;
  width:260px;height:260px;
  border-radius:38% 62% 55% 45%/45% 40% 60% 55%;
  background:rgba(255,255,255,.05);
  pointer-events:none;
}
.modern-auth .brand-logo{position:relative;z-index:1;display:inline-flex;align-items:center;gap:11px;width:fit-content;color:#fff;text-decoration:none}
.modern-auth .brand-logo img{width:46px;height:46px;object-fit:contain;border-radius:10px;background:#fff;padding:5px}
.modern-auth .brand-logo span{font-size:1.05rem;font-weight:800;letter-spacing:-.01em}
.modern-auth .brand-content{position:relative;z-index:1;margin:auto 0;padding:36px 0}
.modern-auth .brand-badge{display:inline-flex;align-items:center;gap:7px;margin-bottom:16px;padding:6px 12px;border-radius:7px;background:rgba(13,148,136,.32);border:1px solid rgba(94,234,212,.28);color:#a7f3ea;font-size:.66rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.modern-auth .brand-content h2{max-width:320px;margin:0 0 14px;color:#fff;font-size:clamp(1.55rem,3vw,2.05rem);font-weight:800;letter-spacing:-.02em;line-height:1.24}
.modern-auth .brand-content>p{max-width:320px;margin:0;color:#b8c6c4;font-size:.88rem;line-height:1.7}
.modern-auth .trust-points{position:relative;z-index:1;display:grid;gap:9px}
.modern-auth .trust-point{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:#dbe9e7;font-size:.76rem;font-weight:600}
.modern-auth .trust-point i{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:rgba(94,234,212,.16);color:#5eead4;flex:none}

.modern-auth .auth-form-panel{display:flex;align-items:center;justify-content:center;padding:46px clamp(28px,6vw,60px)}
.modern-auth .login-box{width:100%;max-width:420px;min-height:0;margin:0;padding:0;border-radius:0;background:transparent;box-shadow:none}
.modern-auth .mobile-logo{display:none;margin-bottom:20px;text-align:center}
.modern-auth .mobile-logo img{width:56px;height:56px;border-radius:12px;background:var(--auth-navy-start);padding:6px}
.modern-auth .form-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;padding:4px 0 4px 12px;border-left:3px solid var(--auth-primary);color:var(--auth-primary-dark);font-size:.68rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.modern-auth .form-title{margin:0 0 8px;color:var(--auth-ink);font-size:1.7rem;font-weight:800;letter-spacing:-.02em}
.modern-auth .form-subtitle{margin:0 0 24px;color:var(--auth-muted);font-size:.85rem;line-height:1.6}

.modern-auth .alert{margin-bottom:16px;padding:11px 38px 11px 13px;border:0;border-radius:10px;font-size:.78rem}
.modern-auth .alert i{margin-right:6px}
.modern-auth .alert-danger{color:#b94f5a;background:#fff0f2}
.modern-auth .alert-success{color:#0b7d73;background:#e3f8f5}
.modern-auth .alert-info{color:#2b5aa6;background:#eaf2ff}

.modern-auth .field-group{margin-bottom:16px}
.modern-auth .field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}
.modern-auth .form-label{margin:0;color:#3d4a5c;font-size:.76rem;font-weight:700}
.modern-auth .forgot-link{color:var(--auth-primary-dark);font-size:.72rem;font-weight:650;text-decoration:none}
.modern-auth .forgot-link:hover{color:var(--auth-primary);text-decoration:underline}

.modern-auth .input-wrap{position:relative}
.modern-auth .input-wrap>i.field-icon{
  position:absolute;top:50%;left:6px;z-index:2;transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:9px;background:var(--auth-primary-soft);color:var(--auth-primary-dark);font-size:14px;
}
.modern-auth .input-wrap .form-control{width:100%;height:48px;padding:10px 44px 10px 50px;border:1px solid var(--auth-border);border-radius:11px;color:var(--auth-ink);background:#fbfcfe;font-size:.86rem;box-shadow:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.modern-auth .input-wrap .form-control::placeholder{color:#a7b1c2}
.modern-auth .input-wrap .form-control:focus{border-color:#7fcfc7;background:#fff;box-shadow:0 0 0 4px rgba(13,148,136,.12)}
.modern-auth .input-wrap .form-control.is-invalid{border-color:#e79aa1}
.modern-auth .password-toggle{position:absolute;top:50%;right:9px;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0;padding:0;border:0;border-radius:9px;background:transparent;color:#8a97ac;box-shadow:none;transform:translateY(-50%);cursor:pointer}
.modern-auth .password-toggle:hover{background:var(--auth-primary-soft);color:var(--auth-primary-dark)}

.modern-auth .captcha-box{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.modern-auth .captcha-box .captcha-img-wrap{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--auth-border);border-radius:10px;background:#fbfcfe}
.modern-auth .captcha-box .captcha-img-wrap img{display:block}
.modern-auth .captcha-refresh{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--auth-border);border-radius:10px;background:#fff;color:var(--auth-primary-dark)}
.modern-auth .captcha-refresh:hover{background:var(--auth-primary-soft)}
.modern-auth .field-error{display:block;margin-top:5px;font-size:.7rem}

.modern-auth .location-status{display:flex;align-items:flex-start;gap:8px;min-height:20px;margin:2px 0 16px;color:var(--auth-muted);font-size:.68rem;line-height:1.45}
.modern-auth .location-status i{margin-top:1px;color:var(--auth-primary-dark)}

.modern-auth .primary-action{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:48px;margin:0;padding:12px 18px;border:0;border-radius:11px;background:linear-gradient(120deg,var(--auth-primary) 0%,var(--auth-primary-dark) 100%);color:#fff;font-size:.86rem;font-weight:700;line-height:1;box-shadow:0 12px 22px rgba(13,148,136,.28);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
.modern-auth .primary-action:hover{color:#fff;transform:translateY(-1px);box-shadow:0 14px 26px rgba(13,148,136,.34);filter:brightness(1.04)}

.modern-auth .login-form-footer{margin:20px 0 0;padding:18px 0 0;border-top:1px solid #edf0f5;text-align:center}
.modern-auth .login-form-footer a{color:var(--auth-primary-dark);font-weight:700;text-decoration:none;font-size:.8rem}
.modern-auth .login-form-footer a:hover{text-decoration:underline}
.modern-auth .back-to-login{display:inline-flex;align-items:center;gap:6px;color:var(--auth-muted);font-size:.78rem;text-decoration:none}
.modern-auth .back-to-login:hover{color:var(--auth-primary-dark)}

.modern-auth .otp-hint{margin:0 0 20px;color:var(--auth-muted);font-size:.73rem;text-align:center}
.modern-auth .otp-inputs{display:flex;justify-content:center;gap:10px;margin:0 0 18px}
.modern-auth .otp-inputs .mpin{width:50px;height:52px;margin:0!important;padding:8px;border:1px solid var(--auth-border)!important;border-radius:11px;color:var(--auth-ink);background:#fbfcfe;font-size:1.2rem;text-align:center;box-shadow:none}
.modern-auth .otp-inputs .mpin:focus{border-color:#7fcfc7!important;background:#fff;box-shadow:0 0 0 4px rgba(13,148,136,.12)}

@media (max-width:820px){
  body.modern-auth{padding:22px}
  .modern-auth .auth-shell{grid-template-columns:1fr;width:min(520px,100%);min-height:0}
  .modern-auth .auth-brand-panel{display:none}
  .modern-auth .auth-form-panel{padding:40px 34px}
  .modern-auth .mobile-logo{display:block}
  .modern-auth .form-heading{text-align:center}
  .modern-auth .form-kicker{border-left:0;padding-left:0;justify-content:center;width:100%}
}
@media (max-width:480px){
  body.modern-auth{align-items:flex-start;padding:14px}
  .modern-auth .auth-shell{margin:auto 0;border-radius:16px}
  .modern-auth .auth-form-panel{padding:26px 18px}
  .modern-auth .form-title{font-size:1.45rem}
  .modern-auth .otp-inputs{gap:6px}
  .modern-auth .otp-inputs .mpin{width:41px;height:47px;border-radius:10px;font-size:1rem}
}
