/* AUTO-GENERATED — DO NOT EDIT */
/* Source: design-tokens/tokens/(all .json files) */
/* Style Dictionary: 5.4.0 */

/* vmvon Pro family — self-hosted, RHRF license covers AIClinica per provenance trail in design-tokens/fonts/LICENSE.md */
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-Thin.woff2') format('woff2'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-ThinItalic.woff2') format('woff2'); font-weight: 100; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-LightItalic.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-Italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-MediumItalic.woff2') format('woff2'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-BoldItalic.woff2') format('woff2'); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Pro'; src: url('/fonts/vmvonPro-BlackItalic.woff2') format('woff2'); font-weight: 900; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-Thin.woff2') format('woff2'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-ThinItalic.woff2') format('woff2'); font-weight: 100; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-LightItalic.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-Italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-MediumItalic.woff2') format('woff2'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-BoldItalic.woff2') format('woff2'); font-weight: 700; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Condensed Pro'; src: url('/fonts/vmvonCondensedPro-BlackItalic.woff2') format('woff2'); font-weight: 900; font-style: italic; font-display: swap; }
@font-face { font-family: 'vmvon Round Pro'; src: url('/fonts/vmvonRoundPro-Thin.woff2') format('woff2'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Round Pro'; src: url('/fonts/vmvonRoundPro-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Round Pro'; src: url('/fonts/vmvonRoundPro-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Round Pro'; src: url('/fonts/vmvonRoundPro-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Round Pro'; src: url('/fonts/vmvonRoundPro-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'vmvon Round Pro'; src: url('/fonts/vmvonRoundPro-Black.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }

:root {
  /* Font stacks (Phase 7) */
  --font-sans: vmvon Pro, -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', 'Roboto', 'Helvetica Neue', sans-serif;
  --font-heading: vmvon Condensed Pro, vmvon Pro, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-round: vmvon Round Pro, vmvon Pro, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: JetBrains Mono, 'SF Mono', 'Fira Code', 'Fira Mono', monospace;

  /* Primitives (mode-invariant) */
  --color-accent-100: oklch(0.9212 0.1518 98.59);
  --color-accent-200: oklch(0.8799 0.1536 91.18);
  --color-accent-300: oklch(0.8273 0.1541 91.55);
  --color-accent-400: oklch(0.7412 0.1515 90.89);
  --color-accent-50: oklch(0.9509 0.1516 104.48);
  --color-accent-500: oklch(0.8859 0.1539 91.23);
  --color-accent-600: oklch(0.5766 0.1183 84.05);
  --color-accent-700: oklch(0.4728 0.0988 77.36);
  --color-accent-800: oklch(0.4006 0.0868 70.04);
  --color-accent-900: oklch(0.3245 0.0756 60.69);
  --color-accent-950: oklch(0.2421 0.0690 45.19);
  --color-black: oklch(0.0000 0.0000 0.00);
  --color-brand-100: oklch(0.9310 0.1030 196.28);
  --color-brand-200: oklch(0.8804 0.1043 208.48);
  --color-brand-300: oklch(0.8258 0.1042 207.82);
  --color-brand-400: oklch(0.7737 0.1045 207.88);
  --color-brand-50: oklch(0.9398 0.0926 195.69);
  --color-brand-500: oklch(0.6483 0.1048 208.12);
  --color-brand-600: oklch(0.5765 0.0992 208.28);
  --color-brand-700: oklch(0.4811 0.0837 211.61);
  --color-brand-800: oklch(0.4104 0.0725 215.11);
  --color-brand-900: oklch(0.3401 0.0619 220.03);
  --color-brand-950: oklch(0.2624 0.0512 228.10);
  --color-chart-1: oklch(0.7737 0.1045 207.88);
  --color-chart-2: oklch(0.8125 0.1526 153.76);
  --color-chart-3: oklch(0.8622 0.1681 88.31);
  --color-chart-4: oklch(0.7594 0.1435 26.08);
  --color-chart-5: oklch(0.7912 0.0755 188.24);
  --color-chart-6: oklch(0.7437 0.1161 321.55);
  --color-error-100: oklch(0.8680 0.0713 31.43);
  --color-error-200: oklch(0.8319 0.0934 28.13);
  --color-error-300: oklch(0.7974 0.1162 26.39);
  --color-error-400: oklch(0.7430 0.1431 26.19);
  --color-error-50: oklch(0.8971 0.0547 35.02);
  --color-error-500: oklch(0.7594 0.1435 26.08);
  --color-error-600: oklch(0.5725 0.1434 26.22);
  --color-error-700: oklch(0.4683 0.1441 26.00);
  --color-error-800: oklch(0.3940 0.1433 26.18);
  --color-error-900: oklch(0.3293 0.1350 28.85);
  --color-error-950: oklch(0.2685 0.1102 29.23);
  --color-info-100: oklch(0.9102 0.0943 204.81);
  --color-info-200: oklch(0.8601 0.1018 219.75);
  --color-info-300: oklch(0.8129 0.1150 231.59);
  --color-info-400: oklch(0.7426 0.1434 244.07);
  --color-info-50: oklch(0.9407 0.0910 195.72);
  --color-info-500: oklch(0.6967 0.1442 244.55);
  --color-info-600: oklch(0.5733 0.1446 245.09);
  --color-info-700: oklch(0.4772 0.1337 249.60);
  --color-info-800: oklch(0.4057 0.1304 254.29);
  --color-info-900: oklch(0.3361 0.1241 257.93);
  --color-info-950: oklch(0.2552 0.1220 262.42);
  --color-neutral-100: oklch(0.9370 0.0000 0.00);
  --color-neutral-200: oklch(0.8822 0.0000 0.00);
  --color-neutral-300: oklch(0.8266 0.0000 0.00);
  --color-neutral-400: oklch(0.7412 0.0000 0.00);
  --color-neutral-50: oklch(0.9791 0.0000 0.00);
  --color-neutral-500: oklch(0.5555 0.0000 0.00);
  --color-neutral-600: oklch(0.5727 0.0000 0.00);
  --color-neutral-700: oklch(0.4676 0.0000 0.00);
  --color-neutral-800: oklch(0.3942 0.0000 0.00);
  --color-neutral-900: oklch(0.3211 0.0000 0.00);
  --color-neutral-950: oklch(0.2393 0.0000 0.00);
  --color-success-100: oklch(0.9157 0.1407 155.13);
  --color-success-200: oklch(0.8813 0.1521 153.88);
  --color-success-300: oklch(0.8273 0.1534 153.58);
  --color-success-400: oklch(0.7426 0.1530 153.57);
  --color-success-50: oklch(0.9258 0.1191 157.89);
  --color-success-500: oklch(0.8125 0.1526 153.76);
  --color-success-600: oklch(0.5755 0.1493 152.65);
  --color-success-700: oklch(0.4790 0.1352 149.00);
  --color-success-800: oklch(0.4099 0.1259 145.80);
  --color-success-900: oklch(0.3415 0.1162 142.50);
  --color-success-950: oklch(0.2644 0.0900 142.50);
  --color-warning-100: oklch(0.9114 0.1642 97.99);
  --color-warning-200: oklch(0.8743 0.1665 90.71);
  --color-warning-300: oklch(0.8259 0.1679 88.13);
  --color-warning-400: oklch(0.7436 0.1523 85.53);
  --color-warning-50: oklch(0.9430 0.1641 103.87);
  --color-warning-500: oklch(0.8622 0.1681 88.31);
  --color-warning-600: oklch(0.5788 0.1209 77.51);
  --color-warning-700: oklch(0.4759 0.1034 69.55);
  --color-warning-800: oklch(0.3998 0.0922 61.80);
  --color-warning-900: oklch(0.3267 0.0845 51.58);
  --color-warning-950: oklch(0.2412 0.0799 37.48);
  --color-white: oklch(1.0000 0.0000 0.00);

  /* Light-mode semantics */
  --outline: var(--color-neutral-400);
  --outlineVariant: var(--color-neutral-200);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.06);
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.05);
  --surface-accent: var(--color-accent-500);
  --surface-background: oklch(0.9854 0.0013 286.38);
  --surface-brand: var(--color-brand-700);
  --surface-destructive: var(--color-error-600);
  --surface-elevated: oklch(0.9700 0.0029 264.54);
  --surface-overlay: rgba(15,17,21,0.4);
  --surface-subtle: oklch(0.9545 0.0046 258.32);
  --surface-success: var(--color-success-600);
  --surface-warning: var(--color-warning-600);
  --text-brand: var(--color-brand-700);
  --text-onAccent: var(--color-accent-700);
  --text-onBrand: oklch(1.0000 0.0000 0.00);
  --text-onDestructive: oklch(1.0000 0.0000 0.00);
  --text-primary: oklch(0.1773 0.0089 264.32);
  --text-secondary: oklch(0.4264 0.0163 262.31);
  --text-tertiary: oklch(0.4918 0.0171 264.41);
  --voice-error: var(--color-error-600);
  --voice-idle: var(--color-neutral-500);
  --voice-listening: var(--color-brand-600);
  --voice-processing: var(--color-warning-600);
  --voice-speaking: var(--color-success-600);

  /* shadcn alias bridge — UI-SPEC §11 */
  --accent: var(--surface-accent);
  --accent-foreground: var(--text-onAccent);
  --background: var(--surface-background);
  --border: var(--outline);
  --card: var(--surface-elevated);
  --card-foreground: var(--text-primary);
  --destructive: var(--surface-destructive);
  --destructive-foreground: var(--text-onDestructive);
  --foreground: var(--text-primary);
  --input: var(--outline);
  --muted: var(--surface-subtle);
  --muted-foreground: var(--text-secondary);
  --popover: var(--surface-elevated);
  --popover-foreground: var(--text-primary);
  --primary: var(--surface-brand);
  --primary-foreground: var(--text-onBrand);
  --radius: var(--radius-lg);
  --ring: var(--surface-brand);
  --secondary: var(--surface-subtle);
  --secondary-foreground: var(--text-primary);
  --sidebar: var(--surface-elevated);
  --sidebar-accent: var(--surface-subtle);
  --sidebar-accent-foreground: var(--text-primary);
  --sidebar-border: var(--outline);
  --sidebar-foreground: var(--text-primary);
  --sidebar-primary: var(--surface-brand);
  --sidebar-primary-foreground: var(--text-onBrand);
  --sidebar-ring: var(--surface-brand);
}

.dark {
  /* Dark-mode semantics */
  --outline: var(--color-neutral-600);
  --outlineVariant: var(--color-neutral-800);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.7);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.4);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.45), 0 2px 4px -2px rgb(0 0 0 / 0.35);
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.4);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.55), 0 8px 10px -6px rgb(0 0 0 / 0.4);
  --surface-accent: var(--color-accent-300);
  --surface-background: oklch(0.1822 0.0000 0.00);
  --surface-brand: var(--color-brand-400);
  --surface-destructive: var(--color-error-500);
  --surface-elevated: oklch(0.2178 0.0000 0.00);
  --surface-overlay: rgba(0,0,0,0.6);
  --surface-subtle: oklch(0.2350 0.0000 0.00);
  --surface-success: var(--color-success-500);
  --surface-warning: var(--color-warning-500);
  --text-brand: var(--color-brand-300);
  --text-onAccent: var(--color-accent-950);
  --text-onBrand: oklch(0.2633 0.0408 211.02);
  --text-onDestructive: oklch(0.1790 0.0734 29.23);
  --text-primary: oklch(0.9219 0.0000 0.00);
  --text-secondary: oklch(0.6993 0.0000 0.00);
  --text-tertiary: oklch(0.6268 0.0000 0.00);
  --voice-error: var(--color-error-500);
  --voice-idle: var(--color-neutral-700);
  --voice-listening: var(--color-brand-500);
  --voice-processing: var(--color-warning-500);
  --voice-speaking: var(--color-success-500);
}
