:root{
  --auth-bg:#050b17;
  --auth-panel:#0b1425;
  --auth-panel-2:#0e1a2e;
  --auth-line:rgba(255,255,255,.08);
  --auth-text:#f4f7ff;
  --auth-muted:#8190aa;
  --auth-purple:#7557ff;
  --auth-purple-2:#5c43e6;
  --auth-blue:#2d8cff;
  --auth-green:#21ce97;
  --auth-red:#ff6472;
  --auth-shadow:0 28px 90px rgba(0,0,0,.38);
}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0}
body.auth-v2-body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:
  radial-gradient(circle at 14% 12%,rgba(117,87,255,.18),transparent 27%),
  radial-gradient(circle at 88% 88%,rgba(45,140,255,.11),transparent 28%),
  var(--auth-bg);color:var(--auth-text);overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.auth-v2-shell{min-height:100vh;display:grid;grid-template-columns:minmax(340px,.92fr) minmax(480px,1.08fr);position:relative}
.auth-v2-visual{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:42px 46px;overflow:hidden;border-right:1px solid var(--auth-line);background:linear-gradient(145deg,rgba(11,20,37,.96),rgba(7,13,26,.94))}
.auth-v2-visual:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;left:-210px;bottom:-230px;background:radial-gradient(circle,rgba(117,87,255,.22),rgba(117,87,255,.02) 58%,transparent 69%)}
.auth-v2-visual:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-250px;top:5%;background:radial-gradient(circle,rgba(45,140,255,.14),transparent 68%)}
.auth-v2-brand,.auth-v2-hero,.auth-v2-footnote{position:relative;z-index:2}
.auth-v2-brand{display:flex;align-items:center;gap:13px}
.auth-v2-logo{display:flex;align-items:flex-end;justify-content:center;gap:3px;width:45px;height:45px;padding:9px;border-radius:14px;background:linear-gradient(145deg,rgba(117,87,255,.21),rgba(45,140,255,.12));border:1px solid rgba(117,87,255,.24);box-shadow:0 12px 34px rgba(80,62,210,.2)}
.auth-v2-logo i{display:block;width:5px;border-radius:5px;background:linear-gradient(180deg,#9a86ff,#5d75ff)}
.auth-v2-logo i:nth-child(1){height:14px}.auth-v2-logo i:nth-child(2){height:23px}.auth-v2-logo i:nth-child(3){height:18px}.auth-v2-logo i:nth-child(4){height:27px}
.auth-v2-brand strong{display:block;font-size:17px;line-height:1;font-weight:900;letter-spacing:-.2px}.auth-v2-brand strong em{font-style:normal;color:#927cff}.auth-v2-brand small{display:block;color:var(--auth-muted);font-size:9px;margin-top:5px}
.auth-v2-hero{max-width:525px;margin:56px 0}
.auth-v2-kicker{display:inline-flex;align-items:center;gap:7px;height:29px;padding:0 11px;border-radius:999px;border:1px solid rgba(117,87,255,.2);background:rgba(117,87,255,.08);color:#bcb1ff;font-size:9px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.auth-v2-kicker:before{content:"";width:6px;height:6px;border-radius:50%;background:#846bff;box-shadow:0 0 12px rgba(132,107,255,.8)}
.auth-v2-hero h1{font-size:clamp(34px,4vw,58px);line-height:1.02;letter-spacing:-2px;margin:19px 0 16px;max-width:620px}
.auth-v2-hero h1 span{background:linear-gradient(90deg,#fff,#a9baff 48%,#9078ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-v2-hero>p{max-width:500px;color:#93a0b7;font-size:13px;line-height:1.75;margin:0}
.auth-v2-features{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:28px;max-width:560px}
.auth-v2-feature{padding:13px 12px;border:1px solid rgba(255,255,255,.065);border-radius:13px;background:rgba(255,255,255,.025)}
.auth-v2-feature b{display:block;font-size:11px;color:#e9eeff}.auth-v2-feature small{display:block;color:#71809b;font-size:8px;margin-top:4px;line-height:1.45}
.auth-v2-footnote{display:flex;align-items:center;gap:9px;color:#66758f;font-size:9px}.auth-v2-footnote i{width:7px;height:7px;border-radius:50%;background:var(--auth-green);box-shadow:0 0 11px rgba(33,206,151,.6)}
.auth-v2-form-side{display:grid;place-items:center;padding:42px 28px;position:relative}
.auth-v2-form-wrap{width:min(460px,100%)}
.auth-v2-mobile-brand{display:none}
.auth-v2-card{padding:30px;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(15,27,47,.96),rgba(9,17,31,.98));box-shadow:var(--auth-shadow);position:relative;overflow:hidden}
.auth-v2-card:before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,var(--auth-purple),var(--auth-blue),transparent 85%)}
.auth-v2-card-head{margin-bottom:23px}.auth-v2-card-head .eyebrow{display:flex;align-items:center;gap:7px;color:#8d7cff;font-size:9px;font-weight:900;letter-spacing:.55px;text-transform:uppercase;margin-bottom:8px}.auth-v2-card-head h2{margin:0;color:#f6f8ff;font-size:27px;letter-spacing:-.65px}.auth-v2-card-head p{margin:8px 0 0;color:var(--auth-muted);font-size:11px;line-height:1.6}
.auth-v2-alert{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin:0 0 16px;border-radius:11px;border:1px solid rgba(255,100,114,.2);background:rgba(255,100,114,.075);color:#ffadb5;font-size:10px;line-height:1.5}.auth-v2-alert.success{border-color:rgba(33,206,151,.22);background:rgba(33,206,151,.075);color:#79e5bd}.auth-v2-alert-icon{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex:0 0 18px;background:rgba(255,255,255,.06);font-weight:900}
.auth-v2-form{display:grid;gap:14px}.auth-v2-field{display:grid;gap:7px}.auth-v2-field label{display:flex;align-items:center;justify-content:space-between;margin:0;color:#a9b5c9;font-size:9px;font-weight:850;letter-spacing:.2px}.auth-v2-field label small{color:#64738e;font-size:8px;font-weight:700}.auth-v2-input-shell{position:relative}.auth-v2-input-shell>svg{position:absolute;left:13px;top:50%;width:16px;height:16px;transform:translateY(-50%);fill:none;stroke:#687895;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.auth-v2-input{display:block;width:100%;height:48px;border-radius:12px;border:1px solid rgba(255,255,255,.085);background:#081322;color:#f3f7ff;outline:none;padding:0 42px 0 42px;font-size:12px;transition:.18s;box-shadow:inset 0 1px 0 rgba(255,255,255,.015)}.auth-v2-input::placeholder{color:#4f5e77}.auth-v2-input:hover{border-color:rgba(117,87,255,.24)}.auth-v2-input:focus{border-color:rgba(117,87,255,.65);box-shadow:0 0 0 3px rgba(117,87,255,.09)}.auth-v2-password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:#6f7f9a;display:grid;place-items:center;cursor:pointer}.auth-v2-password-toggle:hover{background:rgba(255,255,255,.04);color:#bac5d8}.auth-v2-password-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.auth-v2-submit{width:100%;height:48px;border:0;border-radius:12px;margin-top:2px;background:linear-gradient(135deg,var(--auth-purple),var(--auth-purple-2) 55%,#3c7ef0);color:#fff;font-size:11px;font-weight:900;cursor:pointer;box-shadow:0 13px 30px rgba(92,67,230,.26);transition:.18s}.auth-v2-submit:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 16px 36px rgba(92,67,230,.34)}.auth-v2-submit:active{transform:none}
.auth-v2-divider{display:flex;align-items:center;gap:10px;margin:21px 0;color:#53627c;font-size:8px;font-weight:800}.auth-v2-divider:before,.auth-v2-divider:after{content:"";height:1px;flex:1;background:rgba(255,255,255,.065)}
.auth-v2-switch{text-align:center;color:#7787a1;font-size:10px}.auth-v2-switch a{color:#a99cff;font-weight:900}.auth-v2-switch a:hover{color:#c7beff}.auth-v2-admin-link{display:inline-flex;align-items:center;gap:5px;margin-left:8px;color:#6d7c96!important;font-weight:800!important}.auth-v2-admin-link:hover{color:#a9b5ca!important}
.auth-v2-note{display:flex;align-items:flex-start;gap:8px;margin-top:17px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06);color:#61708a;font-size:8.5px;line-height:1.5}.auth-v2-note svg{width:14px;height:14px;flex:0 0 14px;fill:none;stroke:#70809b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.auth-v2-admin .auth-v2-visual{background:linear-gradient(145deg,#0c1325,#080d19)}.auth-v2-admin .auth-v2-kicker{color:#aebcff;border-color:rgba(45,140,255,.2);background:rgba(45,140,255,.07)}.auth-v2-admin .auth-v2-kicker:before{background:#3e94ff;box-shadow:0 0 12px rgba(62,148,255,.8)}.auth-v2-admin .auth-v2-card:before{background:linear-gradient(90deg,#2d8cff,#7657ff,transparent 85%)}.auth-v2-admin .auth-v2-submit{background:linear-gradient(135deg,#2d8cff,#5d55ea 55%,#7657ff)}
.auth-v2-register .auth-v2-card{padding-top:27px;padding-bottom:27px}.auth-v2-register .auth-v2-card-head{margin-bottom:19px}.auth-v2-register .auth-v2-form{gap:12px}
@media(max-width:980px){.auth-v2-shell{grid-template-columns:1fr}.auth-v2-visual{display:none}.auth-v2-form-side{padding:38px 18px}.auth-v2-mobile-brand{display:flex;align-items:center;justify-content:center;gap:11px;margin:0 auto 18px}.auth-v2-mobile-brand .auth-v2-logo{width:40px;height:40px;padding:8px}.auth-v2-mobile-brand strong{font-size:16px}.auth-v2-mobile-brand small{display:block;color:#6d7c95;font-size:8px;margin-top:3px}.auth-v2-form-wrap{width:min(470px,100%)}}
@media(max-width:520px){.auth-v2-form-side{place-items:start center;padding:24px 12px}.auth-v2-card{padding:22px 17px;border-radius:17px}.auth-v2-card-head h2{font-size:23px}.auth-v2-input{height:46px}.auth-v2-submit{height:46px}.auth-v2-mobile-brand{margin-bottom:15px}.auth-v2-switch{line-height:1.8}.auth-v2-admin-link{display:flex;justify-content:center;margin:4px 0 0}}
/* R14.6 - expanded registration form */
.auth-v2-register .auth-v2-form-wrap{width:min(760px,100%)}
.auth-v2-register-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.auth-v2-register-grid .auth-v2-field-full{grid-column:1/-1}
.auth-v2-section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 -1px;padding:10px 0 3px;border-top:1px solid rgba(255,255,255,.06);color:#c8d1e2;font-size:9px;font-weight:900;letter-spacing:.3px;text-transform:uppercase}
.auth-v2-section-label small{color:#64738e;font-size:8px;font-weight:700;text-transform:none;letter-spacing:0}
.auth-v2-uppercase{text-transform:uppercase}
@media(max-width:720px){.auth-v2-register-grid{grid-template-columns:1fr}.auth-v2-register-grid .auth-v2-field-full{grid-column:auto}.auth-v2-section-label{grid-column:auto;align-items:flex-start;flex-direction:column;gap:4px}.auth-v2-register .auth-v2-form-wrap{width:min(500px,100%)}}

/* R14.8.28 - Dynamic registration account method */
.auth-v2-select-shell:after{content:"⌄";position:absolute;right:14px;top:50%;transform:translateY(-54%);color:#6f7f9a;font-size:16px;pointer-events:none}.auth-v2-select{appearance:none;-webkit-appearance:none;padding-right:42px;color-scheme:dark}.auth-v2-select option,.auth-v2-select optgroup{background:#081322;color:#eaf0fb}.auth-v2-select optgroup{font-weight:800;color:#91a4c1}.auth-v2-bank-other[hidden]{display:none!important}

/* R14.8.30 - Selected bank/e-wallet logo preview */
.auth-v2-account-method-preview{margin-top:8px;min-height:48px;padding:8px 10px;border:1px solid rgba(118,86,255,.16);border-radius:12px;background:rgba(118,86,255,.055);display:flex;align-items:center;gap:10px}.auth-v2-account-method-preview[hidden]{display:none!important}.auth-v2-account-method-logo{width:46px;height:34px;flex:0 0 46px;border-radius:9px;overflow:hidden;display:grid;place-items:center;background:#0b1728;border:1px solid rgba(255,255,255,.07)}.auth-v2-account-method-logo img{width:100%;height:100%;object-fit:contain;padding:5px;background:#fff}.auth-v2-account-method-logo span{font-size:10px;font-weight:900;color:#a8b9d3}.auth-v2-account-method-preview small,.auth-v2-account-method-preview strong{display:block}.auth-v2-account-method-preview small{font-size:8px;color:#7789a5;text-transform:uppercase;letter-spacing:.35px}.auth-v2-account-method-preview strong{margin-top:2px;font-size:11px;color:#eef4ff}

/* R14.8.31 - Keep bank/e-wallet selection compact */
.auth-v2-register .auth-v2-select-shell.has-account-logo .auth-v2-select{padding-left:58px}
.auth-v2-bank-inline-logo{
  position:absolute;
  left:10px;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:28px;
  z-index:2;
  border-radius:8px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:#fff;
  border:1px solid rgba(255,255,255,.10);
  pointer-events:none;
}
.auth-v2-bank-inline-logo[hidden]{display:none!important}
.auth-v2-bank-inline-logo img{width:100%;height:100%;object-fit:contain;padding:4px;background:#fff}
.auth-v2-bank-inline-logo span{font-size:9px;font-weight:900;color:#485873;background:#f8fbff;width:100%;height:100%;display:grid;place-items:center}
.auth-v2-register .auth-v2-account-method-preview{display:none!important}

/* R14.8.32 - Bank logo strictly inside select field */
.auth-v2-register #registerBankSelectShell{
  position:relative;
  overflow:hidden;
}
.auth-v2-register #registerBankSelectShell .auth-v2-bank-inline-logo{
  position:absolute!important;
  left:12px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:34px!important;
  height:26px!important;
  max-width:34px!important;
  max-height:26px!important;
  min-width:34px!important;
  min-height:26px!important;
  margin:0!important;
  padding:0!important;
  z-index:3!important;
  border-radius:7px!important;
  overflow:hidden!important;
  display:grid!important;
  place-items:center!important;
  background:#fff!important;
  border:1px solid rgba(255,255,255,.10)!important;
  pointer-events:none!important;
  line-height:1!important;
}
.auth-v2-register #registerBankSelectShell .auth-v2-bank-inline-logo[hidden]{
  display:none!important;
}
.auth-v2-register #registerBankSelectShell .auth-v2-bank-inline-logo img{
  display:block!important;
  position:static!important;
  width:100%!important;
  height:100%!important;
  max-width:34px!important;
  max-height:26px!important;
  object-fit:contain!important;
  object-position:center!important;
  padding:3px!important;
  margin:0!important;
  background:#fff!important;
}
.auth-v2-register #registerBankSelectShell .auth-v2-bank-inline-logo span{
  width:100%!important;
  height:100%!important;
  display:grid!important;
  place-items:center!important;
  font-size:8px!important;
  font-weight:900!important;
  color:#485873!important;
  background:#f8fbff!important;
}
.auth-v2-register #registerBankSelectShell.has-account-logo .auth-v2-select{
  padding-left:56px!important;
}
.auth-v2-register #registerBankSelectShell:not(.has-account-logo) .auth-v2-select{
  padding-left:42px!important;
}
.auth-v2-register #registerBankSelectShell .auth-v2-bank-default-icon{
  z-index:2;
}

/* R14.8.33 - Registration validation + country WhatsApp selector */
.auth-v2-phone-shell{
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  height:48px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:12px;
  background:#081322;
  overflow:hidden;
  transition:.18s;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.015);
}
.auth-v2-phone-shell:focus-within{
  border-color:rgba(117,87,255,.65);
  box-shadow:0 0 0 3px rgba(117,87,255,.09);
}
.auth-v2-country-select-wrap{
  position:relative;
  border-right:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);
}
.auth-v2-country-select-wrap:after{
  content:"⌄";
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-54%);
  color:#72819b;
  font-size:14px;
  pointer-events:none;
}
.auth-v2-country-select{
  width:100%;
  height:100%;
  border:0;
  outline:0;
  appearance:none;
  -webkit-appearance:none;
  background:transparent;
  color:#eef4ff;
  padding:0 28px 0 13px;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  color-scheme:dark;
}
.auth-v2-country-select option{
  background:#081322;
  color:#eef4ff;
}
.auth-v2-phone-input{
  width:100%;
  min-width:0;
  height:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#f3f7ff;
  padding:0 14px;
  font:inherit;
  font-size:12px;
}
.auth-v2-phone-input::placeholder{color:#4f5e77}
.auth-v2-country-warning{
  margin-top:3px;
  padding:10px 12px;
  border-radius:11px;
  border:1px solid rgba(255,100,114,.20);
  background:rgba(255,100,114,.07);
  color:#ff9aa5;
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.auth-v2-country-warning[hidden]{display:none!important}
.auth-v2-country-warning strong{font-size:10px;white-space:nowrap}
.auth-v2-country-warning span{font-size:9px;line-height:1.45;color:#c88993}
.auth-v2-submit:disabled,
.auth-v2-submit.is-disabled{
  cursor:not-allowed;
  opacity:.48;
  filter:saturate(.55);
  transform:none!important;
  box-shadow:none!important;
}
@media(max-width:520px){
  .auth-v2-phone-shell{grid-template-columns:116px minmax(0,1fr);height:46px}
  .auth-v2-country-select{padding-left:10px;font-size:11px}
  .auth-v2-country-warning{flex-direction:column;gap:3px}
}

/* R14.8.60 - Customer 2FA login */
.auth-v2-2fa-card{max-width:510px}
.auth-v2-otp-shell{padding-left:0!important}
.auth-v2-otp-input{padding-left:16px!important;text-align:center;font-size:25px!important;font-weight:900!important;letter-spacing:8px;font-variant-numeric:tabular-nums}
.auth-v2-otp-input::placeholder{letter-spacing:8px;color:#485a74}
.auth-v2-2fa-back{margin-top:14px;text-align:center}.auth-v2-2fa-back a{font-size:10px}
@media(max-width:560px){.auth-v2-otp-input{font-size:22px!important;letter-spacing:6px}}

/* R14.8.62 - Customer forgot/reset password */
.auth-v2-forgot-inline{color:#9f91ff!important;font-size:8px!important;font-weight:850!important;letter-spacing:0!important;text-transform:none!important;transition:.15s ease}
.auth-v2-forgot-inline:hover{color:#c5bcff!important}
.auth-v2-recovery-wrap{width:min(500px,100%)}
.auth-v2-recovery .auth-v2-card{padding:30px}
.auth-v2-recovery-note{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;margin-top:16px;padding:11px 12px;border:1px solid rgba(45,140,255,.12);border-radius:11px;background:rgba(45,140,255,.045)}
.auth-v2-recovery-note>span{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:rgba(45,140,255,.10);color:#7bb7ff;font-size:10px;font-weight:900}
.auth-v2-recovery-note p{margin:2px 0 0;color:#74839d;font-size:8.5px;line-height:1.55}
.auth-v2-submit-link{display:flex;align-items:center;justify-content:center;text-decoration:none}
.auth-v2-recovery .auth-v2-alert.success{margin-bottom:18px}
@media(max-width:520px){
  .auth-v2-recovery .auth-v2-card{padding:22px 17px}
  .auth-v2-forgot-inline{font-size:8px!important}
}

/* =========================================================
   R14.8.65 - Unified Authentication Typography
   ========================================================= */
:root{
  --type-meta:10px;
  --type-small:11px;
  --type-body:13px;
  --type-card-title:27px;
}
body.auth-v2-body{font-size:var(--type-body);line-height:1.45}
.auth-v2-brand small,
.auth-v2-footnote,
.auth-v2-card-head .eyebrow,
.auth-v2-section-label,
.auth-v2-account-method-preview small,
.auth-v2-bank-inline-logo span,
.auth-v2-recovery-note p{font-size:var(--type-meta)!important}
.auth-v2-feature b,
.auth-v2-card-head p,
.auth-v2-alert,
.auth-v2-field label,
.auth-v2-submit,
.auth-v2-switch,
.auth-v2-note,
.auth-v2-section-label small,
.auth-v2-account-method-preview strong,
.auth-v2-country-warning strong,
.auth-v2-country-warning span,
.auth-v2-2fa-back a,
.auth-v2-forgot-inline{font-size:var(--type-small)!important}
.auth-v2-feature small{font-size:var(--type-meta)!important}
.auth-v2-field label small{font-size:var(--type-meta)!important}
.auth-v2-input,
.auth-v2-country-select,
.auth-v2-phone-input{font-size:var(--type-body)!important}
.auth-v2-card-head h2{font-size:var(--type-card-title)}
@media(max-width:520px){
  .auth-v2-card-head h2{font-size:23px}
  .auth-v2-mobile-brand small{font-size:var(--type-meta)!important}
  .auth-v2-forgot-inline{font-size:var(--type-small)!important}
}
/* R14.8.65 - remaining auth helper text normalization */
.auth-v2-divider{font-size:9px!important}


/* R14.8.91 - Custom website logo */
.auth-v2-brand.has-custom-logo{min-height:48px}.auth-v2-custom-logo{display:block;width:auto;max-width:190px;height:auto;max-height:54px;object-fit:contain;object-position:left center}.auth-v2-mobile-brand.has-custom-logo{min-height:44px}.auth-v2-mobile-brand .auth-v2-custom-logo{max-width:165px;max-height:46px;object-position:center}
@media(max-width:520px){.auth-v2-mobile-brand .auth-v2-custom-logo{max-width:150px;max-height:42px}}
