.esp-auth-body { margin:0; background:#f3f5f7; color:#263640; font:15px/1.55 Arial,sans-serif; }
.esp-auth-shell, .esp-auth-shell * { box-sizing:border-box; }
.esp-auth-shell { max-width:572px; margin:0 auto; padding:32px 24px 36px; }
.esp-auth-shell a { color:#23617e; text-decoration:none; }
.esp-auth-shell a:hover { color:#9e0000; text-decoration:underline; }
.esp-auth-shell a:focus-visible, .esp-auth-shell button:focus-visible { outline:3px solid #72b6d9; outline-offset:3px; }
.esp-auth-back { display:inline-block; margin-bottom:24px; font-size:13px; font-weight:600; }
.esp-auth-layout { display:block; }
.esp-auth-card { background:#fff; border:1px solid #dce2e7; border-radius:14px; box-shadow:0 6px 24px rgba(29,46,59,.045); overflow:hidden; }
.esp-auth-card-head { padding:30px 32px 24px; border-bottom:1px solid #e5e9ed; }
.esp-auth-eyebrow { display:block; margin:0 0 11px; color:#71808a; text-transform:uppercase; letter-spacing:1.2px; font-size:10px; font-weight:700; }
.esp-auth-card h1 { margin:0 0 10px; color:#25323b; font-size:30px; font-weight:700; line-height:1.16; letter-spacing:-.7px; }
.esp-auth-card-head p { margin:0; color:#65727b; font-size:14px; line-height:1.65; }
.esp-auth-card-content { padding:27px 32px 29px; }
.esp-auth-field { margin-bottom:22px; }
.esp-auth-field label { display:block; margin:0 0 8px; color:#33434e; font-size:13px; font-weight:700; }
.esp-auth-field input { display:block; width:100%; height:48px; border:1px solid #c8d2da; border-radius:7px; background:#fff; color:#263640; padding:10px 13px; font:16px Arial,sans-serif; box-shadow:inset 0 1px 2px rgba(0,0,0,.025); }
.esp-auth-field input:focus { outline:0; border-color:#4087ad; box-shadow:0 0 0 3px rgba(64,135,173,.15); }
.esp-auth-label-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.esp-auth-label-row a { font-size:12px; }
.esp-auth-password { position:relative; }
.esp-auth-password input { padding-right:66px; }
.esp-auth-show { position:absolute; top:5px; right:5px; height:38px; padding:0 10px; background:transparent; border:0; border-radius:4px; color:#34617a; font-size:12px; font-weight:700; cursor:pointer; }
.esp-auth-show:hover { background:#edf5f9; }
.esp-auth-primary { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; min-height:49px; padding:12px 18px; border:1px solid #ba0000; border-radius:7px; background:#bf0000; color:#fff; font:700 15px Arial,sans-serif; cursor:pointer; transition:background .15s; }
.esp-auth-primary:hover { background:#a80000; }
.esp-auth-primary:disabled { opacity:.65; cursor:wait; }
.esp-auth-switch { border-top:1px solid #e5e9ed; margin-top:25px; padding-top:22px; font-size:13px; text-align:center; }
.esp-auth-switch strong { font-weight:600; }
.esp-auth-switch a { font-weight:700; }
.esp-auth-step { display:flex; align-items:center; gap:9px; margin-bottom:23px; color:#506675; font-size:12px; font-weight:700; }
.esp-auth-step span { display:inline-flex; align-items:center; justify-content:center; width:25px; height:25px; border:1px solid #c2ddec; border-radius:50%; background:#eaf5fc; color:#2d6584; }
.esp-auth-field-help { margin:9px 0 0; color:#78828a; font-size:12px; line-height:1.6; }
.esp-auth-error { margin-bottom:20px; padding:12px 14px; border:1px solid #e8b9b9; border-radius:7px; background:#fff1f1; color:#942a2a; font-size:13px; }
.esp-auth-error ul { margin:0; padding-left:19px; }
.esp-auth-recovery { margin:8px 0 0; }
.esp-auth-recovery a { font-weight:700; text-decoration:underline; }
.esp-auth-form-status { margin:10px 0 0; color:#6a7782; font-size:12px; text-align:center; }
.esp-auth-form-status:empty { display:none; }
.esp-auth-shell [hidden] { display:none !important; }
@media(max-width:760px) {
  .esp-auth-shell { max-width:550px; padding:22px 16px 28px; }
  .esp-auth-back { margin-bottom:19px; }
  .esp-auth-card-head { padding:26px 24px 23px; }
  .esp-auth-card h1 { font-size:28px; }
  .esp-auth-card-content { padding:24px; }
}
