:root {
  --nv-lime-50: #F7FFE8;
  --nv-lime-100: #ECFFC9;
  --nv-lime-200: #D9FF99;
  --nv-lime-300: #C7FB6C;
  --nv-lime-400: #B9F85A;
  --nv-lime-500: #B2F64A;
  --nv-lime-600: #9BDA3C;
  --nv-lime-700: #84B43A;
  --nv-lime-800: #52771F;
  --nv-lime-900: #405F1C;
  --nv-lime-950: #20350B;
  --nv-neutral-0: #FFFFFF;
  --nv-neutral-50: #F7F7F7;
  --nv-neutral-100: #F2F2F2;
  --nv-neutral-200: #E3E3E3;
  --nv-neutral-300: #D1D1D1;
  --nv-neutral-400: #A3A3A3;
  --nv-neutral-500: #737373;
  --nv-neutral-600: #525252;
  --nv-neutral-700: #444444;
  --nv-neutral-800: #2A2A2A;
  --nv-neutral-850: #1E1E1E;
  --nv-neutral-900: #191919;
  --nv-neutral-950: #181818;
  --nv-neutral-1000: #030303;
  --nv-red-100: #FEE2E2;
  --nv-red-500: #EF4444;
  --nv-red-700: #B91C1C;
  --nv-red-900: #7F1D1D;
  --nv-amber-100: #FEF3C7;
  --nv-amber-500: #F59E0B;
  --nv-amber-700: #B45309;
  --nv-amber-900: #78350F;
  --nv-green-100: #DCFCE7;
  --nv-green-500: #22C55E;
  --nv-green-700: #15803D;
  --nv-green-900: #14532D;
  --nv-blue-100: #DBEAFE;
  --nv-blue-500: #3B82F6;
  --nv-blue-700: #1D4ED8;
  --nv-blue-900: #1E3A8A;
  --nv-alpha-black-48: rgba(3,3,3,.48);
  --nv-alpha-black-72: rgba(3,3,3,.72);

  --nv-shadow-sm: 0 1px 2px rgba(3,3,3,.18);
  --nv-shadow-md: 0 8px 24px rgba(3,3,3,.22);
  --nv-shadow-lg: 0 20px 48px rgba(3,3,3,.28);

  --nv-layer-overlay: 50;
  --nv-layer-popover: 60;

  --nv-spacing-0: 0px;
  --nv-spacing-1: 4px;
  --nv-spacing-2: 8px;
  --nv-spacing-3: 12px;
  --nv-spacing-4: 16px;
  --nv-spacing-5: 20px;
  --nv-spacing-6: 24px;
  --nv-spacing-8: 32px;
  --nv-spacing-10: 40px;
  --nv-spacing-12: 48px;
  --nv-spacing-16: 64px;
  --nv-spacing-20: 80px;
  --nv-spacing-24: 96px;

  --nv-radius-none: 0px;
  --nv-radius-sm: 4px;
  --nv-radius-md: 8px;
  --nv-radius-lg: 12px;
  --nv-radius-xl: 16px;
  --nv-radius-2xl: 24px;
  --nv-radius-full: 9999px;

  --nv-typography-family-display: Degular Variable;
  --nv-typography-family-body: Degular Variable;
  --nv-typography-style-display: Display Medium;
  --nv-typography-style-heading: Medium;
  --nv-typography-style-body: Text Regular;
  --nv-typography-style-label: Medium;
  --nv-typography-size-display-xl: 72px;
  --nv-typography-line-height-display-xl: 72px;
  --nv-typography-size-display-l: 56px;
  --nv-typography-line-height-display-l: 58px;
  --nv-typography-size-heading-h1: 48px;
  --nv-typography-line-height-heading-h1: 52px;
  --nv-typography-size-heading-h2: 40px;
  --nv-typography-line-height-heading-h2: 44px;
  --nv-typography-size-heading-h3: 32px;
  --nv-typography-line-height-heading-h3: 38px;
  --nv-typography-size-heading-h4: 24px;
  --nv-typography-line-height-heading-h4: 30px;
  --nv-typography-size-body-l: 18px;
  --nv-typography-line-height-body-l: 28px;
  --nv-typography-size-body-m: 16px;
  --nv-typography-line-height-body-m: 24px;
  --nv-typography-size-body-s: 14px;
  --nv-typography-line-height-body-s: 20px;
  --nv-typography-size-label-l: 16px;
  --nv-typography-line-height-label-l: 20px;
  --nv-typography-size-label-m: 14px;
  --nv-typography-line-height-label-m: 18px;
  --nv-typography-size-label-s: 12px;
  --nv-typography-line-height-label-s: 16px;

  --nv-color-bg-canvas: var(--nv-neutral-950);
  --nv-color-bg-surface: #1a1a1a;
  --nv-color-bg-surface-raised: #242424;
  --nv-color-bg-subtle: #2e2e2e;
  /* Inputs must be lighter than pure canvas — avoid "black hole" fields */
  --nv-color-bg-input: #2f2f2f;
  --nv-color-bg-input-hover: #353535;
  --nv-color-bg-inverse: var(--nv-neutral-50);
  --nv-color-text-primary: var(--nv-neutral-50);
  --nv-color-text-secondary: var(--nv-neutral-300);
  /* neutral-400: better AA contrast on dark surfaces than -500 */
  --nv-color-text-muted: var(--nv-neutral-400);
  --nv-color-text-inverse: var(--nv-neutral-900);
  --nv-color-text-brand: var(--nv-lime-500);
  --nv-color-border-subtle: #353535;
  --nv-color-border-default: #525252;
  --nv-color-border-strong: #737373;
  --nv-color-border-input: #4a4a4a;
  --nv-color-accent-soft: color-mix(in srgb, var(--nv-lime-500) 14%, transparent);
  --nv-color-accent-ring: color-mix(in srgb, var(--nv-lime-500) 38%, transparent);
  --nv-color-action-primary: var(--nv-lime-500);
  --nv-color-action-primary-hover: var(--nv-lime-400);
  --nv-color-action-primary-pressed: var(--nv-lime-700);
  --nv-color-action-on-primary: var(--nv-neutral-950);
  --nv-color-action-secondary: var(--nv-neutral-850);
  --nv-color-action-secondary-hover: var(--nv-neutral-800);
  --nv-color-action-on-secondary: var(--nv-neutral-50);
  --nv-color-focus-ring: var(--nv-lime-500);
  --nv-color-status-info-bg: var(--nv-blue-900);
  --nv-color-status-info-fg: var(--nv-blue-100);
  --nv-color-status-success-bg: var(--nv-green-900);
  --nv-color-status-success-fg: var(--nv-green-100);
  --nv-color-status-warning-bg: var(--nv-amber-900);
  --nv-color-status-warning-fg: var(--nv-amber-100);
  --nv-color-status-danger-bg: var(--nv-red-900);
  --nv-color-status-danger-fg: var(--nv-red-100);
  --nv-color-overlay: var(--nv-alpha-black-72);
}

