/* ───────────────────────────────────────────────────────────────────────── */
/*  VirtualLife AI Imagine — Color Tokens (OKLCH)                             */
/*  Dark-first. Light mode overrides live under html.light / .light.         */
/*                                                                           */
/*  Brand triad: Life (green) · Virtual (violet) · Bridge (blue) + warm pink */
/*  Every component references SEMANTIC tokens, never raw brand values.      */
/* ───────────────────────────────────────────────────────────────────────── */

:root {
  /* ══ Brand palette ═══════════════════════════════════════════════════ */
  --vl-life: oklch(0.65 0.2 145);
  --vl-life-soft: oklch(0.8 0.12 145);
  --vl-life-muted: oklch(0.45 0.1 145);
  --vl-virtual: oklch(0.6 0.22 300);
  --vl-virtual-soft: oklch(0.75 0.14 300);
  --vl-virtual-muted: oklch(0.4 0.12 300);
  --vl-bridge: oklch(0.6 0.2 220);
  --vl-bridge-soft: oklch(0.75 0.12 220);
  --vl-accent-warm: oklch(0.7 0.19 340);

  /* The signature gradient — 120° Blue → Pink → Green. Title, generate
     button aura, wavy background. The single most recognizable element.   */
  --gradient-brand: linear-gradient(
    120deg,
    oklch(0.6 0.2 220) 0%,
    oklch(0.7 0.19 340) 50%,
    oklch(0.65 0.2 145) 100%
  ); /* @kind color */

  /* ══ Surface scale (dark) ════════════════════════════════════════════ */
  --surface-0: oklch(0.13 0.04 265); /* canvas / content area              */
  --surface-1: oklch(0.21 0.04 266); /* background / sidebar / chrome       */
  --surface-2: oklch(0.28 0.04 260); /* card base                          */
  --surface-3: oklch(0.34 0.03 261); /* elevated / popovers                */
  --surface-glass: oklch(0.28 0.04 260 / 0.1);       /* light glass         */
  --surface-glass-md: oklch(0.28 0.04 260 / 0.4);    /* medium glass        */
  --surface-glass-heavy: oklch(0.28 0.04 260 / 0.8); /* heavy glass         */

  /* ══ Text ════════════════════════════════════════════════════════════ */
  --text-primary: oklch(0.98 0.003 248);
  --text-secondary: oklch(0.71 0.04 257);
  --text-muted: oklch(0.55 0.05 257);
  --text-inverse: oklch(0.13 0.04 265);

  /* ══ Borders ═════════════════════════════════════════════════════════ */
  --border-default: oklch(1 0 0 / 0.1);
  --border-subtle: oklch(1 0 0 / 0.06);
  --border-strong: oklch(1 0 0 / 0.2);

  /* ══ Semantic tokens (shadcn layer, dark mode) ═══════════════════════ */
  --background: oklch(0.21 0.04 266);
  --foreground: oklch(0.93 0.013 256);
  --card: oklch(0.28 0.04 260);
  --card-foreground: oklch(0.98 0.003 248);
  --popover: oklch(0.28 0.04 260);
  --popover-foreground: oklch(0.98 0.003 248);
  --primary: oklch(0.68 0.158 277);
  --primary-foreground: oklch(0.21 0.04 266);
  --secondary: oklch(0.42 0.105 277);
  --secondary-foreground: oklch(0.98 0.003 248);
  --muted: oklch(0.24 0.038 260);
  --muted-foreground: oklch(0.71 0.019 261);
  --accent: oklch(0.37 0.031 260);
  --accent-foreground: oklch(0.98 0.003 248);
  --destructive: oklch(0.64 0.208 25);
  --destructive-foreground: oklch(0.98 0.003 248);
  --border: oklch(0.45 0.026 257);
  --input: oklch(0.45 0.026 257);
  --ring: oklch(0.68 0.158 277);

  /* ── Sidebar tokens ─────────────────────────────────────────────────── */
  --sidebar: oklch(0.21 0.04 266);
  --sidebar-foreground: oklch(0.71 0.04 257);
  --sidebar-primary: oklch(0.6 0.22 300);
  --sidebar-accent: oklch(0.37 0.031 260);
  --sidebar-accent-foreground: oklch(0.98 0.003 248);
  --sidebar-border: oklch(1 0 0 / 0.1);

  /* ══ Status / feedback ═══════════════════════════════════════════════ */
  --success: oklch(0.723 0.219 150);
  --warning: oklch(0.828 0.189 84);
  --info: oklch(0.6 0.2 220);

  /* ══ Semantic surface aliases ════════════════════════════════════════ */
  --surface-card: var(--surface-glass);
  --surface-canvas: var(--surface-0);
  --surface-chrome: var(--surface-1);
}

