/* ============================================================
   auth-layout.css  —  body.fr-auth-page
   Login / signup / verify / forgot-password.
   Minimal masthead, narrow centred container, no footer.
   ============================================================ */

body.fr-auth-page {
  background: var(--fr-color-bg);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.fr-auth-page > main {
  flex: 1 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 8vh, 5rem) var(--fr-container-pad-x);
}

body.fr-auth-page .fr-auth-shell {
  width: 100%;
  max-width: var(--fr-container-narrow);
}

body.fr-auth-page .fr-auth-shell .fr-card {
  border-radius: var(--fr-radius-lg);
  box-shadow: var(--fr-shadow-md);
}

body.fr-auth-page .fr-auth-shell .fr-card__title {
  font-size: var(--fr-text-2xl);
  letter-spacing: -0.02em;
}

body.fr-auth-page .fr-auth-shell .fr-card__subtitle {
  font-size: var(--fr-text-md);
  color: var(--fr-color-ink-muted);
  margin-top: var(--fr-space-1);
}

body.fr-auth-page .fr-auth-shell form {
  margin-top: var(--fr-space-3);
}

body.fr-auth-page .fr-auth-shell .fr-form-field:last-of-type { margin-bottom: var(--fr-space-6); }

body.fr-auth-page .fr-auth-meta {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--fr-space-3);
  margin-top: var(--fr-space-5);
  font-size: var(--fr-text-sm);
}
body.fr-auth-page .fr-auth-meta a { font-weight: var(--fr-weight-medium); }

/* Tiny brand badge above the card — keeps the page from feeling empty */
body.fr-auth-page .fr-auth-eyebrow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--fr-space-2);
  color: var(--fr-color-ink-muted);
  font-size: var(--fr-text-sm);
  margin-bottom: var(--fr-space-5);
  letter-spacing: var(--fr-tracking-wide);
  text-transform: uppercase;
  font-weight: var(--fr-weight-semibold);
}
body.fr-auth-page .fr-auth-eyebrow::before,
body.fr-auth-page .fr-auth-eyebrow::after {
  content: '';
  flex: 1 0 1rem;
  height: 1px;
  background: var(--fr-color-border);
  max-width: 4rem;
}


/* ============================================================
   Auth-layout additions from the auth-pages redesign pass.
   ============================================================ */

/* Lift the shell above the decorative motif. */
body.fr-auth-page > main { position: relative; }
body.fr-auth-page > main > .fr-auth-shell { position: relative; z-index: 1; }

/* The fr-auth-eyebrow class is in this file already; the bold half of
   the eyebrow gets the navy heading colour for sufficient contrast. */
body.fr-auth-page .fr-auth-eyebrow strong {
  color: var(--fr-color-heading);
  font-family: var(--fr-font-sans);
  font-weight: var(--fr-weight-bold);
}

/* Tighter vertical rhythm for the Signup welcome callout inside the
   auth shell — the page-level callout primitive (used elsewhere in
   onboarding) is a touch roomy for this context. */
body.fr-auth-page .fr-auth-shell .fr-callout {
  padding: var(--fr-space-5) var(--fr-space-5);
  margin-bottom: var(--fr-space-5);
}
body.fr-auth-page .fr-auth-shell .fr-callout__title {
  font-size: var(--fr-text-xl);
}
body.fr-auth-page .fr-auth-shell .fr-callout__body {
  font-size: var(--fr-text-base);
}

/* "or" divider between the federated sign-in button (Continue with Google)
   and the email/password form on Login and Signup. */
.fr-auth-divider {
  display: flex;
  align-items: center;
  gap: var(--fr-space-3);
  margin: var(--fr-space-4) 0;
  color: var(--fr-color-ink-muted);
  font-size: var(--fr-text-sm);
  letter-spacing: var(--fr-tracking-wide);
  text-transform: uppercase;
}
.fr-auth-divider::before,
.fr-auth-divider::after {
  content: '';
  flex: 1 1 auto;
  height: 1px;
  background: var(--fr-color-border);
}
.fr-auth-divider > span {
  flex: 0 0 auto;
}
