* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  min-height: 100vh; margin: 0; display: grid; place-items: center;
  padding: 24px 16px; background: var(--color-page); color: var(--color-ink);
  font-family: var(--font-sans); font-size: var(--console-font-size-body); -webkit-font-smoothing: antialiased;
}
button, input { font: inherit; }
a { color: var(--color-brand); font-weight: 600; text-decoration: none; }
a:hover { color: var(--color-brand-hover); text-decoration: underline; }
:focus-visible { outline: var(--console-focus-width) solid var(--console-focus-color); outline-offset: var(--console-focus-offset); }
.auth-shell { width: min(100%, 400px); }
.auth-brand { display: flex; align-items: center; gap: 10px; margin: 0 0 18px 4px; }
.auth-brand img { width: 36px; height: 26px; flex: none; }
.auth-brand span { color: var(--color-ink); font-size: 16px; font-weight: 700; letter-spacing: -.01em; }
.auth-card { padding: 28px; background: var(--color-sheet); border: 1px solid var(--color-border); border-radius: var(--console-radius-panel); box-shadow: none; }
h1 { margin: 0 0 8px; font-size: var(--console-font-size-page-title); font-weight: var(--console-font-weight-page-title); line-height: var(--console-line-height-page-title); letter-spacing: var(--console-letter-spacing-page-title); text-wrap: balance; }
.auth-lead { margin: 0 0 24px; color: var(--color-ink-2); line-height: 1.55; }
.field { display: grid; gap: 7px; margin-bottom: 16px; color: var(--color-ink-2); font-size: 13px; font-weight: 600; }
.field input { width: 100%; min-height: var(--console-control-touch-height); padding: 0 12px; border: 1px solid var(--color-input-border); border-radius: var(--console-radius-control); background: var(--color-sheet); color: var(--color-ink); font-size: 14px; }
.field input::placeholder { color: var(--color-ink-3); }
.field input:focus { border-color: var(--color-brand); box-shadow: var(--console-focus-ring); outline: 0; }
.auth-primary { width: 100%; min-height: var(--console-control-touch-height); border: 1px solid var(--color-brand); border-radius: var(--console-radius-control); background: var(--color-brand); color: var(--color-on-brand-solid); font-weight: 700; transition: background var(--console-motion-duration-fast) var(--console-motion-ease), border-color var(--console-motion-duration-fast) var(--console-motion-ease); }
.auth-primary:hover { background: var(--color-brand-hover); border-color: var(--color-brand-hover); }
.auth-primary:disabled { opacity: .6; cursor: wait; }
.auth-links { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; font-size: 13px; }
.auth-note, .auth-rules { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--color-border); color: var(--color-ink-3); font-size: 12px; line-height: 1.55; }
.auth-rules { margin-top: 0; padding-top: 0; border: 0; }
.auth-error, .auth-success { min-height: 20px; margin: 0 0 14px; font-size: 13px; line-height: 1.45; }
.auth-error { color: var(--color-danger); }
.auth-success { color: var(--color-success); }
.auth-loading { color: var(--color-ink-3); font-size: 13px; }
@media (max-width: 480px) { body { align-items: start; padding-top: 28px; } .auth-card { padding: 24px 20px; } .field input { font-size: 16px; } }
@media (prefers-reduced-motion: reduce) { * { transition-duration: .01ms !important; } }
