:root {
  --color-bg: #f3f7fb;
  --color-surface: #ffffff;
  --color-surface-muted: #eef4fb;
  --color-text: #102132;
  --color-text-muted: #4f6173;
  --color-primary: #0f5ea8;
  --color-primary-contrast: #ffffff;
  --color-secondary: #2e8fd8;
  --color-border: rgba(16, 33, 50, 0.12);
  --color-focus: #0f5ea8;

  --font-sans: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
  --font-heading: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-md: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: 2rem;
  --line-height-tight: 1.15;
  --line-height-base: 1.65;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;

  --container-max: 1160px;
  --container-gutter: 1rem;
  --radius-sm: 0.5rem;
  --radius-md: 0.875rem;
  --radius-lg: 1.25rem;
  --radius-pill: 999px;

  --shadow-sm: 0 4px 14px rgba(16, 33, 50, 0.06);
  --shadow-md: 0 12px 34px rgba(15, 94, 168, 0.12);
}

body {
  font-family: var(--font-sans);
  font-size: var(--font-size-md);
  line-height: var(--line-height-base);
  color: var(--color-text);
  background: linear-gradient(180deg, #f9fbfe 0%, #f3f7fb 50%, #eef3fa 100%);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-heading);
  line-height: var(--line-height-tight);
  letter-spacing: -0.02em;
  color: var(--color-text);
}

p {
  color: var(--color-text-muted);
}

a {
  color: var(--color-primary);
  transition: all 160ms ease;
}

a:hover {
  color: #0a4c88;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--color-focus);
  outline-offset: 2px;
}
