.pe-login-body{background:#f7f8fb}
.pe-login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.pe-login-brand{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:70px;background:
 radial-gradient(circle at 50% 40%,rgba(255,255,255,.12),transparent 45%),
 linear-gradient(135deg,#615cf0,#9b35f0);color:#fff}
.pe-login-brand:before{content:"";position:absolute;inset:0;opacity:.16;background-image:radial-gradient(#fff .7px,transparent .8px);background-size:36px 36px}
.pe-login-brand-inner{position:relative;z-index:1;max-width:430px}
.pe-login-brand .pe-public-logo{font-size:35px}
.pe-login-brand h1{font-size:40px;line-height:1.08;letter-spacing:-.04em;margin:36px 0 18px}
.pe-login-brand p{font-size:18px;line-height:1.55;color:#f0eaff}
.pe-login-benefits{display:flex;gap:24px;margin-top:78px;flex-wrap:wrap}
.pe-login-benefit{display:flex;align-items:center;gap:9px;font-size:13px;color:#eee9ff}
.pe-login-benefit:before{content:"✓";display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:rgba(255,255,255,.9);color:#7252df;font-size:10px;font-weight:900}
.pe-login-form-side{display:flex;align-items:center;justify-content:center;padding:50px;background:#fafbfc}
.pe-login-card{width:min(410px,100%)}
.pe-login-card h2{font-size:29px;letter-spacing:-.03em;margin:0 0 5px}
.pe-login-card>p{margin:0 0 32px;color:#7a818e}
.pe-login-card .pe-field-wrap{margin-bottom:16px}
.pe-password-wrap{position:relative}
.pe-password-wrap .pe-input{padding-right:48px}
.pe-password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:37px;height:34px;border:0;background:transparent;color:#818896}
.pe-login-meta{display:flex;align-items:center;justify-content:space-between;margin:10px 0 18px;color:#6f7785;font-size:13px}
.pe-login-submit{width:100%}
.pe-login-separator{display:flex;align-items:center;gap:14px;color:#9aa0aa;font-size:12px;margin:27px 0}
.pe-login-separator:before,.pe-login-separator:after{content:"";height:1px;background:#e1e4ea;flex:1}
.pe-provider-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pe-provider-btn,.pe-passkey-btn{height:45px;border:1px solid #dfe3ea;border-radius:9px;background:#fff;font-weight:650;color:#343b47}
.pe-provider-btn:hover,.pe-passkey-btn:hover{background:#f7f8fb}
.pe-passkey-btn{width:100%;margin-top:10px}
.pe-demo-link{display:block;text-align:center;margin-top:17px;color:var(--pe-primary);font-weight:750}
.pe-login-version{text-align:center;color:#c0c4cc;font-size:12px;margin-top:48px}
.pe-login-error{display:none;padding:11px 13px;border-radius:9px;background:#fff0f3;color:#b51f43;margin-bottom:16px;font-size:13px}
.pe-login-error.is-visible{display:block}
@media(max-width:850px){
 .pe-login-shell{grid-template-columns:1fr}.pe-login-brand{min-height:340px;padding:45px 24px}
 .pe-login-brand-inner{max-width:600px}.pe-login-brand h1{font-size:35px;margin-top:24px}.pe-login-benefits{margin-top:35px}
 .pe-login-form-side{padding:55px 22px}
}
@media(max-width:520px){.pe-provider-grid{grid-template-columns:1fr}.pe-login-brand{min-height:300px}.pe-login-brand p{font-size:16px}}


/* Custom portal account recovery */
.pe-login-recovery-links{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 18px;flex-wrap:wrap}
.pe-login-text-button{appearance:none;padding:0;border:0;border-bottom:1px solid rgba(104,87,238,.3);background:transparent;color:var(--pe-primary);cursor:pointer;font:inherit;font-size:12px;font-weight:750}
.pe-login-text-button:hover,.pe-login-text-button:focus-visible{border-bottom-color:var(--pe-primary);outline:0}
.pe-login-security-note{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;border:1px solid #ddd9ff;border-radius:11px;background:linear-gradient(135deg,#f7f5ff,#f4fbff);color:#626b7a;font-size:12px;line-height:1.55}
.pe-login-security-note svg{flex:0 0 auto;margin-top:1px;color:var(--pe-primary)}
.pe-login-recovery-result{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:18px;border:1px solid #e4e7ed;border-radius:14px;background:#f8f9fb}
.pe-login-recovery-result.is-success{border-color:#ccebdc;background:#f1fbf6}
.pe-login-recovery-result.is-error{border-color:#f0ced5;background:#fff5f7}
.pe-login-recovery-result strong{display:block;margin-bottom:5px;color:#202633}
.pe-login-recovery-result p{margin:0;color:#687180;line-height:1.55}
.pe-login-recovery-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#fff;color:var(--pe-primary);box-shadow:0 8px 20px rgba(29,35,50,.08)}
.pe-login-recovery-result.is-success .pe-login-recovery-icon{color:#118653}
.pe-login-recovery-result.is-error .pe-login-recovery-icon{color:#c73755}
.pe-login-recovery-loading{min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#717987}
.pe-loading-spinner{width:34px;height:34px;border:3px solid #e7e5f7;border-top-color:var(--pe-primary);border-radius:50%;animation:pe-login-spin .8s linear infinite}
@keyframes pe-login-spin{to{transform:rotate(360deg)}}
.pe-password-strength{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-items:center}
.pe-password-strength>span{height:5px;border-radius:999px;background:#e4e7ed;transition:background .18s ease}
.pe-password-strength>small{grid-column:1/-1;color:#858d9b;font-size:11px}
.pe-password-strength[data-score="1"]>span:nth-child(-n+1){background:#db4d65}
.pe-password-strength[data-score="2"]>span:nth-child(-n+2){background:#e5a122}
.pe-password-strength[data-score="3"]>span:nth-child(-n+3){background:#4f8ee8}
.pe-password-strength[data-score="4"]>span:nth-child(-n+4){background:#16a467}
@media(max-width:520px){
  .pe-login-recovery-links{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  .pe-loading-spinner{animation:none}
}


/* v3.6.27 — login and recovery mobile hardening */
.pe-login-body,
.pe-login-shell,
.pe-login-brand,
.pe-login-side,
.pe-login-card{
  min-width:0;
  max-width:100%;
}
.pe-login-card :where(h1,h2,h3,p,strong,small,span,label,a){
  overflow-wrap:anywhere;
}
@media(max-width:850px){
  .pe-login-shell{
    min-height:100dvh;
  }
  .pe-login-brand{
    min-height:auto;
    padding:max(28px,env(safe-area-inset-top)) 22px 30px;
  }
  .pe-login-side{
    min-height:0;
    padding:32px 18px max(32px,env(safe-area-inset-bottom));
  }
  .pe-login-card{
    width:min(620px,100%);
  }
}
@media(max-width:520px){
  .pe-login-brand{
    padding-left:16px;
    padding-right:16px;
  }
  .pe-login-side{
    padding-left:12px;
    padding-right:12px;
  }
  .pe-login-card{
    padding:20px 16px;
    border-radius:16px;
  }
  .pe-login-actions,
  .pe-recovery-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .pe-login-actions>.pe-btn,
  .pe-recovery-actions>.pe-btn{
    width:100%;
  }
}
