:root {
  --pd-surface-bg: #f8fafc;
  --pd-surface-raised: #ffffff;
  --pd-surface-subtle: #f8fafc;
  --pd-surface-muted: #f1f5f9;
  --pd-surface-inverse: #0f172a;

  --pd-text-primary: #0f172a;
  --pd-text-secondary: #475569;
  --pd-text-muted: #64748b;
  --pd-text-inverse: #ffffff;

  --pd-border-subtle: #eef2f7;
  --pd-border-default: #dbe3ee;
  --pd-border-strong: #bac7d8;
  --pd-border-focus: #0b63f6;

  --pd-accent-50: #eff6ff;
  --pd-accent-100: #dbeafe;
  --pd-accent-200: #bfdbfe;
  --pd-accent-300: #93c5fd;
  --pd-accent-400: #60a5fa;
  --pd-accent-500: #3b82f6;
  --pd-accent-600: #0b63f6;
  --pd-accent-700: #0956d8;
  --pd-accent-800: #0849ba;
  --pd-accent-900: #07388d;

  --pd-accent-primary: var(--pd-accent-600);
  --pd-accent-hover: var(--pd-accent-700);
  --pd-accent-pressed: var(--pd-accent-800);
  --pd-accent-soft: var(--pd-accent-50);
  --pd-accent-subtle: var(--pd-accent-100);
  --pd-accent-contrast: #ffffff;

  --pd-success: #16a34a;
  --pd-warning: #ca8a04;
  --pd-danger: #dc2626;
  --pd-info: var(--pd-accent-600);

  --pd-radius-xs: 6px;
  --pd-radius-sm: 8px;
  --pd-radius-md: 10px;
  --pd-radius-lg: 14px;
  --pd-radius-xl: 18px;
  --pd-radius-2xl: 24px;

  --pd-shadow-xs: 0 1px 2px rgb(15 23 42 / 0.04);
  --pd-shadow-sm: 0 3px 10px rgb(15 23 42 / 0.06);
  --pd-shadow-md: 0 10px 28px rgb(15 23 42 / 0.08);
  --pd-shadow-lg: 0 22px 60px rgb(15 23 42 / 0.12);

  --pd-space-1: 4px;
  --pd-space-2: 8px;
  --pd-space-3: 12px;
  --pd-space-4: 16px;
  --pd-space-5: 20px;
  --pd-space-6: 24px;
  --pd-space-8: 32px;
  --pd-space-10: 40px;
  --pd-space-12: 48px;
  --pd-space-16: 64px;

  --pd-header-height: 64px;
  --pd-footer-height: 42px;
  --pd-content-max: 1680px;
  --pd-control-height: 38px;

  --pd-ease-out: cubic-bezier(.2, .8, .2, 1);
  --pd-duration-fast: 120ms;
  --pd-duration-normal: 180ms;
}

/*
  Bridge the legacy PromptDock variables into the new semantic system.
  JS writes active project colors into the --pd-* tokens.
*/
.pd-vnext {
  --bg: var(--pd-surface-bg);
  --surface: var(--pd-surface-raised);
  --surface-muted: var(--pd-surface-muted);
  --surface-hover: var(--pd-surface-subtle);
  --ink: var(--pd-text-primary);
  --muted: var(--pd-text-muted);
  --line: var(--pd-border-default);
  --line-strong: var(--pd-border-strong);
  --accent: var(--pd-accent-primary);
  --accent-hover: var(--pd-accent-hover);
  --accent-soft: var(--pd-accent-soft);
  --success: var(--pd-success);
  --danger: var(--pd-danger);
}

.pd-vnext body {
  background: var(--pd-surface-bg);
  color: var(--pd-text-primary);
}

@media (prefers-reduced-motion: reduce) {
  .pd-vnext *,
  .pd-vnext *::before,
  .pd-vnext *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}