/* Crunchafi Design System — Tokens (primitives + semantic)
   Ported from Product prototype gl-upload branch.
   Font loaded in _Layout; components in crunchafi-components.css. */

/* ===== Primitives ===== */
:root {
  --primitives-border-radius-0125: 2px;
  --primitives-border-radius-0250: 4px;
  --primitives-border-radius-03125: 5px;
  --primitives-border-radius-0500: 8px;
  --primitives-border-radius-1000: 16px;
  --primitives-border-radius-1250: 20px;
  --primitives-border-width-1000: 1px;
  --primitives-border-width-2000: 2px;
  --primitives-border-width-3000: 3px;
  --primitives-color-brand-burgundy: #49043b;
  --primitives-color-brand-charcoal: #282828;
  --primitives-color-brand-green: #dcff92;
  --primitives-color-brand-lavender: #cdc5ff;
  --primitives-color-brand-light-grey: #f1f1f1;
  --primitives-color-brand-off-white: #f7f3f3;
  --primitives-color-brand-orange: #de5318;
  --primitives-color-brand-peach: #ff9463;
  --primitives-color-brand-purple: #a090fe;
  --primitives-color-brand-teal: #0a4551;
  --primitives-color-brand-white: #fefdfd;
  --primitives-color-brand-yellow: #fffbac;
  --primitives-color-ui-burgundy-100: #fff0fb;
  --primitives-color-ui-burgundy-200: #f1d0ec;
  --primitives-color-ui-burgundy-300: #deafd7;
  --primitives-color-ui-burgundy-400: #ba78ae;
  --primitives-color-ui-burgundy-500: #955088;
  --primitives-color-ui-burgundy-600: #6d275f;
  --primitives-color-ui-burgundy-700: #49043b;
  --primitives-color-ui-burgundy-800: #58204d;
  --primitives-color-ui-burgundy-900: #270221;
  --primitives-color-ui-emerald-100: #e5ffe7;
  --primitives-color-ui-emerald-200: #d2f4d6;
  --primitives-color-ui-emerald-300: #b3e8c2;
  --primitives-color-ui-emerald-400: #92e1ad;
  --primitives-color-ui-emerald-500: #70da98;
  --primitives-color-ui-emerald-600: #41aa75;
  --primitives-color-ui-emerald-700: #01634e;
  --primitives-color-ui-emerald-800: #053d31;
  --primitives-color-ui-emerald-900: #0a2916;
  --primitives-color-ui-green-100: #edfbd0;
  --primitives-color-ui-green-200: #dff5a3;
  --primitives-color-ui-green-300: #c8f28b;
  --primitives-color-ui-green-400: #bfeb7e;
  --primitives-color-ui-green-500: #96cd60;
  --primitives-color-ui-green-600: #78af42;
  --primitives-color-ui-green-700: #50871a;
  --primitives-color-ui-green-800: #326900;
  --primitives-color-ui-green-900: #0a410a;
  --primitives-color-ui-neutral-100: #fefdfd;
  --primitives-color-ui-neutral-200: #f7f3f3;
  --primitives-color-ui-neutral-300: #d9d6d6;
  --primitives-color-ui-neutral-400: #bbb9b9;
  --primitives-color-ui-neutral-500: #9d9c9c;
  --primitives-color-ui-neutral-600: #7f7f7f;
  --primitives-color-ui-neutral-700: #616262;
  --primitives-color-ui-neutral-800: #434545;
  --primitives-color-ui-neutral-900: #282828;
  --primitives-color-ui-neutral-950: #141414;
  --primitives-color-ui-neutral-black: #000000;
  --primitives-color-ui-neutral-transparent: #00000000;
  --primitives-color-ui-neutral-white: #ffffff;
  --primitives-color-ui-orange-100: #ffeae0;
  --primitives-color-ui-orange-200: #ffc59e;
  --primitives-color-ui-orange-300: #ffb18a;
  --primitives-color-ui-orange-400: #ff8a54;
  --primitives-color-ui-orange-500: #f26625;
  --primitives-color-ui-orange-600: #d93e06;
  --primitives-color-ui-orange-700: #a21700;
  --primitives-color-ui-orange-800: #840000;
  --primitives-color-ui-orange-900: #660000;
  --primitives-color-ui-purple-100: #f5f4ff;
  --primitives-color-ui-purple-200: #e7e3ff;
  --primitives-color-ui-purple-300: #cdc5ff;
  --primitives-color-ui-purple-400: #b5a8ff;
  --primitives-color-ui-purple-500: #a090fe;
  --primitives-color-ui-purple-600: #8877ee;
  --primitives-color-ui-purple-700: #6f5ec9;
  --primitives-color-ui-purple-800: #403a66;
  --primitives-color-ui-purple-900: #40396a;
  --primitives-color-ui-red-100: #fae1e1;
  --primitives-color-ui-red-200: #ffafaf;
  --primitives-color-ui-red-300: #ff8787;
  --primitives-color-ui-red-400: #ff5f5f;
  --primitives-color-ui-red-500: #d12525;
  --primitives-color-ui-red-600: #a31c1c;
  --primitives-color-ui-red-700: #741414;
  --primitives-color-ui-red-800: #450c0c;
  --primitives-color-ui-red-900: #340909;
  --primitives-color-ui-teal-100: #e2fdfd;
  --primitives-color-ui-teal-200: #c6ffff;
  --primitives-color-ui-teal-300: #a8f2ff;
  --primitives-color-ui-teal-400: #8ad4e5;
  --primitives-color-ui-teal-500: #61bcd1;
  --primitives-color-ui-teal-600: #508a97;
  --primitives-color-ui-teal-700: #28626f;
  --primitives-color-ui-teal-800: #0a4451;
  --primitives-color-ui-teal-900: #07323c;
  --primitives-color-ui-yellow-100: #fffcd6;
  --primitives-color-ui-yellow-200: #fffbac;
  --primitives-color-ui-yellow-300: #fef186;
  --primitives-color-ui-yellow-400: #ffe020;
  --primitives-color-ui-yellow-500: #fdc800;
  --primitives-color-ui-yellow-600: #d18700;
  --primitives-color-ui-yellow-700: #a66000;
  --primitives-color-ui-yellow-800: #884b00;
  --primitives-color-ui-yellow-900: #733d0a;
  --primitives-font-family-mono: "DEFINE_ME";
  --primitives-font-family-sans-serif: "Public Sans";
  --primitives-font-family-serif: "Sanomat";
  --primitives-font-weight-bold: 700;
  --primitives-font-weight-regular: 400;
  --primitives-font-weight-semibold: 600;
  --primitives-font-size-0750: 12px;
  --primitives-font-size-0875: 14px;
  --primitives-font-size-09375: 15px;
  --primitives-font-size-1000: 16px;
  --primitives-font-size-1250: 20px;
  --primitives-font-size-1500: 24px;
  --primitives-font-size-1750: 28px;
  --primitives-font-size-2000: 32px;
  --primitives-font-size-2500: 40px;
  --primitives-space-00000: 0;
  --primitives-space-0125: 2px;
  --primitives-space-0250: 4px;
  --primitives-space-0500: 8px;
  --primitives-space-0625: 1px;
  --primitives-space-0875: 12px;
  --primitives-space-1000: 16px;
  --primitives-space-1250: 20px;
  --primitives-space-1500: 24px;
  --primitives-space-1750: 28px;
  --primitives-space-2000: 32px;
  --primitives-space-2250: 36px;
  --primitives-space-2500: 40px;
  --primitives-space-2750: 44px;
  --primitives-space-3000: 48px;
  --primitives-space-3250: 52px;
  --primitives-space-3500: 56px;
  --primitives-space-3750: 60px;
  --primitives-space-4000: 64px;
  --primitives-space-8000: 128px;
  --primitives-space-25000: 400px;
  --primitives-space-45000: 720px;
  --primitives-space-65000: 1040px;
  --primitives-space-90000: 1440px;
}

