/*
 * FitVete dashboard design tokens.
 *
 * Single source of truth for the API dashboard (`dashboard.html`) and the
 * owner admin console (`admin.html`). Values are ported verbatim from the
 * shadcn dashboard starter so both surfaces read as one system:
 *
 *   https://github.com/shadcndashboard/shadcndashboard
 *   MIT License, Copyright (c) 2026 Shadcn Dashboard
 *
 * Do not hardcode colours, radii, or shadows in dashboard markup — reference
 * these variables. See `.claude/skills/fitvete-dashboard/SKILL.md`.
 *
 * These dashboards are light-only. See the note at the foot of this file.
 */

:root {
  /* Surfaces */
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.145 0 0);

  /* Intent
   *
   * `--primary` deviates from upstream deliberately. shadcn's stock light theme
   * uses a near-black primary, which put a dark slab on every CTA and on the
   * active sidebar item. These dashboards are light-only, so primary is the
   * FitVete brand violet instead. Everything else — surfaces, borders, type,
   * radii, charts — still tracks upstream exactly. */
  --primary: #755ff8;
  --primary-foreground: #ffffff;
  --secondary: oklch(0.97 0 0);
  --secondary-foreground: oklch(0.205 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --accent: oklch(0.97 0 0);
  --accent-foreground: oklch(0.205 0 0);
  --destructive: oklch(0.577 0.245 27.325);
  --success: oklch(0.627 0.194 149.214);
  --warning: oklch(0.795 0.184 86.047);
  --error: oklch(0.577 0.245 27.325);

  /* Lines */
  --border: oklch(0.922 0 0);
  --input: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);

  /* Charts — use in order; never invent a sixth series colour. */
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);

  /* Sidebar */
  --sidebar: oklch(0.985 0 0);
  --sidebar-foreground: oklch(0.145 0 0);
  --sidebar-primary: #755ff8;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: oklch(0.97 0 0);
  --sidebar-accent-foreground: oklch(0.205 0 0);
  --sidebar-border: oklch(0.922 0 0);
  --sidebar-ring: oklch(0.708 0 0);

  /* Geometry — upstream radius scale. */
  --radius: 8px;
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --radius-2xl: calc(var(--radius) + 8px);

  /* Elevation */
  --shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  --shadow-md: 0 1px 4px rgba(133, 146, 173, 0.2);
  --shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);

  /* Type — Geist is upstream's face; keep the system stack as fallback. */
  --font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
    Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo,
    Consolas, monospace;
}

/*
 * No `.dark` block, and no `prefers-color-scheme` switch.
 *
 * These dashboards are light-only by design. The markup is not dark-ready
 * either — `admin.html` carries ~150 static `text-slate-900` utilities that
 * would render near-black on a dark card, and `dashboard.html` also loads the
 * light-only `../styles.css`. Do not reintroduce a dark theme by dropping a
 * media query or a `.dark` block in; it needs `dark:` variants across the
 * markup and chart colours re-resolved on the toggle.
 */

