:root {
  --paper: #F3F1EE; --card: #fbfaf8; --border: #e0dcd5; --ink: #1E2250; --dim: #5A5A5A;
  --accent: #F4863F; --violet: #3A3F86; --ember: #B9531A;
}
* { box-sizing: border-box; margin: 0; }
html, body { height: 100%; }
body { font-family: "Poppins", -apple-system, sans-serif; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
button, input { font: inherit; color: inherit; }
[hidden] { display: none !important; }

.auth-page { min-height: 100%; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.auth-side {
  background: var(--ink); color: var(--paper); padding: clamp(32px, 6vw, 72px);
  display: flex; flex-direction: column; justify-content: center; gap: 22px;
}
.auth-pitch { font-size: clamp(30px, 3.6vw, 48px); font-weight: 700; line-height: 1.14; letter-spacing: -.025em; }
.auth-sub { color: #b9bbd8; font-size: 16px; max-width: 26em; line-height: 1.5; }
.auth-main { display: flex; align-items: center; justify-content: center; padding: 32px 20px; }
.auth-card { width: 100%; max-width: 400px; }
.auth-logo { display: none; margin-bottom: 18px; }
.auth-card h1 { font-size: 28px; font-weight: 700; letter-spacing: -.02em; margin-bottom: 22px; }
.auth-google {
  width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 12px; background: #fff; border: 1px solid var(--border); border-radius: 11px;
  font-weight: 600; font-size: 15px; cursor: pointer;
}
.auth-google:hover { border-color: var(--ink); }
.auth-or { display: flex; align-items: center; gap: 12px; color: var(--dim); font-size: 13px; margin: 18px 0; }
.auth-or::before, .auth-or::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.auth-field { margin-bottom: 14px; display: flex; flex-direction: column; gap: 6px; }
.auth-field label { font-weight: 600; font-size: 13.5px; }
.auth-field input {
  padding: 12px 13px; background: #fff; border: 1px solid var(--border); border-radius: 10px; font-size: 16px; width: 100%;
}
.auth-field input:focus { outline: 2px solid var(--ink); outline-offset: -1px; border-color: var(--ink); }
.auth-link { background: none; border: 0; padding: 0; color: var(--violet); font-weight: 600; cursor: pointer; font-size: inherit; }
.auth-link:hover { text-decoration: underline; }
.auth-forgot { font-size: 13px; margin-bottom: 8px; }
.auth-error, .auth-info { font-size: 13.5px; line-height: 1.45; margin: 6px 0; }
.auth-error { color: #A8341A; font-weight: 500; }
.auth-info { color: var(--violet); font-weight: 500; }
.auth-error:empty, .auth-info:empty { display: none; }
.auth-submit {
  width: 100%; margin-top: 8px; padding: 13px; background: var(--accent); color: var(--ink);
  border: 0; border-radius: 11px; font-weight: 700; font-size: 15px; cursor: pointer;
}
.auth-submit:hover { background: #F7985C; }
.auth-submit:disabled { opacity: .6; cursor: progress; }
.auth-terms { font-size: 12.5px; color: var(--dim); margin-top: 12px; line-height: 1.5; }
.auth-terms a { color: inherit; }
.auth-switch { font-size: 14px; color: var(--dim); margin-top: 18px; text-align: center; }
@media (max-width: 820px) {
  .auth-page { grid-template-columns: 1fr; }
  .auth-side { display: none; }
  .auth-logo { display: block; }
}