/* ===== Semantic tokens (brand theme) ===== */
[data-theme="brand"],
.theme-brand {
  --action-danger-active: var(--primitives-color-ui-red-400);
  --action-danger-default: var(--primitives-color-ui-red-200);
  --action-danger-hover: var(--primitives-color-ui-red-300);
  --action-danger-text: var(--primitives-color-ui-neutral-900);
  --action-floating-active: var(--primitives-color-ui-neutral-400);
  --action-floating-default: var(--primitives-color-ui-neutral-transparent);
  --action-floating-hover: var(--primitives-color-ui-neutral-300);
  --action-floating-text: var(--primitives-color-ui-neutral-900);
  --action-important-active: var(--primitives-color-ui-neutral-800);
  --action-important-default: var(--primitives-color-ui-neutral-900);
  --action-important-hover: var(--primitives-color-ui-neutral-700);
  --action-important-text: var(--primitives-color-ui-neutral-white);
  --action-info-active: var(--primitives-color-ui-teal-500);
  --action-info-default: var(--primitives-color-ui-teal-300);
  --action-info-hover: var(--primitives-color-ui-teal-400);
  --action-info-text: var(--primitives-color-ui-neutral-900);
  --action-primary-active: var(--primitives-color-ui-burgundy-700);
  --action-primary-default: var(--primitives-color-ui-burgundy-800);
  --action-primary-hover: var(--primitives-color-ui-burgundy-600);
  --action-primary-text: var(--primitives-color-ui-neutral-100);
  --action-secondary-active: var(--primitives-color-ui-neutral-500);
  --action-secondary-default: var(--primitives-color-ui-neutral-300);
  --action-secondary-hover: var(--primitives-color-ui-neutral-400);
  --action-secondary-text: var(--primitives-color-ui-neutral-900);
  --action-success-active: var(--primitives-color-ui-green-500);
  --action-success-default: var(--primitives-color-ui-green-300);
  --action-success-hover: var(--primitives-color-ui-green-400);
  --action-success-text: var(--primitives-color-ui-neutral-900);
  --action-warning-active: var(--primitives-color-ui-orange-300);
  --action-warning-default: var(--primitives-color-ui-orange-100);
  --action-warning-hover: var(--primitives-color-ui-orange-200);
  --action-warning-text: var(--primitives-color-ui-neutral-900);
  --border-color-danger: var(--primitives-color-ui-red-300);
  --border-color-default: var(--primitives-color-ui-neutral-300);
  --border-color-emphasis: var(--primitives-color-ui-neutral-900);
  --border-color-info: var(--primitives-color-ui-teal-400);
  --border-color-secondary: var(--primitives-color-ui-neutral-100);
  --border-color-success: var(--primitives-color-ui-green-400);
  --border-color-tertiary: var(--primitives-color-ui-neutral-500);
  --border-color-warning: var(--primitives-color-ui-orange-300);
  --border-radius-badge: var(--primitives-border-radius-0250);
  --border-radius-card: var(--primitives-border-radius-1000);
  --border-radius-card-default: var(--primitives-border-radius-1000);
  --border-radius-card-small: var(--primitives-border-radius-0500);
  --border-radius-checkbox: var(--primitives-border-radius-0250);
  --border-radius-control: var(--primitives-border-radius-0500);
  --border-radius-step: var(--primitives-border-radius-03125);
  --border-width-default: var(--primitives-space-0625);
  --border-width-large: var(--primitives-space-0125);
  --color: var(--text-color-primary-default);
  --product-logo: "crunchafi";
  --size-app-header-height: var(--primitives-space-3500);
  --size-control-button-group-gap: var(--primitives-space-0875);
  --size-control-height-default: var(--primitives-space-2250);
  --size-control-height-large: var(--primitives-space-2750);
  --size-control-height-small: var(--primitives-space-1750);
  --size-control-min-width-large: var(--primitives-space-8000);
  --size-control-min-width-small: var(--primitives-space-4000);
  --size-gap-control-group: var(--primitives-space-0875);
  --size-gap-input-label-description: var(--primitives-space-0500);
  --size-input-control-height: var(--primitives-space-1250);
  --size-input-control-width: var(--primitives-space-1250);
  --size-padding-huge: var(--primitives-space-2000);
  --size-padding-large: var(--primitives-space-1500);
  --size-padding-medium: var(--primitives-space-1000);
  --size-padding-micro: var(--primitives-space-0250);
  --size-padding-none: var(--primitives-space-00000);
  --size-padding-small: var(--primitives-space-0875);
  --size-padding-tiny: var(--primitives-space-0500);
  --surface-branded: var(--primitives-color-brand-burgundy);
  --surface-danger: var(--primitives-color-ui-red-100);
  --surface-info: var(--primitives-color-ui-teal-100);
  --surface-primary: var(--primitives-color-ui-neutral-white);
  --surface-secondary: var(--primitives-color-ui-neutral-200);
  --surface-success: var(--primitives-color-ui-green-200);
  --surface-tertiary: var(--primitives-color-ui-neutral-300);
  --surface-warning: var(--primitives-color-ui-orange-200);
  --text-color-danger: var(--primitives-color-ui-red-500);
  --text-color-info: var(--primitives-color-ui-teal-500);
  --text-color-on-surface-danger: var(--text-color-primary-default);
  --text-color-on-surface-info: var(--text-color-primary-default);
  --text-color-on-surface-primary: var(--text-color-primary-default);
  --text-color-on-surface-secondary: var(--text-color-primary-default);
  --text-color-on-surface-success: var(--text-color-primary-default);
  --text-color-on-surface-warning: var(--text-color-primary-default);
  --text-color-primary-default: var(--primitives-color-ui-neutral-900);
  --text-color-primary-reversed: var(--primitives-color-ui-neutral-100);
  --text-color-secondary-default: var(--primitives-color-ui-neutral-700);
  --text-color-secondary-reversed: var(--primitives-color-ui-neutral-200);
  --text-color-success: var(--primitives-color-ui-green-600);
  --text-color-tertiary: var(--primitives-color-ui-neutral-400);
  --text-color-warning: var(--primitives-color-ui-orange-500);
  --text-family-body: var(--primitives-font-family-sans-serif);
  --text-family-display: var(--primitives-font-family-serif);
  --text-size-heading-default: var(--primitives-font-size-1500);
  --text-size-heading-huge: var(--primitives-font-size-2000);
  --text-size-heading-large: var(--primitives-font-size-1750);
  --text-size-heading-small: var(--primitives-font-size-1250);
  --text-size-heading-tiny: var(--primitives-font-size-1000);
  --text-size-label-default: var(--primitives-font-size-1000);
  --text-size-paragraph-default: var(--primitives-font-size-1000);
  --text-size-paragraph-large: var(--primitives-font-size-1250);
  --text-size-paragraph-small: var(--primitives-font-size-0875);
  --text-size-paragraph-tiny: var(--primitives-font-size-0750);
  --text-size-title-default: var(--primitives-font-size-2000);
  --text-weight-bold: 700;
  --text-weight-heading: var(--primitives-font-weight-semibold);
  --text-weight-label: var(--primitives-font-weight-bold);
  --text-weight-paragraph-default: var(--primitives-font-weight-regular);
  --text-weight-paragraph-strong: var(--primitives-font-weight-semibold);
  --text-weight-regular: 450;
  --utility-disabled-alpha: var(--primitives-space-1500);

  /* Component tokens */
  --components-radio-height: var(--size-input-control-height);
  --components-radio-width: var(--size-input-control-width);
  --components-tag-font-weight: var(--text-weight-paragraph-default);
  --components-tag-gap: var(--size-padding-tiny);
  --components-tag-height: var(--primitives-space-1250);
  --components-tag-padding-x: var(--size-padding-tiny);
  --components-tag-padding-y: var(--size-padding-none);
}

