:root{
  --nx1:#6b2bd8; --nx2:#8a5ae6;
  --bg:#0b0f1a; --card:#111625; --line:rgba(255,255,255,.10);
  --fg:#fff; --muted:#a1a1b2;
}
html[data-bs-theme="light"] :root{
  --bg:#f7f8fb; --card:#ffffff; --fg:#0b0f1a; --muted:#5a6072; --line:rgba(11,15,26,.12);
}

.nx-auth{ min-height:calc(100dvh - 120px); display:grid; place-items:center; padding:28px 12px; background:var(--bg); color:var(--fg); }
.nx-auth__card{
  width:min(480px, 92vw);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:20px;
  padding:22px;
  box-shadow:0 24px 54px rgba(0,0,0,.25);
}
.nx-auth__title{ margin:0 0 10px; font-weight:900; font-size:clamp(1.3rem,3.2vw,1.8rem); }
.nx-auth__alert{ padding:.6rem .8rem; border-radius:12px; margin:8px 0; }
.nx-auth__alert.-error{ background:rgba(255,0,65,.08); border:1px solid rgba(255,0,65,.25); }
.nx-auth__alert.-info{ background:rgba(107,43,216,.10); border:1px solid rgba(107,43,216,.25); }

.nx-form{ display:grid; gap:12px; margin-top:10px; }
.nx-field span{ display:block; font-weight:800; margin:0 0 6px; }
.nx-field input{
  width:100%; border-radius:12px; border:1px solid var(--line); background:transparent; color:inherit;
  padding:.7rem .8rem; outline:none;
}
.nx-pass{ position:relative; }
.nx-pass__toggle{
  position:absolute; inset:0 .5rem 0 auto; width:40px; border:0; background:transparent; color:inherit; cursor:pointer;
}

.nx-actions{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.nx-btn{
  background:linear-gradient(135deg,var(--nx1),var(--nx2));
  color:#fff; border:0; border-radius:999px; padding:.6rem 1rem; font-weight:800;
  box-shadow:0 14px 32px rgba(107,43,216,.28); cursor:pointer;
}
.nx-link{ color:inherit; opacity:.8; text-decoration:none; border-bottom:1px dashed currentColor; padding-bottom:1px; }
.nx-or{ margin:14px 0; text-align:center; opacity:.8; }
.nx-auth__hint{ margin:10px 0 0; text-align:center; }
