:root {
  --background: 28 18% 96%;
  --foreground: 24 18% 7%;
  --primary: 43 96% 56%;
  --secondary: 18 72% 44%;
  --muted: 28 14% 88%;
  --muted-foreground: 24 10% 35%;
  --destructive: 0 76% 54%;
  --border: 28 12% 78%;
  --card: 30 18% 99%;
  --shadow-sm: 0 4px 18px rgba(0,0,0,.08);
  --shadow-md: 0 14px 45px rgba(0,0,0,.14);
  --shadow-lg: 0 28px 90px rgba(0,0,0,.28);
  --transition-fast: 150ms ease;
  --transition-smooth: 420ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 32px;
}
.dark {
  --background: 24 16% 4%;
  --foreground: 34 30% 94%;
  --primary: 43 96% 58%;
  --secondary: 16 76% 50%;
  --muted: 24 12% 13%;
  --muted-foreground: 28 10% 70%;
  --destructive: 0 78% 61%;
  --border: 24 12% 20%;
  --card: 24 15% 8%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: hsl(var(--background)); color: hsl(var(--foreground)); }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid hsl(var(--primary)); outline-offset: 3px; }
.input { width: 100%; min-height: 52px; border-radius: var(--radius-md); border: 1px solid hsl(var(--border)); background: hsl(var(--background)); color: hsl(var(--foreground)); padding: 0.9rem 1rem; font-size: max(16px, 1rem); }
.input::placeholder { color: hsl(var(--muted-foreground)); }
.input:focus { border-color: hsl(var(--primary)); }
.animate-fade { animation: fadeIn var(--transition-smooth); }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
genmb-uploader { display: block; min-height: 180px; border-radius: var(--radius-lg); overflow: hidden; }
.bg-1 { background: hsl(var(--background)); }
.bg-2 { background: hsl(var(--card)); }
.bg-3 { background: hsl(var(--muted)); }
.bg-4 { background: hsl(var(--primary)); }
.text-primary { color: hsl(var(--foreground)); }
.text-secondary { color: hsl(var(--muted-foreground)); }
.text-tertiary { color: hsl(var(--primary)); }
.accent { color: hsl(var(--primary)); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; scroll-behavior: auto !important; } }