:root {
  color-scheme: light dark;

  /* Typography */
  --font-sans: "Inter", "SF Pro Text", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-size-base: 1rem;
  --line-height-base: 1.6;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;

  /* Palette */
  --color-background: #f3f5f9;
  --color-surface: #ffffff;
  --color-surface-subtle: #f8fafc;
  --color-border: rgba(148, 163, 184, 0.18);
  --color-border-strong: rgba(100, 116, 139, 0.32);
  --color-text: #0f172a;
  --color-text-muted: #64748b;
  --color-heading: #0b1a38;
  --color-primary: #2563eb;
  --color-primary-hover: #1d4ed8;
  --color-primary-soft: rgba(37, 99, 235, 0.12);
  --color-danger: #dc2626;
  --color-danger-hover: #b91c1c;
  --color-danger-soft: rgba(220, 38, 38, 0.12);
  --color-success: #16a34a;
  --color-success-hover: #15803d;
  --color-success-soft: rgba(22, 163, 74, 0.12);
  --color-neutral-soft: rgba(15, 23, 42, 0.06);
  --color-overlay: rgba(15, 23, 42, 0.08);
  --chart-aggregate-total-current-line: #009688;
  --chart-aggregate-total-current-fill: rgba(0, 150, 136, 0.25);
  --chart-aggregate-total-previous-line: rgba(15, 23, 42, 0.55);
  --chart-aggregate-total-previous-fill: rgba(15, 23, 42, 0.12);
  --chart-projection-linear: #0ea5e9;
  --chart-projection-quadratic: #8b5cf6;
  --chart-projection-exponential: #f97316;
  --chart-system-pressure-line: #ef4444;
  --chart-system-motivation-line: #2563eb;
  --chart-system-motivation-ema-line: #10b981;
  --treemap-trend-up-bg: rgba(16, 185, 129, 0.9);
  --treemap-trend-up-fg: #ecfdf5;
  --treemap-trend-down-bg: rgba(239, 68, 68, 0.92);
  --treemap-trend-down-fg: #fff1f2;
  --treemap-trend-flat-bg: rgba(148, 163, 184, 0.85);
  --treemap-trend-flat-fg: #f8fafc;

  /* Shadows & radius */
  --shadow-lg: 0 24px 48px rgba(15, 23, 42, 0.1);
  --shadow-md: 0 12px 32px rgba(15, 23, 42, 0.08);
  --shadow-sm: 0 6px 16px rgba(15, 23, 42, 0.06);
  --radius-xxl: 48px;
  --radius-xl: 36px;
  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-sm: 8px;
  --radius-full: 999px;
  --radius-pill: 999px;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 28px;
  --space-8: 32px;
  --space-9: 36px;
  --space-10: 40px;

  /*Border widths */
  --border-width-thin: 1px;
  --border-width-base: 2px;
  --border-width-thick: 4px;
  --border-strong: 1.5px;
  --border-radius: 12px;

  /* Transitions */
  --transition-base: 160ms ease;
  --transition-fast: 120ms ease;

  /* Status badge palette */
  --status-new-bg: #dbeafe;
  --status-new-fg: #1d4ed8;
  --status-updated-bg: #fef3c7;
  --status-updated-fg: #b45309;
  --status-completed-bg: #dcfce7;
  --status-completed-fg: #166534;
  --status-rejected-bg: #fee2e2;
  --status-rejected-fg: #b91c1c;
  --status-canceled-bg: #ede9fe;
  --status-canceled-fg: #6b21a8;
  --status-announcement-bg: #f1f5f9;
  --status-announcement-fg: #0f172a;
  --status-pending-bg: #e0f2fe;
  --status-pending-fg: #0369a1;
  --status-badge-min-width: 112px;
  --status-badge-height: 32px;
  --status-dot-size: 0.5rem;
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-background: #0f172a;
    --color-surface: #1e293b;
    --color-surface-subtle: #152238;
    --color-border: rgba(148, 163, 184, 0.28);
    --color-border-strong: rgba(148, 163, 184, 0.4);
    --color-text: #e2e8f0;
    --color-text-muted: #94a3b8;
    --color-heading: #f8fafc;
    --color-primary-soft: rgba(37, 99, 235, 0.22);
    --color-danger-soft: rgba(220, 38, 38, 0.2);
    --color-success-soft: rgba(22, 163, 74, 0.24);
    --color-success: #4ade80;
    --color-success-hover: #22c55e;
    --color-neutral-soft: rgba(148, 163, 184, 0.14);
    --color-overlay: rgba(15, 23, 42, 0.3);
    --chart-aggregate-total-current-line: #2dd4bf;
    --chart-aggregate-total-current-fill: rgba(45, 212, 191, 0.25);
    --chart-aggregate-total-previous-line: rgba(248, 250, 252, 0.95);
    --chart-aggregate-total-previous-fill: rgba(248, 250, 252, 0.3);
    --chart-projection-linear: #38bdf8;
    --chart-projection-quadratic: #c4b5fd;
    --chart-projection-exponential: #fdba74;
    --chart-system-pressure-line: #f87171;
    --chart-system-motivation-line: #60a5fa;
    --chart-system-motivation-ema-line: #34d399;
    --treemap-trend-up-bg: rgba(34, 197, 94, 0.9);
    --treemap-trend-up-fg: #0f172a;
    --treemap-trend-down-bg: rgba(248, 113, 113, 0.9);
    --treemap-trend-down-fg: #0f172a;
    --treemap-trend-flat-bg: rgba(148, 163, 184, 0.75);
    --treemap-trend-flat-fg: #0f172a;
    --shadow-lg: 0 28px 56px rgba(2, 6, 23, 0.55);
    --shadow-md: 0 16px 40px rgba(2, 6, 23, 0.45);
    --shadow-sm: 0 8px 18px rgba(2, 6, 23, 0.4);

    --status-new-bg: rgba(59, 130, 246, 0.2);
    --status-new-fg: #bfdbfe;
    --status-updated-bg: rgba(251, 191, 36, 0.24);
    --status-updated-fg: #fcd34d;
    --status-completed-bg: rgba(34, 197, 94, 0.2);
    --status-completed-fg: #86efac;
    --status-rejected-bg: rgba(248, 113, 113, 0.24);
    --status-rejected-fg: #fca5a5;
    --status-canceled-bg: rgba(167, 139, 250, 0.24);
    --status-canceled-fg: #ddd6fe;
    --status-announcement-bg: rgba(148, 163, 184, 0.24);
    --status-announcement-fg: #cbd5f5;
    --status-pending-bg: rgba(56, 189, 248, 0.24);
    --status-pending-fg: #bae6fd;
  }
}
