@import 'tailwindcss';

@plugin '@tailwindcss/typography';
@plugin 'tailwindcss-animate';

@custom-variant dark (&:is(.dark *));

:root {
  --background: 0 0% 100%;
  --foreground: 240 10% 3.9%;
  --card: 0 0% 100%;
  --card-foreground: 240 10% 3.9%;
  --popover: 0 0% 100%;
  --popover-foreground: 240 10% 3.9%;
  --primary: 240 5.9% 10%;
  --primary-foreground: 0 0% 98%;
  --secondary: 240 4.8% 95.9%;
  --secondary-foreground: 240 5.9% 10%;
  --muted: 240 4.8% 95.9%;
  --muted-foreground: 240 3.8% 46.1%;
  --accent: 240 4.8% 95.9%;
  --accent-foreground: 240 5.9% 10%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 0 0% 98%;
  --border: 240 5.9% 90%;
  --input: 240 5.9% 90%;
  --ring: 240 10% 3.9%;
  --chart-1: 12 76% 61%;
  --chart-2: 173 58% 39%;
  --chart-3: 197 37% 24%;
  --chart-4: 43 74% 66%;
  --chart-5: 27 87% 67%;
  --radius: 0.5rem;
}

.dark {
  --background: 240 10% 3.9%;
  --foreground: 0 0% 98%;
  --card: 240 10% 3.9%;
  --card-foreground: 0 0% 98%;
  --popover: 240 10% 3.9%;
  --popover-foreground: 0 0% 98%;
  --primary: 0 0% 98%;
  --primary-foreground: 240 5.9% 10%;
  --secondary: 240 3.7% 15.9%;
  --secondary-foreground: 0 0% 98%;
  --muted: 240 3.7% 15.9%;
  --muted-foreground: 240 5% 64.9%;
  --accent: 240 3.7% 15.9%;
  --accent-foreground: 0 0% 98%;
  --destructive: 0 62.8% 30.6%;
  --destructive-foreground: 0 0% 98%;
  --border: 240 3.7% 15.9%;
  --input: 240 3.7% 15.9%;
  --ring: 240 4.9% 83.9%;
  --chart-1: 220 70% 50%;
  --chart-2: 160 60% 45%;
  --chart-3: 30 80% 55%;
  --chart-4: 280 65% 60%;
  --chart-5: 340 75% 55%;
}

@theme inline {
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --color-background: hsl(var(--background));
  --color-foreground: hsl(var(--foreground));
  --color-card: hsl(var(--card));
  --color-card-foreground: hsl(var(--card-foreground));
  --color-popover: hsl(var(--popover));
  --color-popover-foreground: hsl(var(--popover-foreground));
  --color-primary: hsl(var(--primary));
  --color-primary-foreground: hsl(var(--primary-foreground));
  --color-secondary: hsl(var(--secondary));
  --color-secondary-foreground: hsl(var(--secondary-foreground));
  --color-muted: hsl(var(--muted));
  --color-muted-foreground: hsl(var(--muted-foreground));
  --color-accent: hsl(var(--accent));
  --color-accent-foreground: hsl(var(--accent-foreground));
  --color-destructive: hsl(var(--destructive));
  --color-destructive-foreground: hsl(var(--destructive-foreground));
  --color-border: hsl(var(--border));
  --color-input: hsl(var(--input));
  --color-ring: hsl(var(--ring));
  --color-chart-1: hsl(var(--chart-1));
  --color-chart-2: hsl(var(--chart-2));
  --color-chart-3: hsl(var(--chart-3));
  --color-chart-4: hsl(var(--chart-4));
  --color-chart-5: hsl(var(--chart-5));
  --animate-sqlrooms-progress: sqlrooms-progress 1s infinite linear;
}

@keyframes sqlrooms-progress {
  0% {
    transform: translateX(0) scaleX(0);
  }
  40% {
    transform: translateX(0) scaleX(0.4);
  }
  100% {
    transform: translateX(100%) scaleX(0.5);
  }
}

@layer base {
  * {
    @apply border-border;
  }

  body {
    @apply bg-background text-foreground;
  }
}

@layer components {
  .prose :where(ul, ol) {
    padding-left: 1.5em;
    margin-top: 0.75em;
    margin-bottom: 0.75em;
  }

  .prose :where(ul > li, ol > li) {
    margin-top: 0.25em;
    margin-bottom: 0.25em;
  }

  .prose :where(pre) {
    background-color: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
    border-radius: var(--radius);
    padding: 1em;
    overflow-x: auto;
  }

  .prose :where(code) {
    background-color: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
    border-radius: 0.25em;
    padding: 0.2em 0.4em;
    font-size: 0.875em;
  }

  .prose :where(blockquote) {
    border-left-color: hsl(var(--border));
    font-style: normal;
    color: hsl(var(--muted-foreground));
  }

  .prose :where(h1, h2, h3, h4, h5, h6) {
    color: hsl(var(--foreground));
    font-weight: 600;
  }

  .prose :where(a) {
    color: hsl(var(--primary));
    text-decoration: none;
  }

  .prose :where(a:hover) {
    text-decoration: underline;
  }

  .prose :where(table) {
    width: 100%;
    table-layout: auto;
    text-align: left;
    border-collapse: collapse;
  }

  .prose :where(th) {
    font-weight: 600;
    border-bottom-width: 2px;
    border-color: hsl(var(--border));
    padding: 0.5em;
  }

  .prose :where(td) {
    border-bottom-width: 1px;
    border-color: hsl(var(--border));
    padding: 0.5em;
  }

  .prose.prose-invert,
  .dark .prose {
    color: hsl(var(--foreground));
  }

  .prose.prose-invert :where(pre),
  .dark .prose :where(pre),
  .prose.prose-invert :where(code),
  .dark .prose :where(code) {
    background-color: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
  }

  .prose.prose-invert :where(h1, h2, h3, h4, h5, h6),
  .dark .prose :where(h1, h2, h3, h4, h5, h6) {
    color: hsl(var(--foreground));
  }

  .prose.prose-invert :where(blockquote),
  .dark .prose :where(blockquote) {
    border-left-color: hsl(var(--border));
    color: hsl(var(--muted-foreground));
  }
}
