.pxa{--c-bg:var(--raise,#141f24);--c-line:var(--line,#24363d);--c-text:var(--text,#edf3f5);
     --c-dim:var(--dim,#8fa6ae);--c-faint:var(--faint,#5a737d);--c-act:var(--act,#ea6d22);
     --c-ink:var(--act-ink,#0c1417);--c-glow:var(--glow,#57cdf9);--c-pos:var(--pos,#38ce8d);--c-neg:var(--neg,#e85f63);
     display:flex;flex-direction:column;gap:14px;max-width:460px}
.pxa-note{padding:12px 15px;font-size:14px;box-shadow:inset 0 0 0 1px var(--c-line);color:var(--c-text)}
.pxa-note.good{box-shadow:inset 0 0 0 1px var(--c-pos);color:var(--c-pos)}
.pxa-note.bad{box-shadow:inset 0 0 0 1px var(--c-neg);color:var(--c-neg)}
.pxa-form{display:flex;flex-direction:column;gap:14px}
.pxa-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--c-dim)}
.pxa-form label span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--c-faint)}
.pxa-form input{background:transparent;border:1px solid var(--c-line);color:var(--c-text);padding:12px 13px;font:inherit;font-size:14px}
.pxa-form input:focus{outline:none;border-color:var(--c-glow)}
.pxa-form small{font-size:11.5px;color:var(--c-faint)}
.pxa-btn{background:var(--c-act);color:var(--c-ink);border:0;padding:13px 22px;font-weight:700;font-size:14px;
  text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
.pxa-btn:hover{filter:brightness(1.1)}
.pxa-fine{font-size:11.5px;color:var(--c-faint);margin:0;line-height:1.55}
.pxa-sub{color:var(--c-dim);font-size:14px}
/* Off-screen, not display:none — a hidden-by-display field is the first thing
   a scripted submitter learns to skip. */
.pxa-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pxa-verify{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:15px 17px;box-shadow:inset 0 0 0 1px var(--act,#ea6d22);margin-bottom:14px}
.pxa-verify strong{color:var(--text,#edf3f5);display:block;margin-bottom:4px}
.pxa-verify p{margin:0;font-size:13px;color:var(--dim,#8fa6ae);max-width:60ch}

/* ---- admin ---- */
.pxa-admin .pxa-hint{background:#fff;border-left:4px solid #2271b1;padding:12px 14px;max-width:860px}
.pxa-admin .pxa-band{display:inline-block;padding:3px 9px;border-radius:4px;font-size:12px;font-weight:700;background:#e5e5e5;color:#50575e}
.pxa-admin .pxa-band.ok{background:#d6f2e2;color:#0a6b40}
.pxa-admin .pxa-band.watch{background:#fdf0d5;color:#7a5600}
.pxa-admin .pxa-band.high{background:#fbdcdc;color:#8a1f1f}
.pxa-admin .pxa-flags{margin:0;padding-left:16px;list-style:disc;font-size:12.5px;color:#50575e}
.pxa-admin .pxa-ip{font-size:11.5px}

/* ---- v1.2.0: match ticks + strength meter ---- */
.pxa-status{font-size:12px;font-weight:600;min-height:1em}
.pxa-status.ok{color:var(--c-pos,#38ce8d)}
.pxa-status.bad{color:var(--c-neg,#e85f63)}

.pxa-meter{display:flex;align-items:center;gap:10px;margin-top:2px}
.pxa-meter-bar{
  flex:1;height:5px;background:var(--c-bg,#141f24);
  box-shadow:inset 0 0 0 1px var(--c-line,#24363d);overflow:hidden;
}
.pxa-meter-bar i{display:block;height:100%;width:0;transition:width .18s,background .18s}
.pxa-meter-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;min-width:58px;text-align:right}
.pxa-meter.weak   .pxa-meter-bar i{background:var(--c-neg,#e85f63)}
.pxa-meter.weak   .pxa-meter-label{color:var(--c-neg,#e85f63)}
.pxa-meter.medium .pxa-meter-bar i{background:var(--c-act,#ea6d22)}
.pxa-meter.medium .pxa-meter-label{color:var(--c-act,#ea6d22)}
.pxa-meter.strong .pxa-meter-bar i{background:var(--c-pos,#38ce8d)}
.pxa-meter.strong .pxa-meter-label{color:var(--c-pos,#38ce8d)}

.pxa-rules{
  list-style:none;margin:4px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--c-faint,#5a737d);
}
.pxa-rules li{display:flex;align-items:center;gap:6px}
/* The marker changes shape as well as colour — a tick and a dot are still
   distinguishable to somebody who cannot separate red from green. */
.pxa-rules li::before{content:"\25CB";font-size:10px;opacity:.7}
.pxa-rules li.met{color:var(--c-pos,#38ce8d)}
.pxa-rules li.met::before{content:"\2713";opacity:1}

/* ---- v1.3.0: the prompt lives inside the balance panel ---- */
.pxr-hero .pxa-verify{
  display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  margin:18px 0 0;padding:15px 17px;
  background:color-mix(in srgb, var(--act,#ea6d22) 9%, transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--act,#ea6d22) 45%, transparent);
}
.pxr-hero .pxa-verify-txt{flex:1;min-width:260px}
.pxr-hero .pxa-verify strong{display:block;margin-bottom:5px;font-size:15px;color:var(--text,#edf3f5)}
.pxr-hero .pxa-verify p{margin:0;font-size:13.5px;line-height:1.5;color:var(--dim,#8fa6ae);max-width:62ch}
.pxr-hero .pxa-verify small{display:block;margin-top:7px;font-size:11.5px;color:var(--faint,#5a737d)}
.pxa-btn.sm{padding:10px 18px;font-size:12.5px;white-space:nowrap}

/* ---- v1.4.0: account settings ---- */
.pxa-acct{display:flex;flex-direction:column;gap:16px}
.pxa-acct .pxa-form{max-width:420px}
.pxa-acct input[type=text],.pxa-acct input[type=email],.pxa-acct input[type=password]{
  background:transparent;border:1px solid var(--line,#24363d);color:var(--text,#edf3f5);
  padding:12px 13px;font:inherit;font-size:14px;width:100%;
}
.pxa-acct input:focus{outline:none;border-color:var(--glow,#57cdf9)}
.pxa-acct input:disabled{opacity:.55;cursor:not-allowed}
.pxa-acct label{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.pxa-acct label span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint,#5a737d)}
.pxa-acct label small{font-size:11.5px;color:var(--faint,#5a737d)}

/* Resend, sitting under the Unverified badge. Quiet by default — it is a
   fallback, not the main action — but obvious on hover. Right-aligned to the
   badge above it so the two read as one block. */
.pxa-resend-mini{margin:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.pxa-resend-mini form{margin:0}
.pxa-resend-mini small{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint,#5a737d)}
.pxa-resend-mini button[disabled]{
  opacity:.55;cursor:not-allowed;border-color:var(--line,#24363d);color:var(--faint,#5a737d);
}
.pxa-resend-mini button[disabled]:hover{background:transparent;color:var(--faint,#5a737d)}
.pxa-resend-mini button{
  background:transparent;border:1px solid color-mix(in srgb, var(--act,#ea6d22) 55%, transparent);
  color:var(--act,#ea6d22);cursor:pointer;font:inherit;font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:7px 12px;white-space:nowrap;transition:.14s;
}
.pxa-resend-mini button:hover{background:var(--act,#ea6d22);color:var(--act-ink,#0c1417)}

/* The notice keeps the explanation; the button moved to the badge column. */
.pxr-hero .pxa-verify{display:block}
.pxr-hero .pxa-verify-txt{min-width:0}

/* Sits just above the sign-in button, with room either side of it. */
.pxa-login-cf{margin:4px 0 16px}
.pxa-login-cf iframe{max-width:100%}


/* =====================================================================
   ACCOUNT TAB — v1.9.0

   Self-contained: its own class names and its own tokens with fallbacks, so
   it renders correctly whether or not the host theme defines them. The
   previous version borrowed the rewards plugin's .pxr-card and depended on a
   stylesheet nobody enqueued, which is how it ended up with labels inline
   and inputs sharing rows.
   ===================================================================== */
.pxa-acct{
  --pxa-bg:      var(--bg, #0c1417);
  --pxa-raise:   var(--raise, #131e22);
  --pxa-line:    var(--line, #24363d);
  --pxa-rule:    var(--rule, #1b2a30);
  --pxa-text:    var(--text, #edf3f5);
  --pxa-dim:     var(--dim, #8fa6ae);
  --pxa-faint:   var(--faint, #5a737d);
  --pxa-glow:    var(--glow, #57cdf9);

  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:16px;align-items:start;margin-top:4px;
}

.pxa-acct .pxa-card{
  background:var(--pxa-raise);
  box-shadow:inset 0 0 0 1px var(--pxa-line);
  border-radius:14px;padding:24px;margin:0;
  display:flex;flex-direction:column;
}
.pxa-acct .pxa-card h3{
  margin:0 0 6px;padding:0;border:0;
  font-size:16px;font-weight:700;line-height:1.3;
  color:var(--pxa-text);letter-spacing:-.01em;
}
.pxa-acct .pxa-sub{
  margin:0 0 18px;font-size:13px;line-height:1.6;color:var(--pxa-dim);
}
.pxa-acct .pxa-sub b{color:var(--pxa-text);font-weight:600}

/* Every field is its own stacked block. This is the rule that was missing. */
.pxa-acct .pxa-form{max-width:none;margin:0;display:block}
.pxa-acct .pxa-form label{
  display:block;margin:0 0 16px;
}
.pxa-acct .pxa-form label > span{
  display:block;margin:0 0 7px;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--pxa-faint);font-weight:700;
}
.pxa-acct .pxa-form label > small{
  display:block;margin-top:7px;
  font-size:12px;line-height:1.5;color:var(--pxa-faint);
}
.pxa-acct .pxa-form input[type=text],
.pxa-acct .pxa-form input[type=email],
.pxa-acct .pxa-form input[type=password]{
  display:block;width:100%;box-sizing:border-box;
  background:var(--pxa-bg);border:1px solid var(--pxa-line);border-radius:9px;
  color:var(--pxa-text);padding:12px 14px;
  font:inherit;font-size:14.5px;line-height:1.4;
  transition:border-color .14s,box-shadow .14s;
}
.pxa-acct .pxa-form input:focus{
  outline:none;border-color:var(--pxa-glow);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--pxa-glow) 18%, transparent);
}
.pxa-acct .pxa-form input:disabled{opacity:.45;cursor:not-allowed;background:transparent}

.pxa-acct .pxa-form .pxa-btn{
  display:block;width:100%;margin:4px 0 0;
  padding:13px 18px;font-size:13px;border-radius:9px;text-align:center;
}

/* The reset link sits at the foot of the password card, ruled off. */
.pxa-acct .pxa-card > .pxa-sub:last-child{
  margin:auto 0 0;padding-top:16px;
  border-top:1px solid var(--pxa-rule);font-size:12.5px;
}
.pxa-acct .pxa-card > .pxa-sub:last-child a{color:var(--pxa-glow);text-decoration:none}
.pxa-acct .pxa-card > .pxa-sub:last-child a:hover{text-decoration:underline}

.pxa-acct .pxa-notice{grid-column:1/-1;margin:0}

@media(max-width:760px){
  .pxa-acct{grid-template-columns:1fr;gap:14px}
  .pxa-acct .pxa-card{padding:20px}
}
