:root{
  --auth-navy:#10182d;
  --auth-text:#172033;
  --auth-muted:#69758b;
  --auth-line:#dce3ef;
  --auth-surface:#ffffff;
  --auth-blue:#2574ff;
  --auth-purple:#8a2be2;
  --auth-pink:#d7279f;
  --auth-cyan:#00b8d9;
  --auth-green:#18ad64;
  --auth-orange:#ff7b21;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--auth-text);
  background:#eef3fb;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{min-height:100vh}
button,input{font:inherit}
a{color:inherit}
.auth-page{
  background:
    radial-gradient(circle at 8% 8%,rgba(37,116,255,.13),transparent 29%),
    radial-gradient(circle at 92% 12%,rgba(215,39,159,.13),transparent 28%),
    linear-gradient(145deg,#edf4ff 0%,#f9f5ff 48%,#f5fbff 100%);
}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(470px,.92fr)}
.auth-showcase{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(34px,5vw,76px);color:#fff;background:linear-gradient(145deg,#10182d 0%,#182450 45%,#542171 100%)}
.auth-showcase:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(37,116,255,.20),transparent 42%),radial-gradient(circle at 72% 38%,rgba(215,39,159,.31),transparent 30%);pointer-events:none}
.auth-showcase:after{content:"";position:absolute;width:530px;height:530px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-210px;bottom:-170px;box-shadow:0 0 0 78px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018);pointer-events:none}
.auth-orb{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}
.auth-orb-one{width:210px;height:210px;right:9%;top:8%;background:linear-gradient(145deg,rgba(0,184,217,.46),rgba(37,116,255,.12));box-shadow:0 35px 100px rgba(0,184,217,.23)}
.auth-orb-two{width:145px;height:145px;left:-45px;bottom:12%;background:linear-gradient(145deg,rgba(255,123,33,.28),rgba(215,39,159,.35))}
.showcase-brand{position:relative;z-index:2;display:flex;align-items:center;min-height:92px}
.showcase-brand .brand,.mobile-brand .brand{display:flex!important;align-items:center!important}
.showcase-brand .login-logo{display:block;max-width:270px!important;max-height:92px!important;width:auto!important;height:auto!important;object-fit:contain!important;filter:drop-shadow(0 14px 24px rgba(0,0,0,.22))}
.showcase-brand .brand-mark{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,var(--auth-blue),var(--auth-purple));font-weight:900;box-shadow:0 18px 40px rgba(37,116,255,.3)}
.showcase-copy{position:relative;z-index:2;max-width:760px;margin:70px 0 48px}
.showcase-kicker{display:inline-flex;padding:9px 14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);border-radius:999px;text-transform:uppercase;letter-spacing:.14em;font-size:.73rem;font-weight:900;color:#dfe8ff}
.showcase-copy h1{max-width:720px;margin:22px 0 18px;font-size:clamp(2.65rem,5vw,5.25rem);line-height:.98;letter-spacing:-.055em;text-wrap:balance}
.showcase-copy p{max-width:650px;margin:0;color:#c7d2ea;font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.72}
.feature-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;max-width:820px}
.feature-card{display:flex;align-items:center;gap:13px;padding:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);backdrop-filter:blur(14px);border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.12)}
.feature-icon{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;font-size:1.25rem;font-weight:900}
.feature-blue .feature-icon{background:rgba(37,116,255,.28);color:#8ebcff}.feature-green .feature-icon{background:rgba(24,173,100,.25);color:#7bf2af}.feature-purple .feature-icon{background:rgba(215,39,159,.23);color:#ff9ee0}
.feature-card strong,.feature-card small{display:block}.feature-card strong{font-size:.94rem}.feature-card small{color:#aebbd4;margin-top:3px;font-size:.77rem}
.showcase-footer{position:relative;z-index:2;margin:24px 0 0;color:#8190b0;font-size:.82rem}
.auth-panel{display:grid;place-items:center;padding:clamp(24px,5vw,72px);position:relative}
.mobile-brand{display:none}
.auth-card{width:min(545px,100%);padding:clamp(28px,4vw,48px);background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.78);border-radius:30px;box-shadow:0 35px 90px rgba(36,47,87,.16);backdrop-filter:blur(18px)}
.auth-heading{margin-bottom:26px}.auth-eyebrow{display:inline-flex;color:var(--auth-purple);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;font-weight:900}.auth-heading h2{margin:9px 0 8px;font-size:clamp(2rem,4vw,2.7rem);line-height:1.05;letter-spacing:-.045em}.auth-heading p{margin:0;color:var(--auth-muted);line-height:1.6}
.auth-alert{display:flex;gap:12px;align-items:flex-start;padding:14px 15px;border-radius:15px;margin:0 0 20px;border:1px solid}.auth-alert>span{flex:0 0 30px;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-weight:900}.auth-alert strong,.auth-alert p{display:block;margin:0}.auth-alert p{font-size:.88rem;margin-top:2px}.auth-alert-error{background:#fff1f2;border-color:#ffc9cf;color:#9f1730}.auth-alert-error>span{background:#ffdce0}.auth-alert-success{background:#ecfdf3;border-color:#b9ebcf;color:#06653c}.auth-alert-success>span{background:#cff4de}
.auth-form{display:grid;gap:17px}.auth-field{display:grid;gap:8px;color:#2a3448;font-weight:800;font-size:.91rem}.input-wrap{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:16px;color:#8b97ad;font-weight:900;z-index:1}.input-wrap input{width:100%;height:58px;padding:0 72px 0 46px;border:1px solid #ced8e8;border-radius:15px;background:#fbfcff;color:#172033;outline:0;transition:border-color .2s,box-shadow .2s,background .2s}.input-wrap input:focus{border-color:var(--auth-blue);background:#fff;box-shadow:0 0 0 4px rgba(37,116,255,.12),0 11px 30px rgba(37,116,255,.08)}.input-wrap input::placeholder{color:#9aa5b8}.password-toggle{position:absolute;right:11px;border:0;background:#edf2fa;color:#42516a;padding:8px 10px;border-radius:10px;font-weight:800;font-size:.76rem;cursor:pointer}.password-toggle:hover{background:#e3eaf5}
.auth-options{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:.86rem}.auth-options a{color:#5d3fd3;font-weight:800;text-decoration:none}.auth-options a:hover{text-decoration:underline}.remember-option{display:flex;align-items:center;gap:8px;color:#59667c}.remember-option input{width:17px;height:17px;accent-color:var(--auth-purple)}
.primary-login-button{height:58px;border:0;border-radius:15px;color:#fff;background:linear-gradient(100deg,var(--auth-blue),var(--auth-purple) 58%,var(--auth-pink));box-shadow:0 16px 35px rgba(110,52,218,.27);font-weight:900;font-size:1rem;display:flex;align-items:center;justify-content:center;gap:11px;cursor:pointer;transition:transform .2s,box-shadow .2s}.primary-login-button:hover{transform:translateY(-2px);box-shadow:0 21px 40px rgba(110,52,218,.34)}.primary-login-button:active{transform:translateY(0)}
.auth-divider{display:flex;align-items:center;gap:14px;margin:25px 0;color:#8d98aa;font-size:.77rem;text-align:center}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#e1e6ef}.auth-divider span{white-space:nowrap}
.passkey-button{width:100%;min-height:70px;border:1px solid #d7dfec;border-radius:16px;background:#f5f8fc;color:#243047;display:flex;align-items:center;text-align:left;gap:13px;padding:12px 15px;cursor:pointer;transition:.2s}.passkey-button:hover{background:#eef3fb;border-color:#bbc8dc;transform:translateY(-1px)}.passkey-button:disabled{opacity:.72;cursor:wait}.passkey-symbol{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#eee7ff,#e1f5ff);color:#6533ca;font-size:1.25rem}.passkey-button strong,.passkey-button small{display:block}.passkey-button strong{font-size:.91rem}.passkey-button small{font-size:.76rem;color:#748098;margin-top:3px}.button-spinner{width:28px;height:28px;border:3px solid #d8dff0;border-top-color:var(--auth-purple);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.register-prompt{display:flex;justify-content:center;gap:7px;align-items:center;margin-top:25px;color:#727e92;font-size:.88rem}.register-prompt a{font-weight:900;color:#5d3fd3;text-decoration:none}.register-prompt a:hover{text-decoration:underline}.security-note{text-align:center;margin:22px 0 0;color:#98a2b3;font-size:.72rem;line-height:1.5}.security-note span{color:#18ad64;margin-right:5px}
@media(max-width:1100px){.auth-shell{grid-template-columns:minmax(0,.85fr) minmax(450px,1.15fr)}.feature-grid{grid-template-columns:1fr}.feature-card:nth-child(n+3){display:none}.showcase-copy h1{font-size:clamp(2.5rem,5vw,4rem)}}
@media(max-width:820px){.auth-shell{display:block}.auth-showcase{display:none}.auth-panel{min-height:100vh;padding:24px}.mobile-brand{display:flex;justify-content:center;align-items:center;min-height:100px;margin-bottom:18px}.mobile-brand .login-logo{display:block;max-width:240px!important;max-height:90px!important;width:auto!important;height:auto!important;object-fit:contain!important}.mobile-brand .brand-mark{width:60px;height:60px;border-radius:19px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--auth-blue),var(--auth-purple));font-weight:900}.auth-card{border-radius:25px}}
@media(max-width:520px){.auth-panel{padding:18px}.auth-card{padding:24px 20px}.auth-heading h2{font-size:2rem}.auth-options{align-items:flex-start}.register-prompt{flex-direction:column}.input-wrap input{height:55px}.primary-login-button{height:55px}}
@media(prefers-color-scheme:dark){
  :root{color-scheme:dark}
  .auth-page{background:radial-gradient(circle at 8% 8%,rgba(37,116,255,.12),transparent 29%),radial-gradient(circle at 92% 12%,rgba(215,39,159,.11),transparent 28%),linear-gradient(145deg,#090f1d,#11182a 52%,#101628)}
  .auth-card{background:rgba(18,25,43,.93);border-color:rgba(255,255,255,.08);box-shadow:0 35px 90px rgba(0,0,0,.35)}
  .auth-heading h2,.auth-field{color:#f6f8ff}.auth-heading p,.remember-option,.register-prompt,.security-note{color:#aeb9cc}.auth-eyebrow,.auth-options a,.register-prompt a{color:#bc99ff}
  .input-wrap input{background:#141d30;border-color:#34415a;color:#f7f9ff}.input-wrap input:focus{background:#18233a;border-color:#628fff}.input-wrap input::placeholder{color:#77839a}.input-icon{color:#92a0b8}.password-toggle{background:#253149;color:#d8e0ef}.password-toggle:hover{background:#2d3a55}
  .auth-divider{color:#758199}.auth-divider:before,.auth-divider:after{background:#2d3850}.passkey-button{background:#172136;border-color:#34415a;color:#f3f6ff}.passkey-button:hover{background:#1c2941}.passkey-button small{color:#a4b0c5}.passkey-symbol{background:linear-gradient(145deg,#2c2450,#173246);color:#c3a7ff}
  .auth-alert-error{background:#351a22;border-color:#6b2b3b;color:#ffb0ba}.auth-alert-error>span{background:#55212e}.auth-alert-success{background:#123326;border-color:#235b43;color:#9af0c1}.auth-alert-success>span{background:#194b34}
}


/* Mobile home-screen shortcut */
.homescreen-install{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) auto auto;
  align-items:center;
  gap:12px;
  margin-top:18px;
  padding:14px;
  border:1px solid rgba(37,99,235,.22);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(37,99,235,.09),rgba(124,58,237,.07));
}
.homescreen-install[hidden],.homescreen-modal[hidden]{display:none!important}
.homescreen-install-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#2563eb;color:#fff;font-size:22px;font-weight:900}
.homescreen-install-copy{min-width:0}.homescreen-install-copy strong{display:block;color:var(--auth-text,#0f172a);font-size:14px}.homescreen-install-copy p{margin:4px 0 0;color:var(--auth-muted,#64748b);font-size:12px;line-height:1.4}
.homescreen-install-button{min-height:40px;padding:0 14px;border:0;border-radius:11px;background:#2563eb;color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap}
.homescreen-install-close{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:9px;background:transparent;color:#64748b;font-size:22px;cursor:pointer}
.homescreen-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:end center;padding:18px}
.homescreen-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.62);backdrop-filter:blur(5px)}
.homescreen-modal-card{position:relative;width:min(100%,480px);padding:26px;border-radius:24px;background:#fff;color:#0f172a;box-shadow:0 30px 80px rgba(2,6,23,.35)}
.homescreen-modal-card h2{margin:7px 0 16px;font-size:24px}.homescreen-modal-card ol{display:grid;gap:13px;margin:0 0 22px;padding-left:24px;line-height:1.55}.homescreen-modal-symbol{display:grid;place-items:center;width:52px;height:52px;margin-bottom:14px;border-radius:15px;background:#eef4ff;color:#2563eb;font-size:22px;font-weight:900}.homescreen-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;border-radius:10px;background:#f1f5f9;color:#334155;font-size:22px;cursor:pointer}.homescreen-modal-open{overflow:hidden}
@media(min-width:821px){.homescreen-install{display:none!important}}
@media(max-width:560px){.homescreen-install{grid-template-columns:42px minmax(0,1fr) 32px}.homescreen-install-button{grid-column:1/-1;width:100%}.homescreen-install-close{grid-column:3;grid-row:1}.homescreen-modal{padding:0;align-items:end}.homescreen-modal-card{border-radius:24px 24px 0 0;padding:26px 22px calc(26px + env(safe-area-inset-bottom))}}


/* =========================================================
   VIEWPORT FIT / NO PAGE SCROLL
   Retains the complete login design above.
   ========================================================= */

html,
body.auth-page{
  width:100%;
  height:100%;
  min-height:0;
  overflow:hidden!important;
}

body.auth-page{
  margin:0;
}

.auth-shell{
  width:100%;
  height:100dvh;
  min-height:0!important;
  overflow:hidden!important;
}

.auth-showcase,
.auth-panel{
  min-width:0;
  min-height:0!important;
  height:100%;
  overflow:hidden!important;
  box-sizing:border-box;
}

/* Keep the complete hero within the viewport. */
.auth-showcase{
  padding:
    clamp(24px,3.5vh,48px)
    clamp(30px,4vw,72px);
}

.showcase-brand{
  min-height:clamp(64px,9vh,92px);
}

.showcase-brand .login-logo{
  max-width:min(270px,28vw)!important;
  max-height:clamp(62px,8vh,92px)!important;
}

.showcase-copy{
  margin:
    clamp(22px,4vh,54px)
    0
    clamp(20px,3vh,38px);
}

.showcase-copy h1{
  margin:clamp(14px,2vh,22px) 0 clamp(10px,1.8vh,18px);
  font-size:clamp(2.25rem,4.45vw,5rem);
}

.showcase-copy p{
  font-size:clamp(.92rem,1.2vw,1.2rem);
  line-height:1.55;
}

.feature-grid{
  gap:clamp(9px,1.3vh,15px);
}

.feature-card{
  padding:clamp(10px,1.4vh,16px);
}

.showcase-footer{
  margin-top:clamp(12px,2vh,24px);
}

/* Keep the login card centred and inside the right panel. */
.auth-panel{
  padding:
    clamp(18px,3vh,42px)
    clamp(22px,4vw,64px);
}

.auth-card{
  width:min(545px,100%);
  max-height:calc(100dvh - clamp(36px,6vh,84px));
  padding:clamp(24px,3.4vh,44px);
  overflow:auto;
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.auth-card::-webkit-scrollbar{
  width:0;
  height:0;
}

.auth-heading{
  margin-bottom:clamp(17px,2.4vh,26px);
}

.auth-form{
  gap:clamp(12px,1.8vh,17px);
}

.input-wrap input{
  height:clamp(50px,6.2vh,58px);
}

.primary-login-button{
  height:clamp(50px,6.2vh,58px);
}

.auth-divider{
  margin:clamp(16px,2.4vh,25px) 0;
}

.passkey-button{
  min-height:clamp(60px,7.4vh,70px);
}

.register-prompt{
  margin-top:clamp(15px,2.3vh,25px);
}

.security-note{
  margin-top:clamp(13px,2vh,22px);
}

/* Short desktop/laptop screens: retain the design but compact it. */
@media (min-width:821px) and (max-height:850px){
  .auth-showcase{
    padding:24px 44px;
  }

  .showcase-brand{
    min-height:62px;
  }

  .showcase-brand .login-logo{
    max-height:62px!important;
    max-width:220px!important;
  }

  .showcase-copy{
    margin:20px 0 16px;
  }

  .showcase-kicker{
    padding:7px 12px;
  }

  .showcase-copy h1{
    font-size:clamp(2.15rem,4vw,4rem);
    margin:13px 0 10px;
  }

  .showcase-copy p{
    line-height:1.45;
  }

  .feature-card{
    padding:9px 11px;
  }

  .feature-icon{
    width:36px;
    height:36px;
    flex-basis:36px;
  }

  .showcase-footer{
    margin-top:10px;
  }

  .auth-panel{
    padding:18px 36px;
  }

  .auth-card{
    padding:24px 30px;
    border-radius:24px;
  }

  .auth-heading{
    margin-bottom:16px;
  }

  .auth-heading h2{
    font-size:2.2rem;
  }

  .auth-form{
    gap:11px;
  }

  .auth-divider{
    margin:14px 0;
  }

  .register-prompt{
    margin-top:13px;
  }

  .security-note{
    margin-top:11px;
  }
}

/* Smartphone/tablet layout: no body scrollbar; the card can scroll
   internally when a very short viewport requires it. */
@media(max-width:820px){
  html,
  body.auth-page{
    height:100%;
    overflow:hidden!important;
  }

  .auth-shell{
    display:block;
    height:100dvh;
  }

  .auth-panel{
    height:100dvh;
    min-height:0!important;
    padding:
      max(14px,env(safe-area-inset-top))
      18px
      max(14px,env(safe-area-inset-bottom));
    overflow:hidden!important;
  }

  .auth-card{
    max-height:calc(
      100dvh
      - max(28px,env(safe-area-inset-top))
      - max(28px,env(safe-area-inset-bottom))
    );
    overflow:auto;
  }

  .mobile-brand{
    min-height:68px;
    margin-bottom:10px;
  }

  .mobile-brand .login-logo{
    max-height:64px!important;
  }
}

@media(max-width:520px){
  .auth-panel{
    padding-left:12px;
    padding-right:12px;
  }

  .auth-card{
    padding:20px 18px;
    border-radius:22px;
  }
}


/* users-dark-force-fix */
html[data-theme="dark"] .users-page-head .module-page-title-copy h1,
body.dark .users-page-head .module-page-title-copy h1,
body.theme-dark .users-page-head .module-page-title-copy h1,
.users-page-head .module-page-title-copy h1{
 color:#fff !important;
 -webkit-text-fill-color:#fff !important;
 background:none !important;
 text-shadow:none !important;
}


/* Force white text on OTP identity fields */
.otp-readonly,
.otp-readonly[readonly],
.otp-readonly:disabled{
 color:#fff!important;
 -webkit-text-fill-color:#fff!important;
 opacity:1!important;
}
.otp-readonly::placeholder{
 color:rgba(255,255,255,.85)!important;
 opacity:1!important;
}
input[name="email"],input[name="mobile"]{
 color:#fff!important;
 -webkit-text-fill-color:#fff!important;
}
