:root {
  /* Brand Colors */
  --color-primary: #3b82f6; /* Blue 500 */
  --color-primary-hover: #2563eb; /* Blue 600 */
  --color-primary-active: #1d4ed8; /* Blue 700 */
  --color-secondary: #64748b; /* Slate 500 */

  /* Semantic Colors */
  --color-success: #10b981; /* Emerald 500 */
  --color-warning: #f59e0b; /* Amber 500 */
  --color-danger: #ef4444; /* Red 500 */
  --color-info: #3b82f6; /* Blue 500 */

  /* Background Colors */
  --bg-app: #f8fafc; /* Slate 50 */
  --bg-surface: #ffffff;
  --bg-surface-hover: #f1f5f9; /* Slate 100 */
  --bg-panel: #ffffff;
  --bg-node: #ffffff;
  --bg-node-goal: #eff6ff; /* Blue 50 */
  --bg-node-message: #f8fafc; /* Slate 50 */

  /* Text Colors */
  --text-primary: #0f172a; /* Slate 900 */
  --text-secondary: #475569; /* Slate 600 */
  --text-tertiary: #94a3b8; /* Slate 400 */
  --text-inverse: #ffffff;

  /* Border Colors */
  --border-light: #e2e8f0; /* Slate 200 */
  --border-medium: #cbd5e1; /* Slate 300 */
  --border-focus: #3b82f6; /* Blue 500 */

  /* Spacing */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);

  /* Transitions */
  --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);

  /* Layout */
  --topbar-height: 64px;
  --panel-width: 400px;
}
