@tailwind base;
@tailwind components;
@tailwind utilities;

/* CSS Custom Properties for Configurable Colors */
:root {
  --color-primary: #3B82F6;
  --color-secondary: #8B5CF6;
  --color-accent: #F59E0B;
  --color-background-primary: #FFFFFF;
  --color-background-secondary: #F9FAFB;
  --color-background-tertiary: #F3F4F6;
  --color-text-primary: #111827;
  --color-text-secondary: #374151;
  --color-text-muted: #6B7280;
  --color-border: #E5E7EB;
}

/* Dark mode overrides can be added here if needed */
.dark {
  --color-primary: #60A5FA;
  --color-secondary: #A78BFA;
  --color-accent: #FBBF24;
  --color-background-primary: #111827;
  --color-background-secondary: #1F2937;
  --color-background-tertiary: #374151;
  --color-text-primary: #F9FAFB;
  --color-text-secondary: #D1D5DB;
  --color-text-muted: #9CA3AF;
  --color-border: #374151;
}

@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 222.2 84% 4.9%;
    --primary: 262 83% 58%;
    --primary-foreground: 210 40% 98%;
    --secondary: 210 40% 96%;
    --secondary-foreground: 222.2 84% 4.9%;
    --muted: 210 40% 96%;
    --muted-foreground: 215.4 16.3% 46.9%;
    --accent: 210 40% 96%;
    --accent-foreground: 222.2 84% 4.9%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
    --ring: 262 83% 58%;
    --radius: 0.75rem;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 24%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
  }

  .dark {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
    --card: 222.2 84% 4.9%;
    --card-foreground: 210 40% 98%;
    --popover: 222.2 84% 4.9%;
    --popover-foreground: 210 40% 98%;
    --primary: 262 83% 58%;
    --primary-foreground: 210 40% 98%;
    --secondary: 217.2 32.6% 17.5%;
    --secondary-foreground: 210 40% 98%;
    --muted: 217.2 32.6% 17.5%;
    --muted-foreground: 215 20.2% 65.1%;
    --accent: 217.2 32.6% 17.5%;
    --accent-foreground: 210 40% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 40% 98%;
    --border: 217.2 32.6% 17.5%;
    --input: 217.2 32.6% 17.5%;
    --ring: 262 83% 58%;
    --chart-1: 220 70% 50%;
    --chart-2: 160 60% 45%;
    --chart-3: 30 80% 55%;
    --chart-4: 280 65% 60%;
    --chart-5: 340 75% 55%;
  }
}

@layer base {
  * {
    @apply border-border;
  }
  body {
    @apply bg-background text-foreground;
    font-feature-settings: "rlig" 1, "calt" 1;
  }
}

/* Modern button components */
.btn-primary {
  @apply bg-gradient-to-r from-primary to-purple-600 text-white hover:from-primary/90 hover:to-purple-600/90 rounded-2xl px-6 py-3 font-semibold transition-all duration-300 shadow-lg hover:shadow-xl transform hover:scale-105;
}

.btn-outline {
  @apply bg-white/80 backdrop-blur-sm text-gray-700 border border-gray-200/50 hover:bg-white/90 rounded-2xl px-6 py-3 font-medium transition-all duration-300 shadow-lg hover:shadow-xl transform hover:scale-105;
}

.btn-secondary {
  @apply bg-gradient-to-r from-gray-100 to-gray-200 text-gray-700 hover:from-gray-200 hover:to-gray-300 rounded-2xl px-6 py-3 font-semibold transition-all duration-300 shadow-md hover:shadow-lg;
}

.btn-ghost {
  @apply bg-transparent text-gray-600 hover:bg-gray-100 rounded-2xl px-4 py-2 font-medium transition-all duration-300;
}

/* Enhanced card styles */
.card-enhanced {
  @apply bg-white border border-gray-100 shadow-lg hover:shadow-2xl transition-all duration-500 rounded-3xl overflow-hidden;
}

/* Search input styles */
.search-input {
  @apply bg-white/90 backdrop-blur-sm border border-white/50 focus:border-primary/50 focus:ring-2 focus:ring-primary/20 rounded-2xl transition-all duration-300;
}

/* Business card specific styles */
.business-card {
  @apply bg-white border border-gray-100 rounded-3xl p-6 hover:shadow-2xl transition-all duration-500 hover:scale-[1.02] relative overflow-hidden;
}

.business-card:hover {
  transform: translateY(-4px) scale(1.02);
}

/* Badge styles */
.badge-outline {
  @apply border border-gray-200 bg-white/80 backdrop-blur-sm text-gray-700 rounded-full px-3 py-1 text-xs font-medium;
}

.badge-primary {
  @apply bg-gradient-to-r from-primary to-purple-600 text-white border-0 rounded-full px-3 py-1 text-xs font-medium;
}

.badge-secondary {
  @apply bg-gray-100 text-gray-700 border border-gray-200 rounded-full px-3 py-1 text-xs font-medium;
}

/* Modern animations */
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}

@keyframes pulse-glow {
  0%, 100% {
    opacity: 0.5;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.05);
  }
}

.animate-float {
  animation: float 3s ease-in-out infinite;
}

.animate-pulse-glow {
  animation: pulse-glow 2s ease-in-out infinite;
}

/* Gradient text utilities */
.gradient-text {
  @apply text-transparent bg-clip-text bg-gradient-to-r from-primary via-purple-600 to-blue-600;
}

.gradient-text-reverse {
  @apply text-transparent bg-clip-text bg-gradient-to-r from-blue-600 via-purple-600 to-primary;
}

/* Glass morphism effects */
.glass {
  @apply bg-white/80 backdrop-blur-sm border border-white/50;
}

.glass-dark {
  @apply bg-gray-900/80 backdrop-blur-sm border border-gray-700/50;
}

/* Modern shadows */
.shadow-modern {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.shadow-modern-lg {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Hover effects */
.hover-lift {
  @apply transition-all duration-300 hover:transform hover:scale-105 hover:shadow-xl;
}

.hover-glow {
  @apply transition-all duration-300 hover:shadow-lg hover:shadow-primary/25;
}
