:root {
  --background: 210 40% 98%;
  --foreground: 222 38% 12%;
  --primary: 259 84% 61%;
  --secondary: 192 78% 45%;
  --muted: 214 24% 92%;
  --destructive: 0 78% 58%;
  --border: 216 22% 84%;
  --card: 0 0% 100%;
  --shadow-sm: 0 8px 20px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 16px 40px rgba(15, 23, 42, 0.1);
  --shadow-lg: 0 24px 70px rgba(76, 29, 149, 0.18);
  --transition-fast: 150ms ease;
  --transition-smooth: 280ms cubic-bezier(0.4, 0, 0.2, 1);
  --radius-sm: 0.5rem;
  --radius-md: 0.9rem;
  --radius-lg: 1.4rem;
}

.dark {
  --background: 228 32% 8%;
  --foreground: 210 40% 96%;
  --primary: 262 86% 70%;
  --secondary: 189 85% 60%;
  --muted: 226 20% 17%;
  --destructive: 0 75% 62%;
  --border: 226 18% 24%;
  --card: 226 24% 12%;
  --shadow-sm: 0 10px 24px rgba(2, 8, 23, 0.28);
  --shadow-md: 0 20px 48px rgba(2, 8, 23, 0.42);
  --shadow-lg: 0 26px 80px rgba(124, 58, 237, 0.22);
}

* {
  box-sizing: border-box;
}

html, body, #root {
  height: 100%;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background:
    radial-gradient(circle at top left, hsla(var(--primary), 0.18), transparent 28%),
    radial-gradient(circle at top right, hsla(var(--secondary), 0.14), transparent 24%),
    hsl(var(--background));
}

::selection {
  background: hsla(var(--primary), 0.28);
}

a, button, input, select {
  transition: all var(--transition-fast);
}

.card-surface {
  background: linear-gradient(180deg, hsla(var(--card), 0.98), hsla(var(--card), 0.94));
  border: 1px solid hsl(var(--border));
  box-shadow: var(--shadow-sm);
}

.glass-panel {
  background: linear-gradient(135deg, hsla(var(--card), 0.88), hsla(var(--card), 0.72));
  backdrop-filter: blur(14px);
  border: 1px solid hsla(var(--border), 0.9);
}

.scrollbar-thin::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.scrollbar-thin::-webkit-scrollbar-track {
  background: transparent;
}

.scrollbar-thin::-webkit-scrollbar-thumb {
  background: hsla(var(--border), 0.9);
  border-radius: 999px;
}

.chart-wrap {
  position: relative;
  min-height: 300px;
}

@media (max-width: 640px) {
  .chart-wrap {
    min-height: 260px;
  }
}