:root {
  --background: 216 42% 97%;
  --foreground: 221 48% 12%;
  --primary: 174 84% 38%;
  --primary-foreground: 0 0% 100%;
  --secondary: 228 63% 55%;
  --secondary-foreground: 0 0% 100%;
  --muted: 216 22% 90%;
  --muted-foreground: 219 16% 42%;
  --destructive: 356 76% 56%;
  --destructive-foreground: 0 0% 100%;
  --border: 216 24% 84%;
  --card: 0 0% 100%;
  --card-foreground: 221 48% 12%;
  --accent: 45 96% 56%;
  --success: 151 67% 42%;
  --warning: 35 94% 53%;
  --shadow-sm: 0 6px 18px rgba(7, 17, 31, 0.08);
  --shadow-md: 0 14px 42px rgba(7, 17, 31, 0.12);
  --shadow-lg: 0 26px 70px rgba(7, 17, 31, 0.18);
  --transition-fast: 140ms ease;
  --transition-smooth: 260ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 28px;
}
.dark {
  --background: 217 49% 7%;
  --foreground: 210 32% 96%;
  --primary: 174 84% 46%;
  --primary-foreground: 218 48% 8%;
  --secondary: 231 78% 66%;
  --secondary-foreground: 0 0% 100%;
  --muted: 217 28% 16%;
  --muted-foreground: 216 18% 70%;
  --destructive: 356 78% 63%;
  --destructive-foreground: 0 0% 100%;
  --border: 217 26% 22%;
  --card: 218 42% 11%;
  --card-foreground: 210 32% 96%;
  --accent: 45 96% 60%;
  --success: 151 70% 48%;
  --warning: 35 96% 58%;
  --shadow-sm: 0 6px 18px rgba(0,0,0,.22);
  --shadow-md: 0 14px 42px rgba(0,0,0,.34);
  --shadow-lg: 0 26px 70px rgba(0,0,0,.46);
}
* { box-sizing: border-box; }
html { min-height: 100%; background: hsl(var(--background)); }
body { margin: 0; min-height: 100%; background: radial-gradient(circle at top left, hsl(var(--primary) / .16), transparent 34%), radial-gradient(circle at 80% 20%, hsl(var(--secondary) / .15), transparent 30%), hsl(var(--background)); color: hsl(var(--foreground)); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
input, select { font-size: max(16px, 1rem); }
button { min-height: 44px; }
.safe-bottom { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
.glass { background: hsl(var(--card) / .78); border: 1px solid hsl(var(--border) / .72); backdrop-filter: blur(18px); box-shadow: var(--shadow-sm); }
.card { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.focus-ring:focus-visible { outline: 3px solid hsl(var(--primary) / .42); outline-offset: 2px; }
.chart-line { stroke-dasharray: 520; animation: draw 1.4s ease both; }
@keyframes draw { from { stroke-dashoffset: 520; } to { stroke-dashoffset: 0; } }
.pulse-soft { animation: pulseSoft 2.4s ease-in-out infinite; }
@keyframes pulseSoft { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.04); opacity: .78; } }
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }