:root {
  /* ── Brand Colors (overridden per-tenant in layout) ── */
  --primary: #0f172a;
  --primary-dark: #020617;
  --primary-light: #f1f5f9;
  --secondary: #4f46e5;
  --secondary-dark: #4338ca;
  --secondary-light: #eef2ff;

  /* ── Neutral Palette ── */
  --text-dark: #0f172a;
  --text-medium: #475569;
  --text-light: #94a3b8;
  --text-muted: #94a3b8;
  --bg-white: #ffffff;
  --bg-gray: #f8fafc;
  --bg-gray-light: #f1f5f9;
  --border-gray: #e2e8f0;
  --border-dark: #e2e8f0;
  --border-subtle: #f1f5f9;

  /* ── Semantic Colors ── */
  --success: #16a34a;
  --success-light: #f0fdf4;
  --warning: #d97706;
  --warning-light: #fffbeb;
  --danger: #dc2626;
  --danger-light: #fef2f2;
  --info: #2563eb;
  --info-light: #eff6ff;

  /* ── Shadow Scale ── */
  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
  --shadow-ring: 0 0 0 3px rgba(79, 70, 229, 0.12);

  /* ── Border Radius ── */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius: 8px;
  --radius-lg: 10px;
  --radius-xl: 12px;
  --radius-2xl: 16px;
  --radius-full: 9999px;

  /* ── Transitions ── */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --transition-fast: 120ms var(--ease-in-out);
  --transition: 150ms var(--ease-in-out);
  --transition-slow: 250ms var(--ease-out);

  /* Legacy aliases */
  --border-radius-xs: var(--radius-xs);
  --border-radius-sm: var(--radius-sm);
  --border-radius: var(--radius);
  --border-radius-lg: var(--radius-lg);
  --border-radius-xl: var(--radius-xl);
  --transition-normal: all 150ms var(--ease-in-out);
}

.primary { color: var(--primary); }
.secondary { color: var(--secondary); }