/* ===== Semantic tokens (data-extraction theme) ===== */
[data-theme="data-extraction"],
.theme-data-extraction {
  --action-danger-active: var(--primitives-color-ui-red-400);
  --action-danger-default: var(--primitives-color-ui-red-200);
  --action-danger-hover: var(--primitives-color-ui-red-300);
  --action-danger-text: var(--primitives-color-ui-neutral-900);
  --action-floating-active: var(--primitives-color-ui-neutral-400);
  --action-floating-default: var(--primitives-color-ui-neutral-transparent);
  --action-floating-hover: var(--primitives-color-ui-neutral-300);
  --action-floating-text: var(--primitives-color-ui-neutral-900);
  --action-important-active: var(--primitives-color-ui-neutral-800);
  --action-important-default: var(--primitives-color-ui-neutral-900);
  --action-important-hover: var(--primitives-color-ui-neutral-700);
  --action-important-text: var(--primitives-color-ui-neutral-white);
  --action-info-active: var(--primitives-color-ui-teal-500);
  --action-info-default: var(--primitives-color-ui-teal-300);
  --action-info-hover: var(--primitives-color-ui-teal-400);
  --action-info-text: var(--primitives-color-ui-neutral-900);
  --action-primary-active: var(--primitives-color-ui-orange-400);
  --action-primary-default: var(--primitives-color-ui-orange-200);
  --action-primary-hover: var(--primitives-color-ui-orange-300);
  --action-primary-text: var(--primitives-color-ui-neutral-900);
  --action-secondary-active: var(--primitives-color-ui-neutral-500);
  --action-secondary-default: var(--primitives-color-ui-neutral-300);
  --action-secondary-hover: var(--primitives-color-ui-neutral-400);
  --action-secondary-text: var(--primitives-color-ui-neutral-900);
  --action-success-active: var(--primitives-color-ui-green-500);
  --action-success-default: var(--primitives-color-ui-green-300);
  --action-success-hover: var(--primitives-color-ui-green-400);
  --action-success-text: var(--primitives-color-ui-neutral-900);
  --action-warning-active: var(--primitives-color-ui-orange-300);
  --action-warning-default: var(--primitives-color-ui-orange-100);
  --action-warning-hover: var(--primitives-color-ui-orange-200);
  --action-warning-text: var(--primitives-color-ui-neutral-900);
  --border-color-danger: var(--primitives-color-ui-red-300);
  --border-color-default: var(--primitives-color-ui-neutral-300);
  --border-color-emphasis: var(--primitives-color-ui-neutral-900);
  --border-color-info: var(--primitives-color-ui-teal-400);
  --border-color-secondary: var(--primitives-color-ui-neutral-100);
  --border-color-success: var(--primitives-color-ui-green-400);
  --border-color-tertiary: var(--primitives-color-ui-neutral-500);
  --border-color-warning: var(--primitives-color-ui-orange-200);
  --border-radius-badge: var(--primitives-border-radius-0250);
  --border-radius-card: var(--primitives-border-radius-1000);
  --border-radius-card-default: var(--primitives-border-radius-1000);
  --border-radius-card-small: var(--primitives-border-radius-0500);
  --border-radius-checkbox: var(--primitives-border-radius-0250);
  --border-radius-control: var(--primitives-border-radius-0500);
  --border-radius-step: var(--primitives-border-radius-03125);
  --border-width-default: var(--primitives-space-0625);
  --border-width-large: var(--primitives-space-0125);
  --color: var(--text-color-primary-default);
  --product-logo: "data-extraction";
  --size-app-header-height: var(--primitives-space-3500);
  --size-content-max-width-default: var(--primitives-space-65000);
  --size-content-max-width-focused: var(--primitives-space-25000);
  --size-content-max-width-large: var(--primitives-space-90000);
  --size-content-max-width-narrow: var(--primitives-space-45000);
  --size-control-button-group-gap: var(--primitives-space-0875);
  --size-control-height-default: 36px;
  --size-control-height-large: var(--primitives-space-2750);
  --size-control-height-small: 28px;
  --size-control-min-width-large: var(--primitives-space-8000);
  --size-control-min-width-small: var(--primitives-space-4000);
  --size-gap-control-group: var(--primitives-space-0875);
  --size-gap-input-label-description: var(--primitives-space-0500);
  --size-input-control-height: var(--primitives-space-1250);
  --size-input-control-width: var(--primitives-space-1250);
  --size-padding-huge: var(--primitives-space-2000);
  --size-padding-large: var(--primitives-space-1500);
  --size-padding-medium: var(--primitives-space-1000);
  --size-padding-micro: var(--primitives-space-0250);
  --size-padding-none: var(--primitives-space-00000);
  --size-padding-small: var(--primitives-space-0875);
  --size-padding-tiny: var(--primitives-space-0500);
  --surface-branded: var(--primitives-color-ui-orange-300);
  --surface-danger: var(--primitives-color-ui-red-100);
  --surface-info: var(--primitives-color-ui-teal-100);
  --surface-primary: var(--primitives-color-ui-neutral-white);
  --surface-secondary: var(--primitives-color-ui-neutral-200);
  --surface-success: var(--primitives-color-ui-green-200);
  --surface-tertiary: var(--primitives-color-ui-neutral-300);
  --surface-warning: var(--primitives-color-ui-orange-200);
  --text-color-danger: var(--primitives-color-ui-red-500);
  --text-color-info: var(--primitives-color-ui-teal-500);
  --text-color-on-surface-danger: var(--text-color-primary-default);
  --text-color-on-surface-info: var(--text-color-primary-default);
  --text-color-on-surface-primary: var(--text-color-primary-default);
  --text-color-on-surface-secondary: var(--text-color-primary-default);
  --text-color-on-surface-success: var(--text-color-primary-default);
  --text-color-on-surface-warning: var(--text-color-primary-default);
  --text-color-primary-default: var(--primitives-color-ui-neutral-900);
  --text-color-primary-reversed: var(--primitives-color-ui-neutral-100);
  --text-color-secondary-default: var(--primitives-color-ui-neutral-700);
  --text-color-secondary-reversed: var(--primitives-color-ui-neutral-200);
  --text-color-success: var(--primitives-color-ui-green-600);
  --text-color-tertiary: var(--primitives-color-ui-neutral-400);
  --text-color-warning: var(--primitives-color-ui-orange-500);
  --text-family-body: var(--primitives-font-family-sans-serif);
  --text-family-display: var(--primitives-font-family-serif);
  --text-size-heading-default: var(--primitives-font-size-1500);
  --text-size-heading-huge: var(--primitives-font-size-2000);
  --text-size-heading-large: var(--primitives-font-size-1750);
  --text-size-heading-small: var(--primitives-font-size-1250);
  --text-size-heading-tiny: var(--primitives-font-size-1000);
  --text-size-label-default: var(--primitives-font-size-1000);
  --text-size-paragraph-default: var(--primitives-font-size-1000);
  --text-size-paragraph-large: var(--primitives-font-size-1250);
  --text-size-paragraph-small: var(--primitives-font-size-0875);
  --text-size-paragraph-tiny: var(--primitives-font-size-0750);
  --text-size-title-default: var(--primitives-font-size-2000);
  --text-weight-bold: 700;
  --text-weight-heading: var(--primitives-font-weight-semibold);
  --text-weight-label: var(--primitives-font-weight-bold);
  --text-weight-paragraph-default: var(--primitives-font-weight-regular);
  --text-weight-paragraph-strong: var(--primitives-font-weight-semibold);
  --text-weight-regular: 450;
  --utility-disabled-alpha: var(--primitives-space-1500);

  /* Component tokens */
  --components-radio-height: var(--size-input-control-height);
  --components-radio-width: var(--size-input-control-width);
  --components-tag-font-weight: var(--text-weight-paragraph-default);
  --components-tag-gap: var(--size-padding-tiny);
  --components-tag-height: var(--primitives-space-1250);
  --components-tag-padding-x: var(--size-padding-tiny);
  --components-tag-padding-y: var(--size-padding-none);
}

