:root {
  /* Background layers */
  --bg-deep: #0a0a10;
  --bg-primary: #0d0d14;
  --bg-secondary: #14141f;
  --bg-tertiary: #1a1a28;
  --bg-elevated: #202030;
  --bg-hover: #252535;

  /* Text hierarchy */
  --text-primary: #e8e8f0;
  --text-secondary: #9090a8;
  --text-muted: #8a8ab0;   /* was #606078 — bumped (twice) for legibility on dark cards */
  --text-dim: #7474a0;     /* was #404050 — same reason */

  /* Accent colors */
  --accent-primary: #667eea;
  --accent-secondary: #764ba2;
  --accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  --accent-glow: rgba(102, 126, 234, 0.15);
  --accent-glow-strong: rgba(102, 126, 234, 0.3);

  /* Status colors */
  --success: #4ade80;
  --success-dim: rgba(74, 222, 128, 0.15);
  --warning: #fbbf24;
  --warning-dim: rgba(251, 191, 36, 0.15);
  --error: #f87171;
  --error-dim: rgba(248, 113, 113, 0.15);
  --info: #60a5fa;
  --info-dim: rgba(96, 165, 250, 0.15);

  /* Highlight-theme helper palette (kept for compatibility with the
     dashboard's highlight-theme.css that we port verbatim). */
  --memory-fact: #818cf8;
  --memory-preference: #a78bfa;
  --memory-note: #67e8f9;

  /* Bucket / agent-family palette — per-runtime hues used by the agent-tag
     pill on each card. Mirrors the old nats-agent-dashboard's AgentBadge
     scheme so the visual language stays consistent. Aliases of the memory
     palette where a hue already existed; one new red for openclaw. */
  --bucket-pi: var(--memory-fact);          /* indigo */
  --bucket-cc: var(--memory-note);          /* cyan */
  --bucket-headless: var(--memory-preference); /* violet — controllers */
  --bucket-openclaw: #ef4444;               /* red */
  --bucket-hermes: #f59e0b;                 /* amber / orange */
  --bucket-open-agent: #34d399;             /* emerald — open-agent bridge */
  --bucket-other: var(--text-muted);        /* muted gray */
  --bucket-virtual: #e879f9;                /* fuchsia — UI-only virtual sessions
                                                that fan out to N real agents */

  /* Typography */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI',
               system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.8125rem;
  --text-base: 0.9375rem;
  --text-lg: 1.0625rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;

  --leading-tight: 1.3;
  --leading-normal: 1.5;
  --leading-relaxed: 1.7;

  /* Spacing */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 0.75rem;
  --space-lg: 1rem;
  --space-xl: 1.5rem;
  --space-2xl: 2rem;

  /* Layout */
  --sidebar-width: 320px;
  --topbar-height: 48px;
  --panel-gap: 12px;
  --border-radius: 8px;
  --border-radius-sm: 4px;
  --border-radius-lg: 12px;

  /* Borders */
  --border-subtle: 1px solid rgba(255, 255, 255, 0.06);
  --border-light: 1px solid rgba(255, 255, 255, 0.1);
  --border-accent: 1px solid var(--accent-primary);

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
  --shadow-glow: 0 0 20px var(--accent-glow);

  /* Transitions */
  --transition-fast: 100ms ease;
  --transition-normal: 150ms ease;
  --transition-slow: 250ms ease;

  /* Z-index */
  --z-base: 0;
  --z-elevated: 10;
  --z-dropdown: 100;
  --z-modal: 1000;
  --z-toast: 2000;
}
