/* Reckon color system.
   Layer 1 — palette (Tailwind v4 oklch ramps, the raw values the source theme references).
   Layer 2 — semantic aliases, redeclared under .dark.
   Reckon is a near-monochrome system: neutrals carry the whole UI, the five
   semantic hues appear only as state signals, never as decoration. */
:root{
  /* palette — neutrals */
  --color-white:#fff;
  --color-black:#000;
  --color-neutral-50:oklch(0.985 0 0);
  --color-neutral-100:oklch(0.97 0 0);
  --color-neutral-200:oklch(0.922 0 0);
  --color-neutral-300:oklch(0.87 0 0);
  --color-neutral-400:oklch(0.708 0 0);
  --color-neutral-500:oklch(0.556 0 0);
  --color-neutral-600:oklch(0.439 0 0);
  --color-neutral-700:oklch(0.371 0 0);
  --color-neutral-800:oklch(0.269 0 0);
  --color-neutral-900:oklch(0.205 0 0);
  --color-neutral-950:oklch(0.145 0 0);
  /* palette — semantic hues */
  --color-red-400:oklch(0.704 0.191 22.216);
  --color-red-500:oklch(0.637 0.237 25.331);
  --color-red-700:oklch(0.505 0.213 27.518);
  --color-blue-400:oklch(0.707 0.165 254.624);
  --color-blue-500:oklch(0.623 0.214 259.815);
  --color-blue-700:oklch(0.488 0.243 264.376);
  --color-emerald-400:oklch(0.765 0.177 163.223);
  --color-emerald-500:oklch(0.696 0.17 162.48);
  --color-emerald-700:oklch(0.508 0.118 165.612);
  --color-amber-400:oklch(0.828 0.189 84.429);
  --color-amber-500:oklch(0.769 0.188 70.08);
  --color-amber-700:oklch(0.555 0.163 48.998);
  --color-orange-600:oklch(0.646 0.222 41.116);
  --color-teal-600:oklch(0.6 0.118 184.704);
  --color-cyan-900:oklch(0.302 0.056 229.695);
  --color-purple-500:oklch(0.627 0.265 303.9);
  --color-rose-500:oklch(0.645 0.246 16.439);

  /* semantic — surfaces */
  --background:var(--color-white);
  --foreground:var(--color-neutral-800);
  --card:var(--color-white);
  --card-foreground:var(--color-neutral-800);
  --popover:var(--color-white);
  --popover-foreground:var(--color-neutral-800);
  --sidebar:var(--color-neutral-50);
  --sidebar-foreground:color-mix(in srgb,var(--color-neutral-800) 64%,var(--sidebar));
  --sidebar-primary:var(--color-neutral-800);
  --sidebar-primary-foreground:var(--color-neutral-50);
  --sidebar-accent:rgb(0 0 0/4%);
  --sidebar-accent-foreground:var(--color-neutral-800);
  --sidebar-border:rgb(0 0 0/6%);
  --sidebar-ring:var(--color-neutral-400);
  --code:var(--color-white);
  --code-foreground:var(--foreground);
  --code-highlight:rgb(0 0 0/4%);

  /* semantic — actions & text */
  --primary:var(--color-neutral-800);
  --primary-foreground:var(--color-neutral-50);
  --secondary:rgb(0 0 0/4%);
  --secondary-foreground:var(--color-neutral-800);
  --muted:rgb(0 0 0/4%);
  --muted-foreground:color-mix(in srgb,var(--color-neutral-500) 90%,var(--color-black));
  --accent:rgb(0 0 0/4%);
  --accent-foreground:var(--color-neutral-800);

  /* semantic — status */
  --destructive:var(--color-red-500);
  --destructive-foreground:var(--color-red-700);
  --info:var(--color-blue-500);
  --info-foreground:var(--color-blue-700);
  --success:var(--color-emerald-500);
  --success-foreground:var(--color-emerald-700);
  --warning:var(--color-amber-500);
  --warning-foreground:var(--color-amber-700);

  /* semantic — lines & focus */
  --border:rgb(0 0 0/8%);
  --input:rgb(0 0 0/10%);
  --ring:var(--color-neutral-400);

  /* data viz */
  --chart-1:var(--color-orange-600);
  --chart-2:var(--color-teal-600);
  --chart-3:var(--color-cyan-900);
  --chart-4:var(--color-amber-400);
  --chart-5:var(--color-amber-500);
  /* component-scoped colour tokens */
  --skeleton-highlight:rgb(255 255 255/64%);
  --switch-thumb-size:1rem;
}
.dark{
  --background:color-mix(in srgb,var(--color-neutral-950) 96%,var(--color-white));
  --foreground:var(--color-neutral-100);
  --card:color-mix(in srgb,var(--background) 98%,var(--color-white));
  --card-foreground:var(--color-neutral-100);
  --popover:color-mix(in srgb,var(--background) 96%,var(--color-white));
  --popover-foreground:var(--color-neutral-100);
  --sidebar:color-mix(in srgb,var(--color-neutral-950) 97%,var(--color-white));
  --sidebar-foreground:color-mix(in srgb,var(--color-neutral-100) 64%,var(--sidebar));
  --sidebar-primary:var(--color-neutral-100);
  --sidebar-primary-foreground:var(--color-neutral-800);
  --sidebar-accent:rgb(255 255 255/4%);
  --sidebar-accent-foreground:var(--color-neutral-100);
  --sidebar-border:rgb(255 255 255/5%);
  --sidebar-ring:var(--color-neutral-400);
  --code:color-mix(in srgb,var(--background) 98%,var(--color-white));
  --code-foreground:var(--foreground);
  --code-highlight:rgb(255 255 255/4%);
  --primary:var(--color-neutral-100);
  --primary-foreground:var(--color-neutral-800);
  --secondary:rgb(255 255 255/4%);
  --secondary-foreground:var(--color-neutral-100);
  --muted:rgb(255 255 255/4%);
  --muted-foreground:color-mix(in srgb,var(--color-neutral-500) 90%,var(--color-white));
  --accent:rgb(255 255 255/4%);
  --accent-foreground:var(--color-neutral-100);
  --destructive:color-mix(in srgb,var(--color-red-500) 90%,var(--color-white));
  --destructive-foreground:var(--color-red-400);
  --info:var(--color-blue-500);
  --info-foreground:var(--color-blue-400);
  --success:var(--color-emerald-500);
  --success-foreground:var(--color-emerald-400);
  --warning:var(--color-amber-500);
  --warning-foreground:var(--color-amber-400);
  --border:rgb(255 255 255/6%);
  --input:rgb(255 255 255/8%);
  --ring:var(--color-neutral-500);
  --chart-1:var(--color-blue-700);
  --chart-2:var(--color-emerald-500);
  --chart-3:var(--color-amber-500);
  --chart-4:var(--color-purple-500);
  --chart-5:var(--color-rose-500);
  --skeleton-highlight:rgb(255 255 255/4%);
}
