/*
 * Login page.
 *
 * No app shell (no header, no status bar) — this is the one public,
 * unauthed page. A single centered card on the canvas, sized for
 * comfortable desktop reading without being lost on a monitor.
 *
 * Uses shared primitives from base.css: .pb-card, .pb-btn, .pb-input,
 * .pb-form, .pb-field, .pb-label, .pb-alert-error. Everything below
 * is purely page-layout chrome.
 */

.pb-login-viewport {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-6);
}

.pb-login-card {
  width: 100%;
  max-width: 24rem; /* 384px — wide enough for labels, narrow enough to feel composed */
  padding: var(--sp-8);
}

.pb-login-brand {
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  color: var(--text-primary);
  margin: 0;
}

.pb-login-tagline {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin: var(--sp-1) 0 var(--sp-6);
}

/* Login-specific size overrides — larger inputs and full-width submit
 * button so the form feels substantial on an otherwise empty canvas. */
.pb-login-form .pb-input {
  padding: var(--sp-3);
  font-size: var(--fs-base);
}

.pb-login-form .pb-btn-primary {
  width: 100%;
  justify-content: center;
  padding: var(--sp-3) var(--sp-4);
  font-size: var(--fs-base);
  margin-top: var(--sp-2);
}
