:root {
  --color-background: #f6f7f4;
  --color-surface: #ffffff;
  --color-primary: #287a4b;
  --color-primary-dark: #185b35;
  --color-text: #1d2922;
  --color-muted: #66736b;
  --color-border: #dce3de;
  --color-success: #237a44;
  --color-warning: #9a6700;
  --color-danger: #b42318;
  --shadow: 0 4px 18px rgb(29 41 34 / 10%);
  --radius: 14px;
  font-family: Prompt, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--color-text);
  background: var(--color-background);
  font-synthesis: none;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; line-height: 1.6; background: var(--color-background); }
img, svg { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
a { color: inherit; }

:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }

@supports (color: color-mix(in srgb, black, white)) {
  :focus-visible { outline-color: color-mix(in srgb, var(--color-primary) 45%, transparent); }
}

@media (min-width: 48rem) {
  :root { font-size: 1.0625rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
