/* Preset: swiss-precision
 * Generated from Swiss Precision tokens.
 * Do not edit — regenerate: npx tsx scripts/generate-theme-presets.ts
 */

/* Swiss Precision — Design Tokens
 * Created 2026-04-06
 * Replaces Zurich Warm. Monochrome-first, color-earned.
 * Zinc scale foundation. Amber accent. Governance semantic colors.
 */

:root {
  /* === Primitive Colors — Zinc Scale === */
  --primitive-color-zinc-50: #FAFAFA;
  --primitive-color-zinc-100: #F4F4F5;
  --primitive-color-zinc-200: #E4E4E7;
  --primitive-color-zinc-300: #D4D4D8;
  --primitive-color-zinc-400: #A1A1AA;
  --primitive-color-zinc-500: #71717A;
  --primitive-color-zinc-600: #52525B;
  --primitive-color-zinc-700: #3F3F46;
  --primitive-color-zinc-800: #27272A;
  --primitive-color-zinc-900: #18181B;
  --primitive-color-zinc-950: #09090B;

  /* Amber (accent) */
  --primitive-color-amber-50: #FFFBEB;
  --primitive-color-amber-100: #FEF3C7;
  --primitive-color-amber-200: #FDE68A;
  --primitive-color-amber-300: #FCD34D;
  --primitive-color-amber-400: #FBBF24;
  --primitive-color-amber-500: #F59E0B;
  --primitive-color-amber-600: #D97706;
  --primitive-color-amber-700: #B45309;
  --primitive-color-amber-800: #92400E;
  --primitive-color-amber-900: #78350F;

  /* Emerald (governance green) */
  --primitive-color-emerald-400: #34D399;
  --primitive-color-emerald-500: #10B981;
  --primitive-color-emerald-600: #059669;
  --primitive-color-emerald-700: #047857;

  /* Red (tension/veto) */
  --primitive-color-red-400: #F87171;
  --primitive-color-red-500: #EF4444;
  --primitive-color-red-600: #DC2626;
  --primitive-color-red-700: #B91C1C;

  /* Blue (info) */
  --primitive-color-blue-400: #60A5FA;
  --primitive-color-blue-500: #3B82F6;
  --primitive-color-blue-600: #2563EB;

  /* Violet (chart accent) */
  --primitive-color-violet-500: #8B5CF6;

  /* Rose (chart accent) */
  --primitive-color-rose-500: #F43F5E;

  /* === Typography === */
  --primitive-typography-family-heading: "Instrument Serif", "Georgia", serif;
  --primitive-typography-family-body: "Instrument Sans", system-ui, sans-serif;
  --primitive-typography-family-mono: "JetBrains Mono", "SF Mono", monospace;
  --primitive-typography-size-xs: 0.75rem;
  --primitive-typography-size-sm: 0.875rem;
  --primitive-typography-size-base: 1rem;
  --primitive-typography-size-lg: 1.125rem;
  --primitive-typography-size-xl: 1.25rem;
  --primitive-typography-size-2xl: 1.5rem;
  --primitive-typography-size-3xl: 1.875rem;
  --primitive-typography-size-4xl: 2.25rem;
  --primitive-typography-weight-normal: 400;
  --primitive-typography-weight-medium: 500;
  --primitive-typography-weight-semibold: 600;
  --primitive-typography-weight-bold: 700;
  --primitive-typography-lineHeight-tight: 1.25;
  --primitive-typography-lineHeight-normal: 1.5;
  --primitive-typography-lineHeight-relaxed: 1.75;

  /* === Spacing (4px base) === */
  --primitive-spacing-0: 0px;
  --primitive-spacing-0-5: 2px;
  --primitive-spacing-1: 4px;
  --primitive-spacing-1-5: 6px;
  --primitive-spacing-2: 8px;
  --primitive-spacing-3: 12px;
  --primitive-spacing-4: 16px;
  --primitive-spacing-5: 20px;
  --primitive-spacing-6: 24px;
  --primitive-spacing-8: 32px;
  --primitive-spacing-10: 40px;
  --primitive-spacing-12: 48px;
  --primitive-spacing-16: 64px;
  --primitive-spacing-20: 80px;
  --primitive-spacing-24: 96px;

  /* === Border Radius (precise, not soft) === */
  --primitive-radius-none: 0px;
  --primitive-radius-sm: 4px;
  --primitive-radius-md: 6px;
  --primitive-radius-lg: 8px;
  --primitive-radius-xl: 12px;
  --primitive-radius-2xl: 16px;
  --primitive-radius-full: 9999px;

  /* === Motion === */
  --primitive-duration-fast: 100ms;
  --primitive-duration-normal: 150ms;
  --primitive-duration-slow: 250ms;
  --primitive-duration-slower: 400ms;
  --primitive-easing-default: cubic-bezier(0.4, 0, 0.2, 1);
  --primitive-easing-in: cubic-bezier(0.4, 0, 1, 1);
  --primitive-easing-out: cubic-bezier(0, 0, 0.2, 1);
  --primitive-easing-in-out: cubic-bezier(0.4, 0, 0.2, 1);

  /* === Shadows === */
  --primitive-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --primitive-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --primitive-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --primitive-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);

  /* === Semantic Tokens (Light) === */
  --background-canvas: #FAFAFA;
  --background-surface: #FFFFFF;
  --background-elevated: #FFFFFF;
  --background-sunken: #F4F4F5;
  --background-muted: #E4E4E7;
  --background-inverse: #09090B;

  --text-primary: #09090B;
  --text-secondary: #3F3F46;
  --text-muted: #71717A;
  --text-ghost: #A1A1AA;
  --text-inverse: #FAFAFA;
  --text-link: #D97706;
  --text-link-hover: #B45309;

  --border-default: #E4E4E7;
  --border-strong: #A1A1AA;
  --border-subtle: #F4F4F5;
  --border-focus: #D97706;

  --interactive-primary: #D97706;
  --interactive-primary-hover: #B45309;
  --interactive-primary-active: #92400E;
  --interactive-secondary: #2563EB;
  --interactive-secondary-hover: #1D4ED8;
  --interactive-destructive: #DC2626;
  --interactive-destructive-hover: #B91C1C;

  --status-error: #DC2626;
  --status-success: #059669;
  --status-warning: #D97706;
  --status-info: #2563EB;
  --status-error-bg: rgba(220, 38, 38, 0.08);
  --status-success-bg: rgba(5, 150, 105, 0.08);
  --status-warning-bg: rgba(217, 119, 6, 0.08);
  --status-info-bg: rgba(37, 99, 235, 0.08);

  --focus-ring: #D97706;
  --accessibility-focus-visible: #D97706;

  --tier-t0: #D97706;
  --tier-t1: #2563EB;
  --tier-t2: #059669;

  --chart-1: #D97706;
  --chart-2: #2563EB;
  --chart-3: #059669;
  --chart-4: #8B5CF6;
  --chart-5: #F43F5E;

  --stance-support: #059669;
  --stance-object: #DC2626;
  --stance-conditional: #D97706;
  --stance-neutral: #71717A;
}

