/* Auth pages (signup / login) + topbar account state — static phase.
   Profiles are on-device only (see auth.js); this file is presentation.
   Tokens come from site.css, so the MapleDuel copy is identical. */

/* ---------- topbar account cluster ---------- */
.auth-nav{display:flex;align-items:center;gap:8px}
.auth-nav[hidden]{display:none!important}
.auth-user{display:flex;align-items:center;gap:8px}
.auth-user[hidden]{display:none!important}
.auth-hi{color:var(--muted);font-weight:600;white-space:nowrap}
.auth-hi strong{color:var(--text)}
/* own class (not .btn-ghost) so the ≤860px ghost-hiding rule in site.css
   never hides Log out on phones */
.btn-logout{background:var(--panel-2);border:1px solid var(--line);color:var(--text)}
.btn-logout:hover{border-color:rgba(167,139,250,.5)}
.topbar-support{
  background:none;border:0;color:var(--muted);font:inherit;font-weight:600;
  cursor:pointer;padding:8px 4px;white-space:nowrap;
}
.topbar-support:hover{color:var(--text)}
@media (max-width:1080px){.topbar-support{display:none}}
@media (max-width:560px){
  /* logged-in phones: the demo wallet pill yields to the greeting +
     Log out so the bar never overflows */
  body.has-profile .wallet-pill{display:none}
  .auth-hi strong{
    display:inline-block;max-width:64px;overflow:hidden;
    text-overflow:ellipsis;vertical-align:bottom;
  }
}
@media (max-width:480px){.auth-signup-free{display:none}}

/* ---------- hero band ---------- */
.auth-hero{
  position:relative;overflow:hidden;padding:26px 24px;margin-bottom:16px;
  border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.07);
  background:
    radial-gradient(520px 220px at 95% -30%,rgba(167,139,250,.22),transparent 60%),
    linear-gradient(140deg,#2a1655,#130c26 62%,var(--panel));
}
.auth-hero::before{
  content:"";position:absolute;right:-20px;top:50%;width:230px;height:230px;
  transform:translateY(-50%);opacity:.10;pointer-events:none;
  background:url("../img/crown-pattern.svg") center/contain no-repeat;
  -webkit-mask-image:radial-gradient(closest-side,#000 25%,transparent 74%);
          mask-image:radial-gradient(closest-side,#000 25%,transparent 74%);
}
.auth-kicker{
  margin:0 0 6px;color:var(--accent-2);font-weight:800;position:relative;
  letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;
}
.auth-hero h1{margin:0 0 8px;font-size:1.9rem;position:relative}
.auth-sub{margin:0;color:#cfcbe0;line-height:1.6;max-width:56ch;position:relative}
html[data-experience="lite"] .auth-hero{box-shadow:none}
html[data-experience="lite"] .auth-hero::before{opacity:.05}

/* ---------- benefits strip ---------- */
.auth-benefits{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.auth-benefits span{
  padding:9px 13px;border-radius:999px;background:var(--panel-2);
  border:1px solid var(--line);font-weight:600;font-size:.9rem;
}

/* ---------- form card ---------- */
.auth-card{
  max-width:560px;padding:22px;border-radius:var(--radius);
  background:linear-gradient(170deg,var(--panel-2),var(--panel) 75%);
  border:1px solid var(--line);box-shadow:var(--shadow);
}
.field{margin-bottom:16px}
.field label{display:block;font-weight:700;margin-bottom:7px}
.field input[type="text"],.field input[type="tel"],
.field input[type="password"],.field input[type="email"]{
  width:100%;min-height:50px;padding:12px 14px;font:inherit;color:var(--text);
  border-radius:var(--radius-sm);border:1px solid var(--line);
  background:var(--panel);
}
.field input:focus{
  outline:0;border-color:var(--accent-2);
  box-shadow:0 0 0 3px rgba(167,139,250,.18);
}
.field input.invalid{border-color:var(--negative)}
.field input[readonly]{opacity:.85;background:var(--panel-2)}
.field-hint{margin:7px 0 0;color:var(--muted);font-size:.88rem;line-height:1.5}
.field-error{margin:7px 0 0;color:#f87171;font-size:.9rem;font-weight:600}
.field-error[hidden],.field-hint[hidden]{display:none!important}
.phone-field{display:flex}
.phone-prefix{
  display:flex;align-items:center;padding:0 13px;font-weight:700;
  color:var(--accent-2);background:var(--panel-3);
  border:1px solid var(--line);border-right:0;
  border-radius:var(--radius-sm) 0 0 var(--radius-sm);
}
.field .phone-field input[type="tel"]{
  flex:1;border-top-left-radius:0;border-bottom-left-radius:0;
}
.pass-field{display:flex;gap:8px}
.pass-field input{flex:1;min-width:0}
.pass-toggle{
  flex:none;padding:0 14px;border-radius:var(--radius-sm);cursor:pointer;
  border:1px solid var(--line);background:var(--panel-3);color:var(--text);
  font-weight:700;
}
.check-field{
  display:flex;gap:10px;align-items:flex-start;margin-bottom:6px;
  line-height:1.5;cursor:pointer;
}
.check-field input{
  width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--accent);
}
.check-field a{color:var(--accent-2);text-decoration:underline}
.auth-submit{width:100%;padding:14px;font-size:1.02rem;margin-top:10px}
.auth-note{color:var(--muted);font-size:.87rem;line-height:1.55;margin:14px 0 0}
.auth-alt{margin:16px 0 0;color:var(--muted)}
.auth-alt a{color:var(--accent-2);font-weight:700}
.auth-forgot{margin:12px 0 0}
.linklike{
  background:none;border:0;padding:0;font:inherit;cursor:pointer;
  color:var(--accent-2);font-weight:700;text-decoration:underline;
}
.auth-banner{
  margin-bottom:16px;padding:12px 14px;line-height:1.5;
  border-radius:var(--radius-sm);
  border:1px solid rgba(250,204,21,.45);background:rgba(250,204,21,.08);
}
.auth-banner[hidden]{display:none!important}
.auth-error-banner{
  margin-bottom:16px;padding:12px 14px;line-height:1.55;
  border-radius:var(--radius-sm);
  border:1px solid rgba(239,68,68,.5);background:rgba(239,68,68,.09);
}
.auth-error-banner[hidden]{display:none!important}
.auth-error-banner a{color:#fca5a5;font-weight:700;text-decoration:underline}

/* ---------- success state ---------- */
.auth-success{text-align:center;padding:10px 4px}
.auth-success[hidden]{display:none!important}
.auth-success-badge{
  width:64px;height:64px;margin:0 auto 12px;display:grid;place-items:center;
  border-radius:50%;font-size:1.7rem;color:#fff;box-shadow:var(--glow);
  background:linear-gradient(150deg,#8b5cf6,var(--accent));
}
.auth-success h2{margin:0 0 8px}
.auth-success p{color:#cfcbe0;line-height:1.6;margin:0 0 16px}
.auth-success .btn{margin:0 4px 8px}

@media (max-width:700px){
  .auth-hero{padding:20px 16px}
  .auth-hero h1{font-size:1.55rem}
  .auth-card{padding:18px 16px}
}
