/**
 * DGA semantic tokens - one name per meaning.
 * Light mode defaults. Dark rebinds in semantic-dark.css.
 */
:root {
  /* Native UA chrome (scrollbars, inputs) follow app theme, not OS. */
  color-scheme: light;

  /* Shadows */
  --dga-shadow-xs: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);
  --dga-shadow-sm: 0px 1px 2px 0px rgba(16, 24, 40, 0.06), 0px 1px 3px 0px rgba(16, 24, 40, 0.1);
  --dga-shadow-md: 0px 2px 4px -2px rgba(16, 24, 40, 0.06), 0px 4px 8px -2px rgba(16, 24, 40, 0.1);
  --dga-shadow-lg: 0px 4px 6px -2px rgba(16, 24, 40, 0.03), 0px 12px 16px -4px rgba(16, 24, 40, 0.08);
  --dga-shadow-xl: 0px 8px 8px -4px rgba(16, 24, 40, 0.03), 0px 20px 24px -4px rgba(16, 24, 40, 0.08);
  --dga-shadow-2xl: 0px 24px 48px -12px rgba(16, 24, 40, 0.18);
  --dga-shadow-3xl: 0px 32px 64px -12px rgba(16, 24, 40, 0.14);
  --dga-shadow-inset: inset 0px 0 4px 2px rgba(0, 0, 0, 0.05);

  /* Background - surfaces */
  --dga-bg-default: var(--dga-color-white);
  --dga-bg-body: var(--dga-color-neutral-50);
  --dga-bg-nav: var(--dga-color-white);
  --dga-bg-surface: var(--dga-bg-default);
  --dga-bg-topbar: var(--dga-color-neutral-100);
  /* Brand portal footer — follows the active primary ramp (blue / purple / …). */
  --dga-bg-footer: var(--dga-color-primary-900);
  --dga-bg-card: var(--dga-color-white);
  --dga-bg-card-hovered: var(--dga-color-neutral-50);
  --dga-bg-elevated: var(--dga-color-white);
  --dga-bg-sunken: var(--dga-color-neutral-100);
  --dga-bg-overlay: var(--dga-color-black-alpha-50);
  --dga-bg-mark: var(--dga-color-primary-100);

  /* Background - brand */
  --dga-bg-primary: var(--dga-color-primary-600);
  --dga-bg-primary-light: var(--dga-color-primary-50);
  --dga-bg-primary-faint: var(--dga-color-primary-25);
  --dga-bg-primary-strong: var(--dga-color-primary-900);
  --dga-bg-secondary: var(--dga-color-secondary-600);
  --dga-bg-tertiary: var(--dga-color-tertiary-600);
  --dga-bg-neutral-light: var(--dga-color-neutral-100);

  /* Background - status */
  --dga-bg-success: var(--dga-color-green-600);
  --dga-bg-success-light: var(--dga-color-green-50);
  --dga-bg-success-faint: var(--dga-color-green-25);
  --dga-bg-info: var(--dga-color-blue-600);
  --dga-bg-info-light: var(--dga-color-blue-50);
  --dga-bg-info-faint: var(--dga-color-blue-25);
  --dga-bg-warning: var(--dga-color-yellow-600);
  --dga-bg-warning-light: var(--dga-color-yellow-50);
  --dga-bg-warning-faint: var(--dga-color-yellow-25);
  --dga-bg-error: var(--dga-color-red-600);
  --dga-bg-error-light: var(--dga-color-red-50);
  --dga-bg-error-faint: var(--dga-color-red-25);

  /* Background - disabled */
  --dga-bg-disabled: var(--dga-color-neutral-200);
  --dga-bg-disabled-primary: var(--dga-color-primary-200);

  /* Text */
  --dga-text-default: var(--dga-color-black);
  --dga-text-display: var(--dga-color-neutral-800);
  --dga-text-paragraph: var(--dga-color-neutral-700);
  --dga-text-muted: var(--dga-color-neutral-500);
  --dga-text-primary: var(--dga-color-primary-600);
  --dga-text-primary-strong: var(--dga-color-primary-700);
  --dga-text-secondary: var(--dga-color-secondary-600);
  --dga-text-tertiary: var(--dga-color-tertiary-500);
  --dga-text-on-color: var(--dga-color-white);
  --dga-text-on-color-muted: var(--dga-color-white-alpha-80);
  --dga-text-success: var(--dga-color-green-700);
  --dga-text-info: var(--dga-color-blue-700);
  --dga-text-warning: var(--dga-color-yellow-700);
  --dga-text-error: var(--dga-color-red-700);
  --dga-text-disabled: var(--dga-color-neutral-400);

  /* Border */
  --dga-border-primary: var(--dga-color-primary-600);
  --dga-border-primary-light: var(--dga-color-primary-200);
  --dga-border-secondary: var(--dga-color-secondary-600);
  --dga-border-secondary-light: var(--dga-color-secondary-200);
  --dga-border-tertiary: var(--dga-color-tertiary-500);
  --dga-border-tertiary-light: var(--dga-color-tertiary-200);
  --dga-border-neutral: var(--dga-color-neutral-300);
  --dga-border-neutral-subtle: var(--dga-color-neutral-200);
  --dga-border-neutral-faint: var(--dga-color-neutral-100);
  --dga-border-success: var(--dga-color-green-700);
  --dga-border-success-light: var(--dga-color-green-200);
  --dga-border-info: var(--dga-color-blue-700);
  --dga-border-info-light: var(--dga-color-blue-200);
  --dga-border-warning: var(--dga-color-yellow-700);
  --dga-border-warning-light: var(--dga-color-yellow-200);
  --dga-border-error: var(--dga-color-red-700);
  --dga-border-error-light: var(--dga-color-red-200);
  --dga-border-disabled: var(--dga-color-neutral-300);
  --dga-border-on-color: var(--dga-color-white-alpha-40);
  --dga-divider: var(--dga-color-black-alpha-10);

  /* Focus — high-contrast ring for chrome (buttons, links). Form fields override. */
  --dga-focus-ring: var(--dga-color-black);
  --dga-focus-inner: var(--dga-color-white);

  /* Form fields — soft primary glow + bottom accent (no black outline) */
  --dga-form-field-accent: var(--dga-border-primary);
  --dga-form-field-bg: var(--dga-bg-default);
  --dga-form-field-bg-darker: var(--dga-bg-sunken);
  --dga-form-field-focus-glow: color-mix(in srgb, var(--dga-color-primary-500) 22%, transparent);
  --dga-form-field-focus-shadow:
    0 0 0 3px var(--dga-form-field-focus-glow),
    inset 0 -2px 0 0 var(--dga-form-field-accent);


  --dga-chart-color-1: var(--dga-color-primary-600);
  --dga-chart-color-2: var(--dga-color-blue-600);
  --dga-chart-color-3: var(--dga-color-secondary-600);
  --dga-chart-color-4: var(--dga-color-yellow-600);
  --dga-chart-color-5: var(--dga-color-tertiary-500);
  --dga-chart-color-6: var(--dga-color-red-600);
  --dga-chart-grid: var(--dga-border-neutral-subtle);
  --dga-chart-text: var(--dga-text-muted);
  --dga-chart-label: var(--dga-text-paragraph);
  --dga-chart-tooltip-bg: var(--dga-bg-elevated);
  --dga-chart-tooltip-border: var(--dga-border-neutral);
  --dga-chart-area-opacity: 0.18;
  --dga-chart-dot-fill: var(--dga-bg-default);

  /* Icon */
  --dga-icon-default: var(--dga-color-black);
  --dga-icon-primary: var(--dga-color-primary-600);
  --dga-icon-neutral: var(--dga-color-neutral-700);
  --dga-icon-secondary: var(--dga-color-secondary-600);
  --dga-icon-tertiary: var(--dga-color-tertiary-500);
  --dga-icon-success: var(--dga-color-green-700);
  --dga-icon-info: var(--dga-color-blue-700);
  --dga-icon-warning: var(--dga-color-yellow-700);
  --dga-icon-error: var(--dga-color-red-700);
  --dga-icon-on-color: var(--dga-color-white);
  --dga-icon-disabled: var(--dga-color-neutral-400);
}

/* Default DGA green (no data-brand) keeps official portal chrome. */
:root:not([data-brand]) {
  --dga-bg-footer: #074d31;
}
