/* Minimal functional login/signup — the fallback shown when the polished Next.js
   landing export hasn't been built yet (Phase 15). Deliberately tiny + self-contained. */
:root {
  --afb-bg: #f5f6fc; --afb-card: #fff; --afb-border: #e4e7f2;
  --afb-text: #1c1e2e; --afb-muted: #5b5d76; --afb-primary: #5b4fd6; --afb-danger: #c0341f;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--afb-bg); color: var(--afb-text); }
.afb-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.afb-card {
  width: 100%; max-width: 400px; background: var(--afb-card);
  border: 1px solid var(--afb-border); border-radius: 16px; padding: 2rem;
  box-shadow: 0 10px 40px rgba(28, 30, 46, 0.08); display: flex; flex-direction: column;
}
.afb-mark { width: 40px; height: 40px; border-radius: 50%; margin-bottom: 1rem;
  background: radial-gradient(circle at 35% 30%, #8b7ff0, #5b4fd6 70%); box-shadow: 0 0 22px rgba(91,79,214,0.45); }
.afb-title { margin: 0 0 0.25rem; font-size: 1.5rem; letter-spacing: -0.02em; }
.afb-sub { margin: 0 0 1.25rem; color: var(--afb-muted); }
.afb-error { margin: 0 0 0.75rem; min-height: 1.2rem; color: var(--afb-danger); font-size: 0.9rem; }
.afb-label { font-size: 0.85rem; font-weight: 600; margin: 0.6rem 0 0.3rem; }
.afb-input { font: inherit; padding: 0.7rem 0.85rem; border: 1px solid var(--afb-border); border-radius: 10px; background: #fafbff; }
.afb-input:focus { outline: 2px solid var(--afb-primary); outline-offset: 1px; border-color: var(--afb-primary); }
.afb-remember { display: flex; align-items: center; gap: 0.5rem; margin: 0.9rem 0; font-size: 0.9rem; color: var(--afb-muted); }
.afb-btn { font: inherit; font-weight: 600; cursor: pointer; margin-top: 0.5rem; padding: 0.8rem; border: none; border-radius: 10px;
  background: var(--afb-primary); color: #fff; transition: opacity 0.15s; }
.afb-btn:hover { opacity: 0.92; }
.afb-btn:disabled { opacity: 0.6; cursor: default; }
.afb-switch { margin: 1rem 0 0; text-align: center; font-size: 0.9rem; color: var(--afb-muted); }
.afb-switch a { color: var(--afb-primary); font-weight: 600; text-decoration: none; }
.afb-switch a:hover { text-decoration: underline; }
.afb-switch a:focus-visible, .afb-doc a:focus-visible { outline: 2px solid var(--afb-primary); outline-offset: 2px; border-radius: 4px; }

/* Phase 45.4: long-form documents (Privacy, Terms) — a readable measure + rhythm. */
.afb-doc { max-width: 720px; line-height: 1.6; }
.afb-doc:focus { outline: none; }
.afb-doc h2 { margin: 1.5rem 0 0.4rem; font-size: 1.1rem; letter-spacing: -0.01em; }
.afb-doc p { margin: 0 0 0.8rem; }
.afb-doc ul { margin: 0 0 0.8rem; padding-left: 1.25rem; }
.afb-doc li { margin-bottom: 0.45rem; }
.afb-doc a { color: var(--afb-primary); }
.afb-skip { position: absolute; left: -9999px; top: 0.5rem; padding: 0.5rem 0.9rem; border-radius: 8px;
  background: var(--afb-primary); color: #fff; font-weight: 600; text-decoration: none; z-index: 10; }
.afb-skip:focus { left: 0.5rem; }

/* Phase 32.4: honour reduced-motion — this fallback stylesheet is standalone. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
