:root {
  /* Abstractions */
  --color-bg: white;
  --color-text: var(--zinc-950);
  --color-text-reversed: white;
  --color-text-subtle: var(--zinc-500);
  --color-link: var(--blue-700);
  --color-border-light: var(--zinc-100);
  --color-border: var(--zinc-200);
  --color-border-dark: var(--zinc-400);
  --color-selected: var(--sky-100);
  --color-selected-dark: var(--blue-300);
  --color-highlight: var(--yellow-200);

  /* Accent colors */
  --color-primary: var(--zinc-900);
  --color-secondary: var(--zinc-100);
  --color-negative: var(--red-600);
  --color-positive: var(--green-600);

  &[data-color-scheme="dark"] {
    --color-bg: var(--zinc-950);
    --color-text: white;
    --color-text-reversed: var(--zinc-950);
    --color-text-subtle: var(--zinc-400);
    --color-link: var(--blue-400);
    --color-border-light: var(--zinc-800);
    --color-border: var(--zinc-700);
    --color-border-dark: var(--zinc-600);
    --color-selected: var(--sky-950);
    --color-selected-dark: var(--blue-800);
    --color-highlight: var(--yellow-900);

    --color-primary: var(--zinc-50);
    --color-secondary: var(--zinc-800);
    --color-negative: var(--red-800);
    --color-positive: var(--green-800);
  }
}

* {
  border-color: var(--color-border);
  scrollbar-color: #C1C1C1 transparent;
  scrollbar-width: thin;
}

html {
  scroll-behavior: smooth;
}

body {
  /* Antialiased fonts */
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;

  /* Default styles */
  background-color: var(--color-bg);
  color: var(--color-text);
  font-synthesis-weight: none;
  overscroll-behavior: none;
  text-rendering: optimizeLegibility;
}

.turbo-progress-bar {
  background-color: var(--color-primary);
}

::selection {
  background-color: var(--color-selected);
}
