/* Custom CSS variables for consistent colors */
:root {
  --primary: #1f2937;
  --primary-dark: #111827;
  --secondary: #10b981;
  --secondary-dark: #059669;
  --danger: #ef4444;
  --danger-dark: #dc2626;
  --warning: #f59e0b;
  --warning-dark: #d97706;
  --success: #10b981;
  --success-dark: #059669;
  --info: #3b82f6;
  --info-dark: #2563eb;
}

/* Custom animations for better UX */
.fade-in {
  animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.pulse-glow {
  animation: pulseGlow 2s infinite;
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 20px rgba(59, 130, 246, 0.3); }
  50% { box-shadow: 0 0 30px rgba(59, 130, 246, 0.5); }
}

/* HTMX indicators - converted from @apply */
.htmx-indicator {
  display: none;
}

.htmx-request .htmx-indicator {
  display: inline-block;
}

/* Custom file input styling */
.file-input-wrapper input[type=file] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}