:root {
  --paper: #FFFFFF;
  --ink: #0D0D0D;
  --ink-soft: #5C5C6E; /* darkened from #6E6E80 — now ≥6.5:1 contrast on white (WCAG AA) */
  --line: #E5E5E9;
  --surface: #F7F7F8;
  --grad-a: #6E8CFF;
  --grad-b: #B37FEB;
  --grad-c: #6FD3A5;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-pill: 999px;
  --sans: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

.hidden { display: none !important; }
a { color: inherit; }

/* ===================== Signature gradient mark ===================== */
.signal-mark {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: conic-gradient(from 180deg, var(--grad-a), var(--grad-b), var(--grad-c), var(--grad-a));
  flex: none;
}

/* ===================== Buttons ===================== */
.btn {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  border-radius: var(--radius-pill);
  padding: 12px 24px;
  border: 1.5px solid var(--ink);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 120ms ease;
}
.btn-primary { background: var(--ink); color: var(--paper); }
.btn-primary:hover { background: #2A2A2E; }
.btn-secondary { background: var(--paper); color: var(--ink); }
.btn-secondary:hover { background: var(--surface); }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-block { width: 100%; }
.btn:active:not([disabled]) { transform: scale(0.97); }

/* ===================== Landing page ===================== */
.landing-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px clamp(20px, 5vw, 64px);
  max-width: 1200px;
  margin: 0 auto;
}
.landing-brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 18px; }
.landing-nav-links { display: flex; align-items: center; gap: 28px; }
.landing-nav-links a { font-size: 14px; color: var(--ink-soft); text-decoration: none; transition: color 180ms ease; }
.landing-nav-links a:hover { color: var(--ink); }

.hero {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(40px, 8vw, 100px) clamp(20px, 5vw, 64px) clamp(60px, 8vw, 120px);
  text-align: center;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink-soft);
  background: var(--surface);
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  margin-bottom: 28px;
}
.hero h1 {
  font-size: clamp(38px, 6vw, 68px);
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
}
.hero p {
  font-size: clamp(17px, 2vw, 20px);
  color: var(--ink-soft);
  max-width: 620px;
  margin: 0 auto 36px;
  line-height: 1.5;
}
.hero-ctas { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* Pre-launch hero badge — only visible when PRELAUNCH_MODE=true */
.hero-beta-badge {
  display: block;
  width: fit-content;
  margin: 0 auto 20px;
  padding: 5px 14px;
  background: linear-gradient(135deg, #4F46E5 0%, #7C3AED 100%);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border-radius: var(--radius-pill);
}

/* Pre-launch announcement banner — full-width strip above nav */
.prelaunch-banner {
  background: linear-gradient(90deg, #4F46E5 0%, #7C3AED 100%);
  color: #fff;
  text-align: center;
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}
.prelaunch-banner strong {
  font-weight: 700;
}
.prelaunch-banner-link {
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  margin-left: 14px;
  white-space: nowrap;
}
.prelaunch-banner-link:hover {
  opacity: 0.85;
}

.hero-visual {
  max-width: 900px;
  margin: 64px auto 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface);
}

.landing-section {
  max-width: 1100px;
  margin: 0 auto;
  padding: clamp(50px, 8vw, 100px) clamp(20px, 5vw, 64px);
}
.landing-section-eyebrow {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 12px;
}
.landing-section h2 {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 16px;
  max-width: 16ch;
}
.landing-section > p.section-lede {
  font-size: 17px;
  color: var(--ink-soft);
  max-width: 60ch;
  line-height: 1.55;
  margin: 0 0 48px;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.feature-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 28px;
  background: var(--paper);
}
.feature-card .fc-icon { width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--surface); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.feature-card h3 { font-size: 17px; font-weight: 700; margin: 0 0 8px; }
.feature-card p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; }

.steps-list { display: flex; flex-direction: column; gap: 0; }
.step-row {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 20px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
}
.step-row:last-child { border-bottom: 1px solid var(--line); }
.step-num { font-family: var(--mono); font-size: 14px; color: var(--ink-soft); padding-top: 2px; }
.step-row h3 { font-size: 17px; font-weight: 700; margin: 0 0 6px; }
.step-row p { font-size: 14.5px; color: var(--ink-soft); line-height: 1.55; margin: 0; max-width: 60ch; }

.pricing-grid {
  display: flex;
  gap: 24px;
  justify-content: center;
  flex-wrap: wrap;
  max-width: 780px;
  margin: 0 auto;
}
.pricing-grid .pricing-card {
  flex: 1;
  min-width: 240px;
  max-width: 360px;
  margin: 0;
  position: relative;
}
.pricing-card {
  border: 1.5px solid var(--ink);
  border-radius: var(--radius-md);
  padding: 40px;
  max-width: 420px;
  margin: 0 auto;
  text-align: center;
}
.pricing-card--featured {
  border-color: var(--grad-a);
  box-shadow: 0 0 0 2px var(--grad-a);
}
.pricing-card-badge {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--grad-a);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 3px 12px;
  border-radius: var(--radius-pill);
  white-space: nowrap;
}
.pricing-card-label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-soft);
  margin-bottom: 12px;
}
.pricing-card .price { font-size: 48px; font-weight: 700; letter-spacing: -0.02em; }
.pricing-card .price span { font-size: 16px; font-weight: 500; color: var(--ink-soft); }
.pricing-card ul { list-style: none; padding: 0; margin: 24px 0 32px; text-align: left; display: flex; flex-direction: column; gap: 12px; }
.pricing-card li { font-size: 14.5px; color: var(--ink); display: flex; gap: 10px; }
.pricing-card li::before { content: "✓"; color: var(--ink); font-weight: 700; }
.pricing-note { font-size: 13px; color: var(--ink-soft); margin-top: 16px; }
.auth-success { font-size: 13.5px; color: var(--ink); margin-top: 10px; display: none; }
.auth-success.visible { display: block; }

