:root {
  color-scheme: dark;

  /* Core brand */
  --pt-primary: #9dff2c;
  --pt-secondary: #fb9b36;
  --pt-accent: #22d3ee;

  --pt-primary-rgb: 157, 255, 44;
  --pt-secondary-rgb: 251, 155, 54;
  --pt-accent-rgb: 34, 211, 238;

  /* Background layers */
  --pt-bg-canvas: #050505;
  --pt-bg-base: #0a0a0a;
  --pt-bg-surface: #121212;
  --pt-bg-surface-2: #181818;
  --pt-bg-elevated: #1f1f1f;

  /* Text hierarchy */
  --pt-text-primary: #f7f7f7;
  --pt-text-secondary: rgba(247, 247, 247, 0.84);
  --pt-text-muted: rgba(247, 247, 247, 0.64);
  --pt-text-disabled: rgba(247, 247, 247, 0.44);
  --pt-text-on-accent: #050505;

  /* Borders and dividers */
  --pt-border-subtle: rgba(255, 255, 255, 0.09);
  --pt-border-default: rgba(255, 255, 255, 0.14);
  --pt-border-strong: rgba(255, 255, 255, 0.2);
  --pt-divider: rgba(255, 255, 255, 0.08);

  /* States */
  --pt-success: #22c55e;
  --pt-warning: #f59e0b;
  --pt-error: #ef4444;
  --pt-info: #38bdf8;

  --pt-success-rgb: 34, 197, 94;
  --pt-warning-rgb: 245, 158, 11;
  --pt-error-rgb: 239, 68, 68;
  --pt-info-rgb: 56, 189, 248;

  /* Effects */
  --pt-shadow-sm: 0 10px 26px rgba(0, 0, 0, 0.45);
  --pt-shadow-md: 0 18px 50px rgba(0, 0, 0, 0.55);
  --pt-shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.34);
  --pt-focus-ring: 0 0 0 3px rgba(var(--pt-primary-rgb), 0.2);

  /* Radius */
  --pt-radius-sm: 10px;
  --pt-radius-md: 14px;
  --pt-radius-lg: 18px;
  --pt-radius-xl: 24px;

  /* Fintech semantic aliases */
  --bg-primary: var(--pt-bg-base);
  --bg-secondary: var(--pt-bg-surface-2);
  --bg-card: var(--pt-bg-surface);
  --text-primary: var(--pt-text-primary);
  --text-secondary: var(--pt-text-secondary);
  --text-muted: var(--pt-text-muted);
  --border-color: var(--pt-border-default);
  --hover-color: rgba(var(--pt-primary-rgb), 0.14);
  --active-color: rgba(var(--pt-primary-rgb), 0.24);
  --disabled-color: var(--pt-text-disabled);

  /* Compatibility aliases for existing CSS */
  --bg: var(--pt-bg-base);
  --surface: var(--pt-bg-surface);
  --surface-2: var(--pt-bg-surface-2);
  --card: var(--pt-bg-surface);

  --text: var(--pt-text-primary);
  --muted: var(--pt-text-muted);
  --border: var(--pt-border-default);
  --border-2: var(--pt-border-strong);

  --primary: var(--pt-primary);
  --primary-contrast: var(--pt-text-on-accent);
  --primary-rgb: var(--pt-primary-rgb);

  --success: var(--pt-success);
  --success-contrast: var(--pt-text-on-accent);
  --success-rgb: var(--pt-success-rgb);

  --warning: var(--pt-warning);
  --warning-rgb: var(--pt-warning-rgb);
  --danger: var(--pt-error);
  --danger-rgb: var(--pt-error-rgb);
  --info: var(--pt-info);
  --info-rgb: var(--pt-info-rgb);
}

/* Optional light mode (default remains dark) */
:root[data-theme="light"],
body[data-theme="light"] {
  color-scheme: light;
  --pt-bg-canvas: #f3f6fa;
  --pt-bg-base: #ffffff;
  --pt-bg-surface: #f8fafc;
  --pt-bg-surface-2: #eef2f7;
  --pt-bg-elevated: #e7edf4;

  --pt-text-primary: #0b1220;
  --pt-text-secondary: rgba(11, 18, 32, 0.82);
  --pt-text-muted: rgba(11, 18, 32, 0.62);
  --pt-text-disabled: rgba(11, 18, 32, 0.42);
  --pt-text-on-accent: #061002;

  --pt-border-subtle: rgba(11, 18, 32, 0.08);
  --pt-border-default: rgba(11, 18, 32, 0.14);
  --pt-border-strong: rgba(11, 18, 32, 0.22);
  --pt-divider: rgba(11, 18, 32, 0.09);
}
