:root {
  --berry-purple: #7C3AED;
  --berry-pink: #EC4899;
  --berry-gradient: linear-gradient(135deg, #7C3AED 0%, #EC4899 100%);
  --success: #10B981;
  --warning: #F59E0B;
  --danger: #EF4444;
  --dark-bg: #0F0B1A;
  --dark-card: #1A1528;
  --light-bg: #FAF5FF;
  --light-card: #FFFFFF;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html, body {
  height: 100%;
}

body {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--dark-bg);
  min-height: 100vh;
  overflow-x: hidden;
}

body.light {
  background: var(--light-bg);
}

#root {
  min-height: 100vh;
}

.font-mono {
  font-family: 'Space Mono', monospace;
}

@keyframes confetti-fall {
  0% { transform: translateY(-100vh) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

.confetti {
  position: fixed;
  width: 10px;
  height: 10px;
  top: -10px;
  animation: confetti-fall 3s linear forwards;
  z-index: 9999;
  pointer-events: none;
}

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

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

::-webkit-scrollbar-thumb {
  background: rgba(124, 58, 237, 0.3);
  border-radius: 2px;
}

input:focus, select:focus, textarea:focus {
  outline: none;
}

.safe-area-bottom {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.overflow-x-auto {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.overflow-x-auto::-webkit-scrollbar {
  display: none;
}

@media (max-width: 640px) {
  html {
    font-size: 15px;
  }
}

@media (max-width: 375px) {
  html {
    font-size: 14px;
  }
}