:root {
  --ef-brand-primary: #02a351;
  --ef-brand-primary-strong: #017a3d;
  --ef-brand-primary-soft: #e5f6ec;
  --ef-brand-secondary: #3563d3;
  --ef-brand-secondary-strong: #2448a8;
  --ef-brand-secondary-soft: #eef2ff;
  --ef-text: #1f2a22;
  --ef-text-muted: #5f6f66;
  --ef-text-subtle: #7d8a82;
  --ef-border: #dde3df;
  --ef-background: #f4f8f5;
  --ef-surface: #f4f6f4;
  --ef-surface-raised: #ffffff;
  --ef-danger: #b6452d;
  --ef-danger-soft: #faedec;
  --ef-warning: #94621f;
  --ef-warning-soft: #fbf1e6;
  --ef-info: #2c6ea3;
  --ef-info-soft: #eaf4fb;
  --ef-focus-ring: rgba(2, 163, 81, 0.22);
  --ef-radius-control: 12px;
  --ef-radius-card: 14px;
  --ef-radius-tile: 18px;
  --ef-radius-sheet: 24px;
  --ef-shadow-card: 0 1px 2px rgba(15, 27, 20, 0.06);
  --ef-shadow-overlay: 0 16px 40px rgba(15, 27, 20, 0.18);
  --ef-duration-fast: 150ms;
  --ef-duration-normal: 220ms;
}

:focus-visible {
  outline: 2px solid var(--ef-brand-primary-strong);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--ef-focus-ring);
}

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