.auth-body { min-height: 100dvh; position: relative; }
.auth-bg {
  position: fixed; inset: 0;
  background:
    radial-gradient(1200px 600px at 10% -10%, #1d4ed8 0%, transparent 55%),
    radial-gradient(900px 500px at 100% 0%, #16a34a 0%, transparent 50%),
    linear-gradient(160deg, #071018, #0b1220 45%, #111827);
}
.auth-shell {
  position: relative; z-index: 1;
  min-height: 100dvh; display: grid; place-items: center;
  padding: 1.25rem;
}
.auth-card {
  width: min(420px, 100%);
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(10px);
  border-radius: 28px;
  padding: 1.5rem;
  box-shadow: var(--shadow);
}
.auth-card.wide { width: min(820px, 100%); }
.auth-brand { text-align: center; margin-bottom: 1.25rem; }
.auth-brand h1 {
  font-family: var(--display); margin: 0.75rem 0 0.25rem; font-size: 1.8rem;
}
.auth-brand p { margin: 0; color: var(--muted); }
.auth-form { display: grid; gap: 0.85rem; }
.auth-form.grid-2 { grid-template-columns: 1fr; }
@media (min-width: 760px) {
  .auth-form.grid-2 { grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
  .auth-form .full { grid-column: 1 / -1; }
}
.auth-form label { display: grid; gap: 0.35rem; }
.auth-form label span { font-size: 0.85rem; color: var(--muted); font-weight: 600; }
.auth-form input, .auth-form select {
  width: 100%; border: 1px solid var(--line); border-radius: 14px;
  padding: 0.85rem 0.95rem; background: #fff;
}
fieldset {
  border: 1px solid var(--line); border-radius: 18px; padding: 1rem;
  display: grid; gap: 0.75rem; margin: 0;
}
legend { padding: 0 0.4rem; font-weight: 700; }
.form-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.form-actions .btn-primary, .form-actions .btn-ghost { flex: 1; }
.auth-foot { text-align: center; color: var(--muted); margin: 1rem 0 0; }
.auth-foot a { font-weight: 700; text-decoration: none; color: #0b1220; }
.error-card { text-align: center; color: #fff; }
.error-card h1 { font-family: var(--display); font-size: 4rem; margin: 0; }
.error-card .btn-primary { display: inline-block; width: auto; margin-top: 1rem; text-decoration: none; }