/* ═══════════════════════════════════════════════════════════════════════ */
/*  LIGHT MODE                                                              */
/*  Primaries darken, surfaces lighten, surface scale inverts.             */
/* ═══════════════════════════════════════════════════════════════════════ */
html.light,
.light {
  --vl-life: oklch(0.5 0.22 145);
  --vl-life-soft: oklch(0.65 0.15 145);
  --vl-life-muted: oklch(0.45 0.1 145);
  --vl-virtual: oklch(0.48 0.24 300);
  --vl-virtual-soft: oklch(0.6 0.18 300);
  --vl-virtual-muted: oklch(0.4 0.12 300);
  --vl-bridge: oklch(0.48 0.22 220);
  --vl-bridge-soft: oklch(0.6 0.15 220);
  --vl-accent-warm: oklch(0.58 0.22 340);

  --surface-0: oklch(0.97 0.005 265);
  --surface-1: oklch(0.94 0.018 272);
  --surface-2: oklch(0.9 0.01 260);
  --surface-3: oklch(0.86 0.012 261);
  --surface-glass: oklch(1 0 0 / 0.6);
  --surface-glass-md: oklch(1 0 0 / 0.55);
  --surface-glass-heavy: oklch(1 0 0 / 0.8);

  --text-primary: oklch(0.18 0.04 265);
  --text-secondary: oklch(0.4 0.04 257);
  --text-muted: oklch(0.55 0.03 257);
  --text-inverse: oklch(0.98 0.003 248);

  --border-default: oklch(0 0 0 / 0.12);
  --border-subtle: oklch(0 0 0 / 0.07);
  --border-strong: oklch(0 0 0 / 0.22);

  --background: oklch(0.97 0.005 265);
  --foreground: oklch(0.18 0.04 265);
  --card: oklch(0.95 0.005 265);
  --card-foreground: oklch(0.18 0.04 265);
  --popover: oklch(0.95 0.005 265);
  --popover-foreground: oklch(0.18 0.04 265);
  --primary: oklch(0.52 0.2 277);
  --primary-foreground: oklch(0.98 0.003 248);
  --secondary: oklch(0.88 0.05 277);
  --secondary-foreground: oklch(0.18 0.04 265);
  --muted: oklch(0.94 0.008 260);
  --muted-foreground: oklch(0.4 0.04 257);
  --accent: oklch(0.92 0.008 260);
  --accent-foreground: oklch(0.18 0.04 265);
  --destructive: oklch(0.55 0.22 25);
  --border: oklch(0.78 0.015 257);
  --input: oklch(0.78 0.015 257);
  --ring: oklch(0.52 0.2 277);

  --sidebar: oklch(0.94 0.018 272);
  --sidebar-foreground: oklch(0.4 0.04 257);
  --sidebar-primary: oklch(0.48 0.24 300);
  --sidebar-accent: oklch(0.92 0.008 260);
  --sidebar-accent-foreground: oklch(0.18 0.04 265);
  --sidebar-border: oklch(0 0 0 / 0.08);

  --success: oklch(0.45 0.18 150);
  --warning: oklch(0.65 0.18 84);
  --info: oklch(0.48 0.22 220);
}