.landing-footer {
  border-top: 1px solid var(--line);
  padding: 32px clamp(20px, 5vw, 64px);
  text-align: center;
  font-size: 13px;
  color: var(--ink-soft);
}

/* ===================== Auth view ===================== */
.auth-view {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.auth-card {
  width: 100%;
  max-width: 400px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 40px 32px;
}
.auth-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.auth-back { font-size: 13px; color: var(--ink-soft); text-decoration: none; display: inline-block; margin-bottom: 20px; transition: color 180ms ease; }
.auth-back:hover { color: var(--ink); }
.auth-tag { font-size: 14px; color: var(--ink-soft); margin: 0 0 28px; line-height: 1.4; }

.auth-tabs { display: flex; background: var(--surface); border-radius: var(--radius-pill); padding: 4px; margin-bottom: 24px; }
.auth-tab { flex: 1; padding: 9px; border: none; background: transparent; border-radius: var(--radius-pill); font-family: var(--sans); font-size: 13.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer; transition: background-color 180ms ease, color 180ms ease; }
.auth-tab.active { background: var(--paper); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,0.08); }

.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-hint { font-size: 12.5px; color: var(--ink-soft); margin: -8px 0 0; }
.auth-error { font-size: 13px; color: #D64545; margin: 0; min-height: 16px; }

/* ===================== Shared form elements ===================== */
.field { display: flex; flex-direction: column; gap: 6px; }
.field-label { font-size: 13px; font-weight: 600; color: var(--ink); }
.field-optional { font-weight: 400; color: var(--ink-soft); }

input[type="text"], input[type="email"], input[type="password"] {
  font-family: var(--sans);
  font-size: 15px;
  padding: 12px 14px;
  border: 1.5px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--paper);
  color: var(--ink);
  outline: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
input:focus { border-color: var(--ink); }

.scan-button {
  font-family: var(--sans);
  background: var(--ink);
  color: var(--paper);
  border: none;
  border-radius: var(--radius-pill);
  padding: 15px 22px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  width: 100%;
  transition: background-color 180ms ease, transform 120ms ease, opacity 180ms ease;
}
.scan-button:hover { background: #2A2A2E; }
.scan-button:disabled { opacity: 0.4; cursor: not-allowed; }
.scan-button:active:not(:disabled) { transform: scale(0.98); }
.scan-button-label { font-weight: 700; font-size: 15px; }
.scan-button-sub { font-family: var(--mono); font-size: 11px; opacity: 0.7; }

/* ===================== App shell ===================== */
.topbar {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 18px clamp(20px, 4vw, 48px);
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
}
.brand { display: flex; align-items: center; gap: 10px; }
.brand-mark { display: none; }
.brand-name { font-weight: 700; font-size: 17px; }

.view-nav { display: flex; background: var(--surface); border-radius: var(--radius-pill); padding: 4px; margin-right: auto; }
.nav-btn { border: none; background: transparent; padding: 8px 18px; border-radius: var(--radius-pill); font-family: var(--sans); font-size: 13.5px; font-weight: 600; color: var(--ink-soft); cursor: pointer; transition: background-color 180ms ease, color 180ms ease; }
.nav-btn.active { background: var(--paper); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,0.08); }

.account-box { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.account-email { color: var(--ink); font-weight: 500; }
.account-tier { padding: 4px 10px; border-radius: var(--radius-pill); background: var(--surface); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.account-usage { color: var(--ink-soft); }
.logout-btn { border: 1px solid var(--line); background: var(--paper); border-radius: var(--radius-pill); padding: 6px 14px; font-family: var(--sans); font-size: 12.5px; font-weight: 600; cursor: pointer; color: var(--ink-soft); transition: color 180ms ease, border-color 180ms ease; }
.logout-btn:hover { color: var(--ink); border-color: var(--ink); }

/* ===================== Layout ===================== */
.layout { display: grid; grid-template-columns: minmax(320px, 440px) 1fr; min-height: calc(100vh - 130px); }
@media (max-width: 860px) { .layout { grid-template-columns: 1fr; } }
.panel { padding: clamp(28px, 4vw, 48px); }
.setup-panel { border-right: 1px solid var(--line); }
@media (max-width: 860px) { .setup-panel { border-right: none; border-bottom: 1px solid var(--line); } }

.hero-line { font-size: clamp(30px, 3.2vw, 40px); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; margin: 0 0 16px; }
.hero-sub { color: var(--ink-soft); font-size: 15px; line-height: 1.5; max-width: 42ch; margin: 0 0 28px; }

.provider-status { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.provider-chip { font-size: 12.5px; padding: 7px 14px; border-radius: var(--radius-pill); background: var(--surface); font-weight: 500; }
.provider-chip.ready { color: var(--ink); }
.provider-chip.off { color: var(--ink-soft); }
.provider-chip.error { color: #c0392b; background: #fdf0ef; }
.provider-chip.pending { color: var(--ink-soft); font-style: italic; }

.scan-form { display: flex; flex-direction: column; gap: 16px; }

.accuracy-fields { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 14px 16px; }
.accuracy-fields summary { font-size: 13px; font-weight: 600; color: var(--ink-soft); cursor: pointer; }
.accuracy-fields[open] summary { margin-bottom: 14px; }
.accuracy-fields .field { margin-top: 12px; }

/* ===================== Results panel ===================== */
.results-panel { display: flex; flex-direction: column; }
.results-empty { margin: auto; text-align: center; color: var(--ink-soft); max-width: 320px; }
.empty-meter-label { font-size: 32px; color: var(--line); margin-bottom: 12px; font-weight: 700; }
.empty-meter { width: 220px; height: 8px; border-radius: var(--radius-pill); background: var(--surface); margin: 0 auto 20px; }

.results-loading { margin: auto; text-align: center; max-width: 340px; }
.pulse-bar { width: 220px; height: 8px; border-radius: var(--radius-pill); background: var(--surface); margin: 0 auto 20px; overflow: hidden; position: relative; }
.pulse-bar::after {
  content: ""; position: absolute; top: 0; left: -40%; width: 40%; height: 100%;
  border-radius: var(--radius-pill);
  background: linear-gradient(90deg, var(--grad-a), var(--grad-b));
  animation: sweep 1.1s ease-in-out infinite;
}
@keyframes sweep { 0% { left: -40%; } 100% { left: 100%; } }
.loading-note { font-size: 13px; color: var(--ink-soft); margin-top: 10px; }

.results-content { display: flex; flex-direction: column; gap: 32px; }
.score-hero { display: flex; flex-direction: column; gap: 16px; }
.meter-wrap { display: flex; align-items: baseline; gap: 14px; }
.meter-number { font-size: 44px; font-weight: 700; line-height: 1; }
.meter-unit { font-size: 13px; color: var(--ink-soft); }
.meter-track { height: 8px; border-radius: var(--radius-pill); background: var(--surface); overflow: hidden; }
.meter-fill { height: 100%; border-radius: var(--radius-pill); background: linear-gradient(90deg, var(--grad-a), var(--grad-b)); }
.meter-ticks { display: flex; justify-content: space-between; font-size: 11px; color: var(--ink-soft); margin-top: 6px; }

.score-summary p { color: var(--ink-soft); font-size: 14px; line-height: 1.5; margin: 4px 0 0; max-width: 60ch; }

.section-title { font-size: 13px; font-weight: 700; color: var(--ink); margin: 0 0 14px; }

.category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.category-card { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px; }
.category-card .cat-name { font-size: 12.5px; color: var(--ink-soft); margin-bottom: 6px; }
.category-card .cat-score { font-size: 24px; font-weight: 700; }
.category-card .cat-detail { font-size: 11.5px; color: var(--ink-soft); margin-top: 4px; }

.competitor-list { display: flex; flex-direction: column; gap: 8px; }
.competitor-row { display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 12px 16px; font-size: 14px; }
.competitor-row .count { font-weight: 600; }

.prompt-log { display: flex; flex-direction: column; gap: 8px; }
.prompt-row { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px 16px; }
.prompt-row-head { margin-bottom: 8px; }
.prompt-text { font-size: 13.5px; color: var(--ink); font-weight: 500; }
.prompt-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.provider-tag { font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: var(--radius-pill); background: var(--surface); }
.provider-tag.hit  { background: #E4F5EC; color: #1B7A45; }
.provider-tag.miss { background: #FCEAEA; color: #C23636; }
.provider-tag.skip { color: var(--ink-soft); }
.provider-tag.error { background: #FEF3CD; color: #92620A; }
/* Shape prefix — hit/miss/skip/error are now distinguishable beyond color alone */
.provider-tag.hit::before  { content: "✓\00a0"; }
.provider-tag.miss::before { content: "✗\00a0"; }
.provider-tag.skip::before { content: "–\00a0"; }
.provider-tag.error::before { content: "!\00a0"; }

.provider-warning { border: 1.5px solid #F5C842; background: #FFFBEA; border-radius: var(--radius-md); padding: 18px 20px; margin-bottom: 20px; }
.provider-warning-title { font-weight: 700; font-size: 14px; color: #7A500A; margin-bottom: 6px; }
.provider-warning p { margin: 0 0 10px; font-size: 13.5px; color: #5C3D08; line-height: 1.5; }
.provider-warning-list { margin: 0; padding-left: 20px; font-size: 13px; color: #5C3D08; display: flex; flex-direction: column; gap: 4px; }

.limit-box { border: 1.5px solid var(--line); border-radius: var(--radius-md); padding: 20px 22px; font-size: 14px; line-height: 1.5; margin: auto; max-width: 420px; text-align: center; }
.accuracy-issues { border: 1.5px solid #F3C6C6; background: #FCEAEA; border-radius: var(--radius-md); padding: 18px 20px; }
.accuracy-issues h3 { margin: 0 0 8px; font-size: 14px; color: #C23636; }
.accuracy-issue-row { font-size: 13px; margin-bottom: 6px; }

.error-box { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 18px 20px; font-size: 13.5px; margin: auto; max-width: 380px; text-align: center; color: var(--ink-soft); }

/* ===================== History ===================== */
.history-layout { padding: clamp(28px, 4vw, 48px); max-width: 900px; margin: 0 auto; }
.history-empty { text-align: center; color: var(--ink-soft); padding: 60px 20px; font-size: 14px; }
.history-content { display: flex; flex-direction: column; gap: 32px; }
.history-chart { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 24px; }
.history-chart svg { width: 100%; height: auto; }

.history-list { display: flex; flex-direction: column; gap: 8px; }
.history-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border: 1px solid var(--line); border-radius: var(--radius-sm); cursor: pointer; font-size: 14px; transition: background-color 180ms ease; }
.history-row:hover { background: var(--surface); }
.history-row .h-business { font-weight: 600; }
.history-row .h-meta { display: flex; align-items: center; gap: 16px; color: var(--ink-soft); font-size: 12.5px; }
.history-row .h-score { font-weight: 700; }

.back-link { font-size: 13px; font-weight: 600; color: var(--ink-soft); cursor: pointer; background: none; border: none; padding: 0; margin-bottom: 20px; transition: color 180ms ease; }
.back-link:hover { color: var(--ink); }

.footer { text-align: center; font-size: 12px; color: var(--ink-soft); padding: 24px; border-top: 1px solid var(--line); }

/* ===================== View transitions ===================== */
@keyframes viewFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.view-entering {
  animation: viewFadeIn 230ms ease both;
}

/* ===================== Focus visible ===================== */
/* Provide a clear keyboard-nav focus indicator on all interactive elements */
:focus-visible {
  outline: 2.5px solid var(--ink);
  outline-offset: 3px;
}
.btn:focus-visible,
.scan-button:focus-visible,
.nav-btn:focus-visible,
.auth-tab:focus-visible,
.logout-btn:focus-visible,
.back-link:focus-visible,
.auth-back:focus-visible {
  outline: 2.5px solid var(--ink);
  outline-offset: 3px;
  border-radius: var(--radius-pill);
}
input:focus-visible {
  border-color: var(--ink);
  box-shadow: 0 0 0 3px rgba(13,13,13,0.12);
}

/* ===================== Email verification banner ===================== */
.verify-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  background: #fffbeb;
  border-bottom: 1px solid #fde68a;
  color: #92400e;
  font-size: 13px;
  flex-wrap: wrap;
}
.verify-banner-action {
  border: 1px solid #d97706;
  background: transparent;
  color: #92400e;
  border-radius: 6px;
  padding: 6px 10px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.verify-banner-action:hover { background: #fef3c7; }
.verify-banner-action:disabled { opacity: 0.55; cursor: not-allowed; }
.verify-banner-status { font-size: 12px; color: #78350f; }
.verify-banner-icon { font-size: 16px; flex-shrink: 0; }
.verify-banner-text { flex: 1; min-width: 0; }
.verify-banner-devlink {
  font-weight: 600;
  color: #b45309;
  text-decoration: underline;
  white-space: nowrap;
  cursor: pointer;
}
.verify-banner-devlink:hover { color: #78350f; }
.verify-banner-dismiss {
  background: none;
  border: none;
  color: #b45309;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 0 4px;
  flex-shrink: 0;
  margin-left: auto;
}
.verify-banner-dismiss:hover { color: #78350f; }

/* ===================== What's at stake box ===================== */
.stake-box {
  background: #fff8f0;
  border: 1px solid #fcd9a8;
  border-left: 4px solid #f59e0b;
  border-radius: var(--radius);
  padding: 20px 24px;
  margin: 32px 0 40px;
  max-width: 68ch;
  margin-left: auto;
  margin-right: auto;
}
.stake-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #92400e;
  margin: 0 0 8px;
}
.stake-box p:last-child {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink);
  margin: 0;
}

/* ===================== Section CTA ===================== */
.section-cta {
  text-align: center;
  margin-top: 40px;
}

/* ===================== Social proof section ===================== */
.proof-section {
  background: var(--surface);
  text-align: center;
}
.proof-stat {
  font-size: clamp(56px, 8vw, 88px);
  font-weight: 800;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, #6E8CFF 0%, #B37FEB 50%, #6FD3A5 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: 12px;
}
.proof-section h2 {
  margin-top: 0;
}

/* ===================== 3-column pricing grid ===================== */
.pricing-grid--3col {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: start;
}
.pricing-grid--3col .pricing-card {
  max-width: 100%;
}

/* ===================== FAQ ===================== */
.faq-list {
  max-width: 72ch;
  margin: 40px auto 0;
  display: flex;
  flex-direction: column;
}
.faq-item {
  border-bottom: 1px solid var(--line);
}
.faq-item:first-child {
  border-top: 1px solid var(--line);
}
.faq-q {
  font-size: 16px;
  font-weight: 600;
  padding: 18px 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  user-select: none;
  color: var(--ink);
}
.faq-q::-webkit-details-marker { display: none; }
.faq-q::after {
  content: "+";
  font-size: 20px;
  font-weight: 300;
  color: var(--ink-soft);
  flex-shrink: 0;
  transition: transform 0.2s;
}
.faq-item[open] .faq-q::after {
  transform: rotate(45deg);
}
.faq-a {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 0 20px;
  padding-right: 32px;
}

/* ===================== Footer CTA section ===================== */
.footer-cta-section {
  background: var(--ink);
  color: #fff;
  text-align: center;
  padding: 72px 24px;
}
.footer-cta-section h2 {
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #fff;
  margin: 0 0 12px;
}
.footer-cta-section p {
  font-size: 16px;
  color: rgba(255,255,255,0.65);
  margin: 0 0 32px;
}
.btn-lg {
  padding: 16px 36px;
  font-size: 16px;
}
.footer-cta-section .btn-primary {
  background: #fff;
  color: var(--ink);
}
.footer-cta-section .btn-primary:hover {
  background: #f0f0f0;
}

/* ===================== Landing footer links ===================== */
.landing-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-links {
  display: flex;
  gap: 20px;
}
.footer-links a {
  font-size: 13px;
  color: var(--ink-soft);
  text-decoration: none;
}
.footer-links a:hover {
  color: var(--ink);
}

/* ===================== Checkout success banner ===================== */
.checkout-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  background: #f0fdf4;
  border-bottom: 1px solid #bbf7d0;
  color: #166534;
  font-size: 13px;
  font-weight: 500;
  flex-wrap: wrap;
}
.checkout-banner-icon { font-size: 16px; flex-shrink: 0; }

/* ===================== Upgrade CTA (inside limit-box) ===================== */
.upgrade-cta {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.upgrade-cta .btn { font-size: 14px; padding: 10px 18px; }

/* ===================== Reduced motion ===================== */
@media (prefers-reduced-motion: reduce) {
  .view-entering { animation: none; }
  .pulse-bar::after { animation: none; }
  .btn, .scan-button, .nav-btn, .auth-tab, .logout-btn, .auth-back,
  .history-row, .back-link, .landing-nav-links a,
  input[type="text"], input[type="email"], input[type="password"] {
    transition: none !important;
  }
}

/* ===================== Mobile ===================== */
@media (max-width: 480px) {
  /* Hide anchor-only nav links on small screens; keep Log in + Get started */
  .landing-nav-links a:not([id]) { display: none; }

  .pricing-grid { flex-direction: column; align-items: center; }
  .pricing-grid .pricing-card { max-width: 100%; }
  .pricing-card { padding: 28px 20px; }

  /* Ensure 14px minimum for comfortable reading */
  .auth-hint    { font-size: 13px; }
  .feature-card p,
  .step-row p   { font-size: 14px; }
  .prompt-text  { font-size: 13px; }
  .history-empty { font-size: 14px; }
}

/* v0.2 AI Growth Report */
.growth-hero { border:1px solid var(--line); border-radius:var(--radius-md); padding:24px; background:linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.01)); }
.growth-eyebrow { font:700 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.12em; color:var(--grad-a); margin-bottom:14px; }
.growth-title-row { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.growth-title-row h2 { margin:0; font:700 30px/1.05 var(--sans); text-transform:uppercase; }
.growth-title-row p,.muted-copy { color:var(--ink-soft); margin:6px 0 0; font-size:13px; }
.confidence-chip { border:1px solid var(--line); border-radius:999px; padding:7px 10px; font:700 10px/1 var(--mono); text-transform:uppercase; white-space:nowrap; }
.confidence-chip.high { border-color:#4fa46f; }.confidence-chip.low { border-color:#c96d5d; }
.growth-score-grid { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:18px; margin:24px 0 18px; }
.current-score,.target-score { border:1px solid var(--line); border-radius:var(--radius-md); padding:18px; display:grid; gap:4px; }
.current-score span,.target-score span { font:700 11px/1.2 var(--mono); text-transform:uppercase; color:var(--ink-soft); }
.current-score strong,.target-score strong { font-size:52px; line-height:1; }
.current-score small,.target-score small { color:var(--ink-soft); font-size:11px; }
.score-arrow { font-size:28px; color:var(--grad-a); }
.evidence-strip { display:flex; flex-wrap:wrap; gap:8px; }.evidence-strip span { background:var(--surface); border:1px solid var(--line); padding:7px 9px; border-radius:999px; font:600 10px/1 var(--mono); }
.growth-issues { display:grid; gap:10px; }.growth-issue { border:1px solid var(--line); border-left:4px solid var(--line); border-radius:var(--radius-md); padding:14px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; }.growth-issue.critical { border-left-color:#d65d52; }.growth-issue.high { border-left-color:#d99b45; }.growth-issue span:last-child { color:var(--ink-soft); font-size:12px; }
.priority-pill { display:inline-flex; width:max-content; border:1px solid var(--line); border-radius:999px; padding:5px 8px; font:700 9px/1 var(--mono); text-transform:uppercase; }
.performance-list { border:1px solid var(--line); border-radius:var(--radius-md); overflow:hidden; }.performance-row { display:flex; justify-content:space-between; gap:20px; padding:15px 16px; border-bottom:1px solid var(--line); }.performance-row:last-child { border-bottom:0; }.performance-row>div { display:grid; gap:3px; }.performance-row span { color:var(--ink-soft); font-size:11px; }.performance-result { text-align:right; }.performance-result strong { font-size:20px; }.performance-result.strong strong { color:#65ad7e; }.performance-result.weak strong { color:#d66b60; }
.growth-category-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }.growth-category-card { border:1px solid var(--line); border-radius:var(--radius-md); padding:15px; display:grid; gap:7px; }.growth-category-card>span { font-size:12px; color:var(--ink-soft); }.growth-category-card strong { font-size:28px; }.growth-category-card small { color:var(--ink-soft); }
.section-heading-copy p { color:var(--ink-soft); font-size:12px; margin-top:-8px; }.action-list { display:grid; gap:14px; }.action-card { border:1px solid var(--line); border-radius:var(--radius-md); padding:18px; }.action-card.critical { box-shadow:inset 4px 0 #d65d52; }.action-card.high { box-shadow:inset 4px 0 #d99b45; }.action-card-head { display:flex; gap:13px; }.action-number { display:grid; place-items:center; min-width:34px; height:34px; border-radius:50%; background:var(--grad-a); color:#111; font-weight:800; }.action-card h4 { margin:7px 0 2px; font-size:18px; }.action-card-head p { color:var(--ink-soft); margin:0; font-size:11px; }.action-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }.action-grid>div,.exact-action { background:var(--surface); border-radius:var(--radius-md); padding:13px; }.action-grid span,.exact-action span { font:700 9px/1 var(--mono); text-transform:uppercase; color:var(--ink-soft); }.action-grid p,.exact-action p { margin:7px 0 0; font-size:13px; line-height:1.55; }.exact-action { margin-top:12px; border:1px solid var(--grad-a); }.action-card details { margin-top:12px; font-size:12px; color:var(--ink-soft); }
.thirty-day-plan { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.plan-week { border:1px solid var(--line); border-radius:var(--radius-md); padding:14px; }.plan-week>span { font:700 9px/1 var(--mono); color:var(--grad-a); text-transform:uppercase; }.plan-week strong { display:block; margin:8px 0; font-size:13px; }.plan-week ul,.methodology-box ul { padding-left:17px; margin:8px 0 0; }.plan-week li,.methodology-box li { font-size:11px; color:var(--ink-soft); margin:5px 0; line-height:1.4; }
.methodology-box { border:1px dashed var(--line); border-radius:var(--radius-md); padding:16px; }.methodology-box h3 { margin:0 0 8px; font-size:14px; }.methodology-box p { color:var(--ink-soft); font-size:12px; line-height:1.55; }.evidence-details { border-top:1px solid var(--line); padding-top:16px; }.evidence-details summary { cursor:pointer; font-weight:700; }
@media (max-width:760px) { .growth-score-grid { grid-template-columns:1fr; }.score-arrow { transform:rotate(90deg); text-align:center; }.growth-title-row { flex-direction:column; }.growth-issue { grid-template-columns:1fr; }.action-grid { grid-template-columns:1fr; }.thirty-day-plan { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .thirty-day-plan { grid-template-columns:1fr; }.current-score strong,.target-score strong { font-size:42px; } }

/* v0.3 business identity confirmation */
.identity-confirmation { margin-top: 1rem; }
.identity-card { border: 1px solid var(--border, #d9dde3); border-radius: 16px; padding: 1.1rem; background: rgba(255,255,255,.72); }
.identity-heading-row { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.identity-heading-row h3 { margin:.2rem 0 .7rem; }
.identity-confidence { display:inline-flex; align-items:center; border-radius:999px; padding:.3rem .65rem; font-size:.78rem; font-weight:700; text-transform:capitalize; white-space:nowrap; }
.identity-confidence.high { background:#e6f7ed; color:#17683a; }
.identity-confidence.medium { background:#fff4d8; color:#7a5400; }
.identity-confidence.low { background:#fde8e8; color:#8d2525; }
.identity-details { display:grid; gap:.65rem; margin:.9rem 0; }
.identity-details div { display:grid; grid-template-columns:120px 1fr; gap:.75rem; }
.identity-details dt { color:var(--muted, #667085); font-size:.84rem; }
.identity-details dd { margin:0; overflow-wrap:anywhere; }
.identity-actions { display:flex; gap:.65rem; justify-content:flex-end; flex-wrap:wrap; }
.identity-credit-note { font-size:.84rem; color:var(--muted, #667085); }
.identity-warning { padding:.65rem .75rem; background:#fff4d8; border-radius:10px; font-size:.86rem; }
.verified-business-strip,.legacy-scan-note { display:flex; gap:.65rem; align-items:center; flex-wrap:wrap; padding:.7rem .8rem; margin:.8rem 0 1rem; border:1px solid var(--border, #d9dde3); border-radius:12px; font-size:.84rem; }
.legacy-scan-note { color:var(--muted, #667085); }
@media (max-width:640px){ .identity-details div{grid-template-columns:1fr;gap:.15rem}.identity-heading-row{flex-direction:column}.identity-actions .btn{width:100%} }
.scan-live-progress{height:10px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:18px}.scan-live-progress span{display:block;height:100%;background:var(--signal);transition:width .3s ease}.comparison-box{margin-top:28px;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.comparison-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.comparison-summary>div{padding:16px;border:1px solid var(--line);border-radius:12px}.comparison-summary span{display:block;color:var(--ink-soft);font-size:12px}.comparison-summary strong{font-size:28px}.comparison-evidence{display:flex;gap:10px;flex-wrap:wrap}.comparison-evidence span{padding:7px 10px;background:var(--surface);border-radius:999px;font-size:12px}.comparison-row{display:grid;grid-template-columns:1fr auto 48px;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.positive{color:#147d4f}.negative{color:#b42318}@media(max-width:600px){.comparison-summary{grid-template-columns:1fr}.comparison-row{grid-template-columns:1fr auto}}
.action-complete-btn{margin-top:14px;border:1px solid var(--line);background:transparent;border-radius:9px;padding:9px 12px;font-weight:700;cursor:pointer}.action-complete-btn.completed{background:#e9f8f0;border-color:#9bd8b8;color:#147d4f}
.action-buttons{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.generate-fix-btn,.copy-fix-btn{border:0;border-radius:10px;padding:.7rem 1rem;font-weight:700;cursor:pointer;background:#6d5dfc;color:#fff}.generate-fix-btn:disabled{opacity:.6;cursor:wait}.generated-fix-slot{margin-top:1rem}.generated-fix-card{border:1px solid rgba(109,93,252,.25);background:rgba(109,93,252,.06);border-radius:14px;padding:1rem}.generated-fix-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.generated-fix-head span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7}.fix-confidence{white-space:nowrap}.fix-disclaimer{font-size:.85rem;opacity:.75}.generated-fix-card pre{white-space:pre-wrap;word-break:break-word;background:#111827;color:#f9fafb;padding:1rem;border-radius:10px;max-height:420px;overflow:auto}.generated-fix-card ul{font-size:.85rem}.fix-error{margin-top:1rem;padding:.8rem;border-radius:10px;background:#fee2e2;color:#991b1b}


/* v0.7 Website Evidence Engine */
.website-audit-section{margin:28px 0;padding:24px;border:1px solid var(--border,#dfe4ea);border-radius:18px;background:var(--surface,#fff)}
.website-audit-summary{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;margin:18px 0}
.website-audit-summary>div{padding:16px;border:1px solid var(--border,#dfe4ea);border-radius:14px;background:var(--surface-alt,#f8fafc);display:flex;flex-direction:column;gap:4px}
.website-audit-summary span,.website-audit-summary small{font-size:.78rem;color:var(--muted,#64748b)}
.website-audit-summary strong{font-size:1.55rem}
.website-finding-list{display:grid;gap:12px}
.website-finding{padding:16px;border:1px solid var(--border,#dfe4ea);border-left-width:5px;border-radius:12px;background:#fff}
.website-finding.pass{border-left-color:#16a34a}.website-finding.warning{border-left-color:#d97706}.website-finding.fail{border-left-color:#dc2626}
.website-finding-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:10px}
.website-finding-head span{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#64748b)}
.website-finding-head em{font-style:normal;font-size:.72rem;text-transform:uppercase;font-weight:700}
.website-finding p{margin:7px 0;line-height:1.55}.audit-disclaimer{margin-top:14px;font-size:.8rem;color:var(--muted,#64748b)}
@media(max-width:720px){.website-audit-summary{grid-template-columns:1fr 1fr}.website-finding-head{grid-template-columns:1fr}.website-finding-head em{justify-self:start}}


/* ===================== Swipeable pricing carousel ===================== */
.pricing-section { overflow: hidden; }
.pricing-lede { margin-bottom: 36px; }
.pricing-carousel-shell {
  position: relative;
  max-width: 1120px;
  margin: 0 auto;
}
.pricing-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(290px, 360px);
  gap: 20px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scroll-behavior: smooth;
  padding: 16px 48px 24px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.pricing-carousel::-webkit-scrollbar { display: none; }
.pricing-card--carousel {
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  min-height: 570px;
  padding: 36px 30px 30px;
  background: var(--paper, #fff);
  position: relative;
}
.pricing-card--carousel .price { font-size: 42px; }
.pricing-description {
  min-height: 88px;
  margin: 18px 0 0;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.55;
  text-align: left;
}
.pricing-card--carousel ul { flex: 1; margin-bottom: 26px; }
.pricing-card-badge--soft { background: var(--ink); }
.pricing-carousel-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(20, 20, 24, 0.12);
}
.pricing-carousel-arrow:hover { border-color: var(--ink); }
.pricing-carousel-arrow--left { left: 0; }
.pricing-carousel-arrow--right { right: 0; }
.pricing-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 7px;
  margin-top: 8px;
}
.pricing-carousel-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--line);
  transition: width .2s ease, background .2s ease;
}
.pricing-carousel-dot.is-active {
  width: 22px;
  border-radius: 10px;
  background: var(--ink);
}
.pricing-note--center { text-align: center; margin-top: 24px; }
@media (max-width: 760px) {
  .pricing-carousel { grid-auto-columns: minmax(82vw, 330px); padding: 16px 9vw 20px; }
  .pricing-carousel-arrow { display: none; }
  .pricing-card--carousel { min-height: 540px; padding: 32px 24px 26px; }
  .pricing-description { min-height: auto; }
}


/* v0.9 Push 2 — locked preview and report unlock */
.preview-growth-hero { position: relative; overflow: hidden; }
.preview-badge { display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;background:var(--paper);color:var(--ink); }
.preview-score { margin-top:28px;display:grid;justify-items:start;gap:4px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper); }
.preview-score span,.preview-score small { color:var(--ink-soft); }
.preview-score strong { font-size:clamp(56px,12vw,92px);line-height:.95;letter-spacing:-.07em; }
.preview-honesty { margin:16px 0 0;color:var(--ink-soft);max-width:680px; }
.preview-section { margin-top:28px; }
.preview-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.preview-strength,.preview-issue,.preview-evidence,.preview-recommendation { border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--paper); }
.preview-strength span,.preview-issue span,.preview-evidence>span,.preview-recommendation>div:first-child>span,.preview-next-action span { display:block;margin-bottom:8px;color:var(--ink-soft);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.preview-strength strong,.preview-issue strong,.preview-evidence strong,.preview-recommendation strong { display:block;font-size:18px;line-height:1.25; }
.preview-strength small,.preview-issue small { display:block;margin-top:10px;color:var(--ink-soft); }
.preview-evidence,.preview-recommendation { max-width:820px; }
.preview-evidence p,.preview-recommendation p { color:var(--ink-soft);line-height:1.65; }
.preview-next-action { margin-top:16px;padding:16px;border-radius:14px;background:var(--surface); }
.preview-next-action p { margin:0;color:var(--ink); }
.preview-unlock { margin-top:36px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:20px;padding:24px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,var(--paper),var(--surface)); }
.preview-unlock h3 { margin:14px 0 10px;font-size:clamp(25px,4vw,38px);letter-spacing:-.035em; }
.preview-unlock p,.preview-unlock li,.preview-unlock small { color:var(--ink-soft); }
.preview-unlock ul { padding-left:20px;line-height:1.8; }
.preview-price { display:flex;align-items:baseline;gap:12px;margin:20px 0;flex-wrap:wrap; }
.preview-price strong { font-size:34px; }
.preview-price span { color:var(--ink-soft); }
.preview-unlock-btn { width:100%;min-height:54px; }
.preview-unlock-copy>small { display:block;margin-top:12px;line-height:1.5; }
.preview-locked-list { display:grid;gap:10px;align-content:start; }
.preview-locked-card { display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.72); }
.preview-lock-icon { font-size:18px; }
.preview-locked-card strong,.preview-locked-card small { display:block; }
.preview-locked-card small { margin-top:3px;color:var(--ink-soft); }
@media (max-width:760px) { .preview-grid{grid-template-columns:1fr}.preview-unlock{grid-template-columns:1fr;padding:18px}.preview-score{padding:20px} }


/* v0.9.3 contextual scan exhaustion offers */
.scan-exhausted-card { max-width: 720px; margin: 24px auto; padding: 28px; border: 1px solid rgba(255,255,255,.12); border-radius: 22px; background: rgba(12,16,25,.96); box-shadow: 0 18px 55px rgba(0,0,0,.28); }
.scan-exhausted-card h3 { margin: 14px 0 8px; font-size: clamp(1.45rem, 4vw, 2rem); }
.scan-exhausted-card > p { color: var(--muted, #aab2c0); margin-bottom: 18px; }
.scan-exhausted-options { display: grid; gap: 12px; }
.scan-exhausted-options .btn { width: 100%; justify-content: center; text-align: center; }
.scan-exhausted-card small { display: block; margin-top: 16px; color: var(--muted, #8f98a8); line-height: 1.5; }
.best-extra { position: relative; }
@media (max-width: 640px) { .scan-exhausted-card { padding: 22px 16px; margin: 14px 0; border-radius: 18px; } }
