:root {
  --color-text-primary: #111;
  --color-text-secondary: #464646;
  --color-surface-primary: #fff;
  --color-surface-muted: #fafaf9;
  --color-surface-lime-soft: #f8fbf1;
  --color-surface-lime-soft-strong: #eff8df;
  --color-border-subtle: rgba(0, 0, 0, 0.08);
  --color-brand-accent: #cef79e;
  --color-brand-accent-hover: #a7e26e;
  --color-focus-ring: rgba(0, 0, 0, 0.06);
  --color-danger: #b42318;
  --color-danger-ring: rgba(180, 35, 24, 0.08);
  --shadow-soft: 0 8px 20px rgba(0, 0, 0, 0.14);
  --shadow-card-hover: 0 12px 32px rgba(0, 0, 0, 0.1);
  --radius-sm: 0.6rem;
  --radius-md: 1rem;
  --radius-lg: 1.6rem;
  --radius-pill: 999px;
  --space-1: 0.4rem;
  --space-2: 0.8rem;
  --space-3: 1.2rem;
  --space-4: 1.6rem;
  --space-5: 2.4rem;
  --space-6: 3.2rem;
  --space-7: 4.8rem;
  --space-8: 6.4rem;
  --font-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-size-body: 1.35rem;
  --font-size-lead: 1.5rem;
  --font-size-small: 1.2rem;
  --line-height-body: 1.58;
  --transition-fast: 0.15s ease;
  --transition-base: 0.2s ease;
  --transition-slow: 0.3s ease;
  --z-header: 1000;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  color: var(--color-text-primary);
  background: var(--color-surface-primary);
  font-family: var(--font-sans);
}

p {
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}

.container {
  width: min(128rem, 100% - 4.8rem);
  margin-inline: auto;
}

.surface-muted {
  background-color: var(--color-surface-muted);
}

.card {
  border: none;
  border-radius: var(--radius-md);
  background: var(--color-surface-primary);
}

.btn-primary {
  background: var(--color-brand-accent);
  border: none;
  color: #222f30;
  border-radius: var(--radius-pill);
  transition: background var(--transition-base);
}

.btn-primary:hover {
  background: var(--color-brand-accent-hover);
}

.focus-ring:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--color-focus-ring);
}

.field-error {
  color: var(--color-danger);
}
