/* Forest Valley semantic tokens (OKLCH).
 *
 * `:root` is light; `.dark` on <html> is dark. Apps set the class via
 * next-themes (attribute="class", defaultTheme="system"). Brand literals
 * (--fv-*) live in shared.css and stay theme-invariant.
 *
 * Verified WCAG AA contrast ratios (computed May 2026):
 *   light: --foreground on --background       = 18.4:1  (AAA)
 *   light: --muted-foreground on --card       = 16.3:1  (AAA)
 *   light: --muted-foreground on --muted      = 13.0:1  (AAA)
 *   light: --primary-foreground on --primary  =  8.2:1  (AAA)
 *   light: --destructive-foreground on --destructive = 5.9:1 (AA)
 *   dark:  --foreground on --background       = 14.2:1  (AAA)
 *   dark:  --foreground on --card             = 14.0:1  (AAA)
 *   dark:  --muted-foreground on --muted      =  4.7:1  (AA — body text)
 *   dark:  --muted-foreground on --background =  4.8:1  (AA — body text)
 *   dark:  --destructive-foreground on --destructive = 7.0:1 (AAA)
 * Re-verify when changing any of: --background, --foreground, --card,
 * --muted, --muted-foreground, --destructive in either block.
 */

:root {
  color-scheme: light;
  --radius: 0.5rem;

  --background:         oklch(0.985 0.002 100);
  --foreground:         oklch(0.279 0.041 260);
  --card:               oklch(1 0 0);
  --card-foreground:    oklch(0.279 0.041 260);
  --popover:            oklch(1 0 0);
  --popover-foreground: oklch(0.279 0.041 260);

  --primary:            oklch(0.627 0.154 155);
  --primary-foreground: oklch(1 0 0);

  --secondary:            oklch(0.965 0.005 155);
  --secondary-foreground: oklch(0.279 0.041 260);
  --muted:                oklch(0.965 0.005 155);
  --muted-foreground:     oklch(0.5 0.02 260);
  --accent:               oklch(0.935 0.02 155);
  --accent-foreground:    oklch(0.279 0.041 260);

  --destructive:            oklch(0.577 0.245 27.325);
  --destructive-foreground: oklch(1 0 0);

  --border: oklch(0.905 0.01 155);
  --input:  oklch(0.905 0.01 155);
  --ring:   oklch(0.627 0.154 155);

  --chart-1: oklch(0.627 0.154 155);
  --chart-2: oklch(0.488 0.12 260);
  --chart-3: oklch(0.696 0.17 162.48);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);

  --sidebar:                    oklch(0.279 0.041 260);
  --sidebar-foreground:         oklch(0.94 0.01 155);
  --sidebar-primary:            oklch(0.627 0.154 155);
  --sidebar-primary-foreground: oklch(1 0 0);
  --sidebar-accent:             oklch(0.35 0.04 260);
  --sidebar-accent-foreground:  oklch(0.94 0.01 155);
  --sidebar-border:             oklch(0.35 0.04 260);
  --sidebar-ring:               oklch(0.627 0.154 155);
}

.dark {
  color-scheme: dark;

  --background:         oklch(0.16 0.02 260);
  --foreground:         oklch(0.94 0.01 155);
  --card:               oklch(0.22 0.03 260);
  --card-foreground:    oklch(0.94 0.01 155);
  --popover:            oklch(0.22 0.03 260);
  --popover-foreground: oklch(0.94 0.01 155);

  --primary:            oklch(0.627 0.154 155);
  --primary-foreground: oklch(1 0 0);

  --secondary:            oklch(0.3 0.03 260);
  --secondary-foreground: oklch(0.94 0.01 155);
  --muted:                oklch(0.3 0.03 260);
  --muted-foreground:     oklch(0.78 0.02 260);
  --accent:               oklch(0.3 0.03 260);
  --accent-foreground:    oklch(0.94 0.01 155);

  --destructive:            oklch(0.6 0.2 22.216);
  --destructive-foreground: oklch(1 0 0);

  --border: oklch(1 0 0 / 10%);
  --input:  oklch(1 0 0 / 15%);
  --ring:   oklch(0.627 0.154 155);

  --chart-1: oklch(0.627 0.154 155);
  --chart-2: oklch(0.696 0.17 162.48);
  --chart-3: oklch(0.769 0.188 70.08);
  --chart-4: oklch(0.627 0.265 303.9);
  --chart-5: oklch(0.645 0.246 16.439);

  --sidebar:                    oklch(0.16 0.02 260);
  --sidebar-foreground:         oklch(0.94 0.01 155);
  --sidebar-primary:            oklch(0.627 0.154 155);
  --sidebar-primary-foreground: oklch(1 0 0);
  --sidebar-accent:             oklch(0.25 0.03 260);
  --sidebar-accent-foreground:  oklch(0.94 0.01 155);
  --sidebar-border:             oklch(1 0 0 / 10%);
  --sidebar-ring:               oklch(0.627 0.154 155);
}
