/* Flow Saúde — Design tokens (from Ayexa AI Design System) */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  /* Purple scale */
  --purple-50: oklch(0.96 0.02 301);
  --purple-100: oklch(0.91 0.045 300);
  --purple-200: oklch(0.85 0.08 299);
  --purple-300: oklch(0.78 0.13 298);
  --purple-400: oklch(0.70 0.18 297);
  --purple-500: oklch(0.62 0.225 296);
  --purple-600: oklch(0.535 0.235 295);
  --purple-700: oklch(0.45 0.21 294);
  --purple-800: oklch(0.36 0.17 294);
  --purple-900: oklch(0.27 0.12 294);

  /* Green scale */
  --green-50: oklch(0.96 0.035 152);
  --green-100: oklch(0.91 0.07 152);
  --green-200: oklch(0.86 0.11 151);
  --green-300: oklch(0.81 0.155 150);
  --green-400: oklch(0.775 0.18 149);
  --green-500: oklch(0.735 0.185 148);
  --green-600: oklch(0.63 0.175 148);
  --green-700: oklch(0.51 0.15 148);
  --green-800: oklch(0.39 0.11 148);
  --green-900: oklch(0.28 0.075 148);

  /* Neutral scale */
  --neutral-0: oklch(0.125 0.012 296);
  --neutral-25: oklch(0.15 0.013 296);
  --neutral-50: oklch(0.175 0.015 296);
  --neutral-100: oklch(0.215 0.017 296);
  --neutral-150: oklch(0.255 0.019 296);
  --neutral-200: oklch(0.30 0.02 296);
  --neutral-300: oklch(0.40 0.022 296);
  --neutral-400: oklch(0.535 0.02 296);
  --neutral-500: oklch(0.665 0.018 296);
  --neutral-600: oklch(0.775 0.014 296);
  --neutral-700: oklch(0.865 0.01 296);
  --neutral-800: oklch(0.93 0.006 296);
  --neutral-900: oklch(0.975 0.004 296);

  --red-500: oklch(0.63 0.22 26);
  --red-600: oklch(0.55 0.21 26);
  --amber-500: oklch(0.78 0.15 75);
  --amber-600: oklch(0.70 0.15 70);

  /* Semantic colors */
  --bg-page: var(--neutral-0);
  --bg-raised: var(--neutral-25);
  --bg-surface: var(--neutral-50);
  --bg-surface-hover: var(--neutral-100);
  --bg-card: var(--neutral-100);
  --bg-overlay: oklch(0.10 0.015 296 / 0.72);
  --border-subtle: var(--neutral-150);
  --border-default: var(--neutral-200);
  --border-strong: var(--neutral-300);
  --text-primary: var(--neutral-900);
  --text-secondary: var(--neutral-600);
  --text-tertiary: var(--neutral-400);
  --text-on-accent: oklch(0.99 0.005 296);
  --accent-primary: var(--purple-500);
  --accent-primary-hover: var(--purple-400);
  --accent-primary-active: var(--purple-600);
  --accent-secondary: var(--green-500);
  --accent-secondary-hover: var(--green-400);
  --accent-secondary-active: var(--green-600);
  --focus-ring: var(--purple-400);
  --success: var(--green-500);
  --warning: var(--amber-500);
  --danger: var(--red-500);
  --gradient-brand: linear-gradient(135deg, var(--purple-500) 0%, var(--purple-600) 45%, var(--green-500) 100%);
  --gradient-glow: radial-gradient(circle at 30% 20%, oklch(0.5 0.2 296 / 0.35), transparent 60%);

  /* Typography */
  --font-display: 'Sora', ui-sans-serif, system-ui, sans-serif;
  --font-body: 'Manrope', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --text-display-2xl: 600 64px/1.05 var(--font-display);
  --text-display-xl: 600 48px/1.08 var(--font-display);
  --text-display-lg: 600 36px/1.12 var(--font-display);
  --text-heading-lg: 600 28px/1.2 var(--font-display);
  --text-heading-md: 600 22px/1.3 var(--font-display);
  --text-heading-sm: 600 18px/1.35 var(--font-display);
  --text-body-lg: 400 18px/1.55 var(--font-body);
  --text-body-md: 400 16px/1.55 var(--font-body);
  --text-body-sm: 400 14px/1.5 var(--font-body);
  --text-caption: 500 12px/1.4 var(--font-body);
  --text-label: 600 13px/1.3 var(--font-body);
  --text-mono-md: 400 14px/1.6 var(--font-mono);
  --tracking-tight: -0.02em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;

  /* Spacing */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px; --space-32: 128px;

  /* Effects */
  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px; --radius-xl: 24px; --radius-pill: 999px;
  --shadow-sm: 0 1px 2px oklch(0.05 0.01 296 / 0.4);
  --shadow-md: 0 8px 20px -6px oklch(0.05 0.01 296 / 0.55);
  --shadow-lg: 0 20px 48px -12px oklch(0.05 0.01 296 / 0.65);
  --shadow-glow-purple: 0 0 0 1px oklch(0.62 0.225 296 / 0.35), 0 8px 32px -4px oklch(0.62 0.225 296 / 0.45);
  --shadow-glow-green: 0 0 0 1px oklch(0.735 0.185 148 / 0.3), 0 8px 28px -4px oklch(0.735 0.185 148 / 0.35);
  --focus-ring-shadow: 0 0 0 4px oklch(0.70 0.18 297 / 0.3);
  --blur-glass: blur(20px);
  --ease-standard: cubic-bezier(.22,.9,.32,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --duration-fast: 120ms;
  --duration-md: 220ms;
  --duration-slow: 360ms;
}

/* Base reset */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg-page);
  color: var(--text-primary);
  font: var(--text-body-md);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--purple-300); text-decoration: none; }
a:hover { color: var(--purple-200); }
h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--font-display); }
p { margin: 0; }
::selection { background: var(--purple-500); color: var(--text-on-accent); }
