/* Cactuly auth pages — login, esqueci-senha, reset-senha.
   Herda a linguagem visual do landing (Playfair + DM Sans, paleta dark ink),
   mas dentro de um cartão centralizado, sem o frame do hero. */

body.auth {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-body);
  background: radial-gradient(120% 90% at 50% 20%, hsl(258 24% 12%) 0%, hsl(258 20% 8%) 55%, hsl(258 18% 4%) 100%);
  color: hsl(var(--ink-foreground));
  display: grid;
  grid-template-rows: auto 1fr;
}

body.auth .auth-top {
  padding: 22px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
body.auth .auth-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: hsl(var(--ink-foreground));
  text-decoration: none;
}
body.auth .auth-brand img.logo-ico { height: 26px; }
body.auth .auth-brand img.logo-word { height: 16px; }

body.auth .auth-shell {
  display: grid;
  place-items: center;
  padding: 20px;
}

body.auth .auth-card {
  width: 100%;
  max-width: 440px;
  background: hsl(var(--ink-card));
  border: 1px solid hsl(var(--hairline-dark));
  border-radius: 22px;
  padding: 40px 36px;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.7);
}

body.auth h1 {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3vw, 2.4rem);
  font-weight: 600;
  margin: 0 0 8px;
  letter-spacing: -0.015em;
  color: hsl(var(--ink-foreground));
}
body.auth .auth-lead {
  color: hsl(var(--ink-muted));
  font-size: 1rem;
  margin: 0 0 28px;
  line-height: 1.55;
}

body.auth .field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
body.auth label {
  font-size: 0.86rem;
  font-weight: 500;
  color: hsl(var(--ink-foreground));
}
body.auth input {
  font: inherit;
  padding: 13px 15px;
  border-radius: 12px;
  background: hsl(258 26% 10%);
  border: 1px solid hsl(var(--hairline-dark));
  color: hsl(var(--ink-foreground));
  transition: border-color .18s, box-shadow .18s;
}
body.auth input::placeholder { color: hsl(258 10% 45%); }
body.auth input:focus {
  outline: none;
  border-color: hsl(var(--gold));
  box-shadow: 0 0 0 4px hsl(var(--gold) / 0.15);
}

body.auth .btn-primary {
  width: 100%;
  margin-top: 8px;
  padding: 14px 22px;
  font: 600 0.98rem/1 var(--font-body);
  color: hsl(var(--ink));
  background: hsl(var(--gold));
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: transform .18s, box-shadow .18s;
}
body.auth .btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px hsl(var(--gold) / 0.3);
}
body.auth .btn-primary:disabled { opacity: .55; cursor: not-allowed; }

body.auth .auth-foot {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid hsl(var(--hairline-dark));
  text-align: center;
  font-size: 0.88rem;
  color: hsl(var(--ink-muted));
}
body.auth .auth-foot a {
  color: hsl(var(--gold));
  font-weight: 500;
  text-decoration: none;
}
body.auth .auth-foot a:hover { text-decoration: underline; }

body.auth .msg {
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 0.88rem;
  margin-bottom: 16px;
  display: none;
  line-height: 1.4;
}
body.auth .msg.show { display: block; }
body.auth .msg.erro { background: hsl(0 60% 20%); color: hsl(0 80% 88%); border: 1px solid hsl(0 40% 40%); }
body.auth .msg.ok { background: hsl(150 40% 18%); color: hsl(150 60% 82%); border: 1px solid hsl(150 30% 40%); }
