body.visitor-auth {
  margin: 0;
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: linear-gradient(135deg, #f9ced6 0%, #fdf1f3 45%, #e74363 100%);
  color: #17181a;
  font-family: system-ui, sans-serif;
}
.visitor-auth main {
  width: min(100%, 34rem);
  padding: 2rem;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 32px rgb(23 24 26 / 0.08);
}
.visitor-auth .brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0 0 1.25rem;
  font-weight: 600;
  color: #e74363;
}
.visitor-auth .mark {
  display: grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 6px;
  background: #e74363;
  color: #fff;
  font-family: Georgia, serif;
}
.visitor-auth h1 { margin: 0 0 0.5rem; font-size: 1.5rem; }
.visitor-auth .lede,
.visitor-auth .divider { color: #333539; }
.visitor-auth .error {
  padding: 0.75rem 0.9rem;
  border-radius: 8px;
  background: #fdecea;
  color: #f44335;
}
.visitor-auth .social,
.visitor-auth form,
.visitor-auth label { display: grid; gap: 0.6rem; }
.visitor-auth form { gap: 1rem; }
.visitor-auth .divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.visitor-auth .divider::before,
.visitor-auth .divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #f0f1f3;
}
.visitor-auth input,
.visitor-auth button {
  padding: 0.9rem 1rem;
  font: inherit;
  border-radius: 8px;
  border: 1px solid #c6c8cc;
  background: #fff;
}
.visitor-auth button { cursor: pointer; text-align: left; }
.visitor-auth button[type="submit"] {
  background: #17181a;
  color: #fff;
  border-color: #17181a;
  text-align: center;
  font-weight: 600;
}
.visitor-auth button:disabled { opacity: 0.5; cursor: not-allowed; }
.visitor-auth .btn-social {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.visitor-auth .btn-icon {
  width: 1.25rem;
  height: 1.25rem;
  display: grid;
  place-items: center;
}
.visitor-auth .btn-icon img,
.visitor-auth .btn-icon svg { width: 1.25rem; height: 1.25rem; display: block; }
