:root {
  --background: 224 30% 97%;
  --foreground: 224 32% 10%;
  --primary: 153 87% 58%;
  --secondary: 215 91% 64%;
  --muted: 222 14% 44%;
  --destructive: 0 78% 58%;
  --border: 224 22% 84%;
  --card: 0 0% 100%;

  --shadow-sm: 0 10px 24px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 18px 48px rgba(15, 23, 42, 0.12);
  --shadow-lg: 0 28px 72px rgba(15, 23, 42, 0.18);

  --transition-fast: 160ms ease;
  --transition-smooth: 280ms cubic-bezier(0.22, 1, 0.36, 1);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
}

.dark {
  --background: 225 24% 8%;
  --foreground: 210 20% 96%;
  --primary: 153 88% 60%;
  --secondary: 212 90% 68%;
  --muted: 220 10% 68%;
  --destructive: 0 80% 65%;
  --border: 224 16% 22%;
  --card: 224 20% 12%;

  --shadow-sm: 0 10px 24px rgba(0, 0, 0, 0.22);
  --shadow-md: 0 18px 48px rgba(0, 0, 0, 0.32);
  --shadow-lg: 0 28px 72px rgba(0, 0, 0, 0.45);
}

* {
  box-sizing: border-box;
}

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

body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  transition: background var(--transition-smooth), color var(--transition-smooth);
}

.glass-panel {
  background: linear-gradient(180deg, hsl(var(--card) / 0.92), hsl(var(--card) / 0.74));
  backdrop-filter: blur(18px);
}

button,
input,
select {
  transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);
}

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

::-webkit-scrollbar-track {
  background: hsl(var(--background));
}

::-webkit-scrollbar-thumb {
  background: hsl(var(--border));
  border-radius: 999px;
}

input[type='range'] {
  width: 100%;
}

input[type='range']::-webkit-slider-thumb {
  box-shadow: var(--shadow-sm);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}