:root {
  --background: 42 60% 97%;
  --foreground: 229 34% 16%;
  --primary: 18 93% 58%;
  --primary-foreground: 0 0% 100%;
  --secondary: 251 74% 62%;
  --secondary-foreground: 0 0% 100%;
  --muted: 36 30% 90%;
  --muted-foreground: 228 14% 43%;
  --destructive: 0 78% 58%;
  --destructive-foreground: 0 0% 100%;
  --border: 31 30% 84%;
  --card: 0 0% 100%;
  --card-foreground: 229 34% 16%;
  --accent: 171 72% 40%;
  --accent-foreground: 0 0% 100%;
  --shadow-sm: 0 6px 18px rgba(38, 31, 24, 0.08);
  --shadow-md: 0 16px 38px rgba(38, 31, 24, 0.12);
  --shadow-lg: 0 28px 70px rgba(38, 31, 24, 0.18);
  --transition-fast: 160ms ease;
  --transition-smooth: 260ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 30px;
}
.dark {
  --background: 229 34% 10%;
  --foreground: 42 60% 96%;
  --primary: 18 93% 62%;
  --primary-foreground: 0 0% 100%;
  --secondary: 251 74% 70%;
  --secondary-foreground: 229 34% 10%;
  --muted: 229 20% 18%;
  --muted-foreground: 42 18% 72%;
  --destructive: 0 78% 64%;
  --destructive-foreground: 0 0% 100%;
  --border: 229 18% 24%;
  --card: 229 28% 14%;
  --card-foreground: 42 60% 96%;
  --accent: 171 72% 46%;
  --accent-foreground: 229 34% 10%;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: hsl(var(--background)); }
body {
  min-height: 100%;
  margin: 0;
  background:
    radial-gradient(circle at 15% 5%, hsl(var(--primary) / 0.16), transparent 28rem),
    radial-gradient(circle at 90% 12%, hsl(var(--secondary) / 0.14), transparent 24rem),
    linear-gradient(180deg, hsl(var(--background)), hsl(var(--background)));
  color: hsl(var(--foreground));
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
input, textarea, select { font-size: max(16px, 1rem); }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid hsl(var(--secondary) / 0.38);
  outline-offset: 3px;
}
.safe-page { padding-top: calc(env(safe-area-inset-top) + 14px); padding-bottom: calc(env(safe-area-inset-bottom) + 92px); }
.glass-card { background: hsl(var(--card) / 0.82); backdrop-filter: blur(18px); border: 1px solid hsl(var(--border) / 0.72); box-shadow: var(--shadow-sm); }
.soft-card { background: hsl(var(--card)); border: 1px solid hsl(var(--border)); box-shadow: var(--shadow-sm); }
.gradient-primary { background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary))); }
.animate-rise { transition: transform var(--transition-smooth), box-shadow var(--transition-smooth), border-color var(--transition-smooth); }
.animate-rise:active { transform: scale(0.985); }
@media (min-width: 640px) { .animate-rise:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }