@import 'tailwindcss';
@custom-variant dark (&:where(.dark, .dark *));

/* Dark mode transition */
html,
body {
  -webkit-tap-highlight-color: transparent; /* Remove tap highlight on mobile */
}

html.theme-transition * {
  transition: none !important;
}

/* Additional dark mode styles */
body.dark-mode {
  background-color: #111827;
  color: #e5e7eb;
}

/* Force dark mode styles */
html.dark {
  color-scheme: dark;
}

/* Mobile touch improvements */
@media (max-width: 640px) {
  input,
  select,
  button {
    font-size: 16px !important; /* Prevent iOS zoom on focus */
  }

  .touch-manipulation {
    touch-action: manipulation; /* Improve touch responsiveness */
  }
}

@layer components {
  .btn {
    @apply inline-flex items-center justify-center gap-2 px-4 py-2 text-sm rounded-lg transition-all cursor-pointer font-medium focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed active:scale-95;
  }

  .btn-primary {
    @apply bg-gray-900 text-white hover:bg-gray-800 dark:bg-gray-100 dark:text-gray-900 dark:hover:bg-gray-200;
  }

  .btn-secondary {
    @apply bg-white text-gray-700 border border-gray-200 hover:bg-gray-50 hover:shadow-sm dark:bg-gray-800 dark:text-gray-200 dark:border-gray-700 dark:hover:bg-gray-700;
  }

  .btn-ghost {
    @apply text-gray-600 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-800;
  }

  .btn-danger {
    @apply text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/30;
  }

  .btn-dark {
    @apply bg-gray-700 text-white hover:bg-gray-800 dark:bg-gray-600 dark:hover:bg-gray-700;
  }

  .btn-sm {
    @apply px-3 py-1.5 text-xs;
  }

  .btn-md {
    @apply px-4 py-2 text-sm;
  }

  .btn-icon {
    @apply p-2;
  }

  .btn-icon-sm {
    @apply p-1.5;
  }

  .btn-icon-xs {
    @apply p-1;
  }

  .input-field {
    @apply px-2 py-1 text-sm border border-gray-300 rounded outline-none focus:ring-2 focus:ring-gray-500 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-100;
  }

  .card {
    @apply bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg;
  }

  /* Custom prose styles for blog content */
  .prose {
    @apply text-gray-700 dark:text-gray-300 leading-7;
  }

  .prose h1 {
    @apply text-4xl font-bold text-gray-900 dark:text-white mb-4 mt-0;
  }

  .prose h2 {
    @apply text-3xl font-bold text-gray-900 dark:text-white mt-8 mb-4;
  }

  .prose h3 {
    @apply text-2xl font-bold text-gray-900 dark:text-white mt-6 mb-3;
  }

  .prose h4 {
    @apply text-xl font-bold text-gray-900 dark:text-white mt-4 mb-2;
  }

  .prose p {
    @apply text-gray-700 dark:text-gray-300 mb-4 leading-7;
  }

  .prose a {
    @apply text-blue-600 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-300;
  }

  .prose strong {
    @apply text-gray-900 dark:text-white font-semibold;
  }

  .prose em {
    @apply italic;
  }

  .prose code {
    @apply text-sm font-mono bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-1 py-0.5 rounded;
  }

  .prose pre {
    @apply bg-gray-100 dark:bg-gray-800 text-gray-800 dark:text-gray-200 p-4 rounded-lg overflow-x-auto mb-4;
  }

  .prose pre code {
    @apply bg-transparent p-0;
  }

  .prose ul {
    @apply list-disc pl-6 mb-4 text-gray-700 dark:text-gray-300;
  }

  .prose ol {
    @apply list-decimal pl-6 mb-4 text-gray-700 dark:text-gray-300;
  }

  .prose li {
    @apply mb-2 leading-7;
  }

  .prose blockquote {
    @apply border-l-4 border-gray-300 dark:border-gray-600 pl-4 italic text-gray-600 dark:text-gray-400 my-4;
  }

  .prose img {
    @apply rounded-lg shadow-md my-6;
  }

  .prose hr {
    @apply border-gray-300 dark:border-gray-700 my-8;
  }

  .prose table {
    @apply border-collapse w-full my-6;
  }

  .prose th {
    @apply bg-gray-100 dark:bg-gray-800 p-2 text-left font-semibold border border-gray-300 dark:border-gray-700;
  }

  .prose td {
    @apply border border-gray-300 dark:border-gray-700 p-2;
  }
}