.light,
[data-theme='light'] {
  --nv-color-bg-canvas: var(--nv-neutral-50);
  --nv-color-bg-surface: var(--nv-neutral-0);
  --nv-color-bg-surface-raised: var(--nv-neutral-0);
  --nv-color-bg-subtle: var(--nv-neutral-100);
  --nv-color-bg-input: var(--nv-neutral-0);
  --nv-color-bg-input-hover: var(--nv-neutral-50);
  --nv-color-bg-inverse: var(--nv-neutral-900);
  --nv-color-text-primary: var(--nv-neutral-900);
  --nv-color-text-secondary: var(--nv-neutral-600);
  --nv-color-text-muted: var(--nv-neutral-500);
  --nv-color-text-inverse: var(--nv-neutral-50);
  --nv-color-text-brand: var(--nv-lime-900);
  --nv-color-border-subtle: var(--nv-neutral-200);
  --nv-color-border-default: var(--nv-neutral-300);
  --nv-color-border-strong: var(--nv-neutral-500);
  --nv-color-border-input: var(--nv-neutral-300);
  --nv-color-accent-soft: color-mix(in srgb, var(--nv-lime-600) 12%, transparent);
  --nv-color-accent-ring: color-mix(in srgb, var(--nv-lime-700) 40%, transparent);
  --nv-color-action-primary: var(--nv-lime-500);
  --nv-color-action-primary-hover: var(--nv-lime-600);
  --nv-color-action-primary-pressed: var(--nv-lime-700);
  --nv-color-action-on-primary: var(--nv-neutral-950);
  --nv-color-action-secondary: var(--nv-neutral-100);
  --nv-color-action-secondary-hover: var(--nv-neutral-200);
  --nv-color-action-on-secondary: var(--nv-neutral-900);
  --nv-color-focus-ring: var(--nv-lime-800);
  --nv-color-status-info-bg: var(--nv-blue-100);
  --nv-color-status-info-fg: var(--nv-blue-900);
  --nv-color-status-success-bg: var(--nv-green-100);
  --nv-color-status-success-fg: var(--nv-green-900);
  --nv-color-status-warning-bg: var(--nv-amber-100);
  --nv-color-status-warning-fg: var(--nv-amber-900);
  --nv-color-status-danger-bg: var(--nv-red-100);
  --nv-color-status-danger-fg: var(--nv-red-900);
  --nv-color-overlay: var(--nv-alpha-black-48);
}