/* Dark mode */
.dark, [data-theme="dark"] {
  --background-canvas: #09090B;
  --background-surface: #18181B;
  --background-elevated: #27272A;
  --background-sunken: #09090B;
  --background-muted: #27272A;
  --background-inverse: #FAFAFA;

  --text-primary: #FAFAFA;
  --text-secondary: #D4D4D8;
  --text-muted: #A1A1AA;
  --text-ghost: #71717A;
  --text-inverse: #09090B;
  --text-link: #F59E0B;
  --text-link-hover: #FBBF24;

  --border-default: #3F3F46;
  --border-strong: #52525B;
  --border-subtle: #27272A;
  --border-focus: #F59E0B;

  --interactive-primary: #F59E0B;
  --interactive-primary-hover: #FBBF24;
  --interactive-primary-active: #FCD34D;
  --interactive-secondary: #3B82F6;
  --interactive-secondary-hover: #60A5FA;
  --interactive-destructive: #EF4444;
  --interactive-destructive-hover: #F87171;

  --status-error: #EF4444;
  --status-success: #10B981;
  --status-warning: #F59E0B;
  --status-info: #3B82F6;
  --status-error-bg: rgba(239, 68, 68, 0.1);
  --status-success-bg: rgba(16, 185, 129, 0.1);
  --status-warning-bg: rgba(245, 158, 11, 0.1);
  --status-info-bg: rgba(59, 130, 246, 0.1);

  --focus-ring: #F59E0B;
  --accessibility-focus-visible: #F59E0B;

  --tier-t0: #F59E0B;
  --tier-t1: #3B82F6;
  --tier-t2: #10B981;

  --chart-1: #F59E0B;
  --chart-2: #3B82F6;
  --chart-3: #10B981;
  --chart-4: #A78BFA;
  --chart-5: #FB7185;

  --stance-support: #10B981;
  --stance-object: #EF4444;
  --stance-conditional: #F59E0B;
  --stance-neutral: #A1A1AA;
}


/* shadcn HSL bridge — light */
:root {
  --background: 0 0% 98%;
  --foreground: 240 10% 4%;
  --card: 0 0% 100%;
  --card-foreground: 240 10% 4%;
  --popover: 0 0% 100%;
  --popover-foreground: 240 10% 4%;
  --primary: 32 95% 44%;
  --primary-foreground: 0 0% 98%;
  --secondary: 240 5% 96%;
  --secondary-foreground: 240 5% 26%;
  --muted: 240 6% 90%;
  --muted-foreground: 240 4% 46%;
  --accent: 240 6% 90%;
  --accent-foreground: 240 10% 4%;
  --destructive: 0 72% 51%;
  --destructive-foreground: 0 0% 98%;
  --border: 240 6% 90%;
  --input: 240 6% 90%;
  --ring: 32 95% 44%;
}

/* shadcn HSL bridge — dark */
.dark, [data-theme="dark"] {
  --background: 240 10% 4%;
  --foreground: 0 0% 98%;
  --card: 240 6% 10%;
  --card-foreground: 0 0% 98%;
  --popover: 240 4% 16%;
  --popover-foreground: 0 0% 98%;
  --primary: 38 92% 50%;
  --primary-foreground: 240 10% 4%;
  --secondary: 240 10% 4%;
  --secondary-foreground: 240 5% 84%;
  --muted: 240 4% 16%;
  --muted-foreground: 240 5% 65%;
  --accent: 240 4% 16%;
  --accent-foreground: 0 0% 98%;
  --destructive: 0 84% 60%;
  --destructive-foreground: 240 10% 4%;
  --border: 240 5% 26%;
  --input: 240 5% 26%;
  --ring: 38 92% 50%;
}