/* ===== Aliases for backward compatibility ===== */
[data-theme="data-extraction"],
.theme-data-extraction,
[data-theme="brand"],
.theme-brand {
  /* Surface aliases */
  --color-surface-primary: var(--surface-primary);
  --color-surface-secondary: var(--surface-secondary);
  --color-surface-tertiary: var(--surface-tertiary);
  --color-surface-brand: var(--surface-branded);
  --color-surface-danger: var(--surface-danger);
  --color-surface-success: var(--surface-success);
  --color-surface-warning: var(--surface-warning);
  --color-surface-info: var(--surface-info);

  /* Text aliases */
  --color-text-primary: var(--text-color-primary-default);
  --color-text-secondary: var(--text-color-secondary-default);
  --color-text-inverse: var(--text-color-primary-reversed);
  --color-text-brand: var(--text-color-primary-default);
  --color-text-danger: var(--text-color-danger);
  --color-text-success: var(--text-color-success);
  --color-text-warning: var(--text-color-warning);
  --color-text-info: var(--text-color-info);

  /* Border aliases */
  --color-border-primary: var(--border-color-default);
  --color-border-secondary: var(--border-color-tertiary);
  --color-border-focus: var(--border-color-emphasis);
  --color-border-danger: var(--border-color-danger);
  --color-border-info: var(--border-color-info);

  /* Action aliases */
  --color-action-primary: var(--action-primary-default);
  --color-action-primary-hover: var(--action-primary-hover);
  --color-action-secondary: var(--action-secondary-default);
  --color-action-important: var(--action-important-default);

  /* Typography aliases */
  --font-family: var(--text-family-body), system-ui, -apple-system, sans-serif;
  --font-size-xs: 10px;
  --font-size-sm: var(--text-size-paragraph-tiny);
  --font-size-base: var(--text-size-paragraph-small);
  --font-size-lg: var(--text-size-paragraph-default);
  --font-size-xl: var(--text-size-heading-small);
  --font-size-2xl: var(--text-size-heading-large);
  --line-height-tight: 1.2;
  --line-height-normal: 1.5;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;

  /* Radius aliases */
  --radius-sm: var(--border-radius-badge);
  --radius-md: var(--border-radius-control);
  --radius-lg: var(--border-radius-card);
  --radius-xl: var(--border-radius-card);
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Reset omitted — Portal uses its own reset in foundation/reset.css */
