:root {
  --background: 0 0% 100%;
  --foreground: 20 14.3% 4.1%;
  --card: 0 0% 100%;
  --card-foreground: 20 14.3% 4.1%;
  --popover: 0 0% 100%;
  --popover-foreground: 20 14.3% 4.1%;
  --primary: 24.6 95% 53.1%;
  --primary-foreground: 60 9.1% 97.8%;
  --secondary: 60 4.8% 95.9%;
  --secondary-foreground: 24 9.8% 10%;
  --muted: 60 4.8% 95.9%;
  --muted-foreground: 25 5.3% 44.7%;
  --accent: 60 4.8% 95.9%;
  --accent-foreground: 24 9.8% 10%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 60 9.1% 97.8%;
  --border: 20 5.9% 90%;
  --input: 20 5.9% 90%;
  --ring: 24.6 95% 53.1%;
  --radius: 0.5rem;
  --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%;
}

.dark {
  --background: 20 14.3% 4.1%;
  --foreground: 60 9.1% 97.8%;
  --card: 20 14.3% 4.1%;
  --card-foreground: 60 9.1% 97.8%;
  --popover: 20 14.3% 4.1%;
  --popover-foreground: 60 9.1% 97.8%;
  --primary: 20.5 90.2% 48.2%;
  --primary-foreground: 60 9.1% 97.8%;
  --secondary: 12 6.5% 15.1%;
  --secondary-foreground: 60 9.1% 97.8%;
  --muted: 12 6.5% 15.1%;
  --muted-foreground: 24 5.4% 63.9%;
  --accent: 12 6.5% 15.1%;
  --accent-foreground: 60 9.1% 97.8%;
  --destructive: 0 72.2% 50.6%;
  --destructive-foreground: 60 9.1% 97.8%;
  --border: 12 6.5% 15.1%;
  --input: 12 6.5% 15.1%;
  --ring: 20.5 90.2% 48.2%;
  --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%;
}

* {
  box-sizing: border-box;
  border-color: hsl(var(--border));
}

html,
body {
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body {
  background:
    radial-gradient(circle at 12% -12%, hsl(var(--primary) / 0.12) 0%, transparent 35%),
    radial-gradient(circle at 100% 0%, hsl(var(--primary) / 0.08) 0%, transparent 28%),
    hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: "Avenir Next", "Segoe UI", "Inter", sans-serif;
  line-height: 1.5;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

.toast-stack {
  position: fixed;
  left: 16px;
  bottom: 16px;
  z-index: 100;
  display: grid;
  gap: 8px;
}

.toast {
  border: 1px solid;
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.15);
  min-width: 250px;
  max-width: min(420px, 88vw);
  transition: opacity 180ms ease, transform 180ms ease;
  background: hsl(var(--card));
  color: hsl(var(--foreground));
}

.toast-success {
  border-color: rgb(16 185 129 / 0.6);
  border-left: 3px solid rgb(16 185 129);
}

.toast-error {
  border-color: hsl(var(--destructive) / 0.7);
  border-left: 3px solid hsl(var(--destructive));
}

.toast-warning {
  border-color: rgb(245 158 11 / 0.6);
  border-left: 3px solid rgb(245 158 11);
}

.toast-info {
  border-color: rgb(14 165 233 / 0.6);
  border-left: 3px solid rgb(14 165 233);
}

.prose pre {
  background-color: hsl(var(--muted) / 0.75);
  color: hsl(var(--foreground));
}

.prose pre code {
  color: inherit;
}

.dark .prose pre {
  background-color: hsl(var(--muted) / 0.65);
}
