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

@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: 222.2 47.4% 11.2%;
    --primary-foreground: 210 40% 98%;
    --secondary: 210 40% 96%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    --muted: 210 40% 96%;
    --muted-foreground: 215.4 16.3% 46.9%;
    --accent: 210 40% 96%;
    --accent-foreground: 222.2 47.4% 11.2%;
    --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: 222.2 84% 4.9%;
    --radius: 0.5rem;
    --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: 210 40% 98%;
    --primary-foreground: 222.2 47.4% 11.2%;
    --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: 212.7 26.8% 83.9%;
    --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;
  }
}

.sepia {
  filter: sepia(100%) hue-rotate(30deg) saturate(1.2);
}

/* Global styles for native HTML form elements */
@layer base {
  /* Select elements - using !important to override any existing styles */
  select {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-white !important;
  }
  
  /* Radio buttons - using !important to override any existing styles */
  input[type="radio"] {
    @apply w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500 !important;
  }
  
  /* Checkboxes - using !important to override any existing styles */
  input[type="checkbox"] {
    @apply w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500 !important;
  }
  
  /* Text inputs - using !important to override any existing styles */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"] {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 !important;
  }
  
  /* Textarea - using !important to override any existing styles */
  textarea {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 resize-none !important;
  }
}

/* Utility classes for form elements */
@layer utilities {
  .form-select {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-white !important;
  }
  
  .form-radio {
    @apply w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500 !important;
  }
  
  .form-checkbox {
    @apply w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500 !important;
  }
  
  .form-input {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 !important;
  }
}

/* Additional specific styles to ensure global styles work */
@layer base {
  /* Override any existing form styles with higher specificity */
  select:not([class*="ui-"]) {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-white !important;
  }
  
  input[type="radio"]:not([class*="ui-"]) {
    @apply w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500 !important;
  }
  
  input[type="checkbox"]:not([class*="ui-"]) {
    @apply w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500 !important;
  }
  
  input[type="text"]:not([class*="ui-"]),
  input[type="email"]:not([class*="ui-"]),
  input[type="tel"]:not([class*="ui-"]),
  input[type="number"]:not([class*="ui-"]),
  input[type="date"]:not([class*="ui-"]) {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 !important;
  }
  
  textarea:not([class*="ui-"]) {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 resize-none !important;
  }
}

/* Force global styles with highest specificity */
@layer utilities {
  .global-select {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-white !important;
  }
  
  .global-radio {
    @apply w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500 !important;
  }
  
  .global-checkbox {
    @apply w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500 !important;
  }
  
  .global-input {
    @apply px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 !important;
  }
}
