@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
@import url('https://api.fontshare.com/v2/css?f[]=clash-display@400,500,600,700&display=swap');

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

@layer base {
  /* Base styles */
  html {
    @apply antialiased scroll-smooth;
  }
  
  body {
    @apply bg-neutral-50 text-neutral-800 font-sans;
  }

  /* Typography base styles */
  h1, h2, h3, h4, h5, h6 {
    @apply font-display;
  }

  /* Focus styles */
  *:focus-visible {
    @apply outline-none ring-2 ring-primary-400 ring-offset-2;
  }
}

@layer components {
  /* Layout Components */
  .container-base {
    @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
  }

  .section-padding {
    @apply py-12 md:py-16 lg:py-24;
  }

  .flex-center {
    @apply flex items-center justify-center;
  }

  .flex-between {
    @apply flex items-center justify-between;
  }

  /* Card Variants */
  .card {
    @apply bg-white rounded-lg shadow-sm border border-neutral-200/80 transition-all duration-200 hover:shadow-md hover:border-neutral-300/80;
  }

  .card-interactive {
    @apply card cursor-pointer hover:border-primary-200;
  }

  .card-padding-sm {
    @apply p-4;
  }

  .card-padding-base {
    @apply p-6;
  }

  .card-padding-lg {
    @apply p-8;
  }

  /* Button Variants */
  .btn-base {
    @apply inline-flex items-center justify-center rounded-lg font-medium 
    transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 
    disabled:opacity-60 disabled:cursor-not-allowed;
  }

  .btn-primary {
    @apply btn-base bg-primary-600 text-white 
    hover:bg-primary-700 
    focus:ring-primary-400 
    shadow-sm border border-transparent;
  }

  .btn-secondary {
    @apply btn-base bg-neutral-100 text-neutral-800 
    hover:bg-neutral-200 
    border border-neutral-200 
    focus:ring-primary-400;
  }

  .btn-outline {
    @apply btn-base bg-transparent text-primary-600 
    hover:bg-primary-50 
    border border-primary-600 
    focus:ring-primary-400;
  }

  .btn-danger {
    @apply btn-base bg-red-600 text-white hover:bg-red-700 
    focus:ring-red-500 shadow-sm border border-transparent;
  }

  /* Button Sizes */
  .btn-sm {
    @apply px-3 py-1.5 text-sm;
  }

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

  .btn-lg {
    @apply px-6 py-3 text-base;
  }

  /* Form Elements */
  .form-group {
    @apply space-y-1;
  }

  .input-label {
    @apply block text-sm font-medium text-neutral-700 mb-1;
  }

  .input-base {
    @apply block w-full rounded-lg 
    border-neutral-300 
    shadow-sm 
    focus:border-primary-500 focus:ring-primary-400 
    disabled:bg-neutral-100 disabled:cursor-not-allowed
    placeholder:text-neutral-400
    sm:text-sm;
  }

  .input-error {
    @apply border-red-300 text-red-900 placeholder-red-300 
    focus:border-red-500 focus:ring-red-500;
  }

  .error-message {
    @apply text-sm text-red-600 mt-1;
  }

  .input-help {
    @apply text-sm text-neutral-500 mt-1;
  }

  /* Typography Utilities */
  .heading-1 {
    @apply text-4xl sm:text-5xl lg:text-6xl font-display font-bold text-neutral-900 tracking-tight;
  }

  .heading-2 {
    @apply text-3xl sm:text-4xl font-display font-semibold text-neutral-900;
  }

  .heading-3 {
    @apply text-2xl font-display font-semibold text-neutral-900;
  }

  .heading-4 {
    @apply text-xl font-display font-semibold text-neutral-900;
  }

  .text-body-lg {
    @apply text-lg text-neutral-600;
  }

  .text-body {
    @apply text-base text-neutral-600;
  }

  .text-body-sm {
    @apply text-sm text-neutral-600;
  }

  /* Badge Variants */
  .badge-base {
    @apply inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium;
  }

  .badge-primary {
    @apply badge-base bg-primary-100 text-primary-800;
  }

  .badge-success {
    @apply badge-base bg-success-100 text-success-800;
  }

  .badge-warning {
    @apply badge-base bg-warning-100 text-warning-800;
  }

  .badge-error {
    @apply badge-base bg-error-100 text-error-800;
  }

  /* Table Styles */
  .table-container {
    @apply overflow-x-auto rounded-lg border border-neutral-200 bg-white;
  }

  .table-base {
    @apply min-w-full divide-y divide-neutral-200;
  }

  .table-header {
    @apply bg-neutral-50 text-left text-sm font-medium text-neutral-600;
  }

  .table-header-cell {
    @apply px-6 py-3;
  }

  .table-body {
    @apply divide-y divide-neutral-200 bg-white;
  }

  .table-row {
    @apply hover:bg-neutral-50 transition-colors duration-150;
  }

  .table-cell {
    @apply whitespace-nowrap px-6 py-4 text-sm text-neutral-700;
  }

  /* Grid Layouts */
  .grid-cards {
    @apply grid gap-6 sm:grid-cols-2 lg:grid-cols-3;
  }

  .grid-cards-4 {
    @apply grid gap-6 sm:grid-cols-2 lg:grid-cols-4;
  }

  /* Animation Utilities */
  .animate-fade-in {
    @apply transition-opacity duration-300 ease-in-out;
  }

  .animate-slide-up {
    @apply transition-all duration-300 ease-in-out transform;
  }

  /* Loading States */
  .loading-spinner {
    @apply animate-spin rounded-full border-4 border-neutral-200 border-t-primary-600 h-8 w-8;
  }

  .loading-pulse {
    @apply animate-pulse bg-neutral-200 rounded;
  }

  /* Overlay/Modal */
  .overlay {
    @apply fixed inset-0 bg-black bg-opacity-50 backdrop-blur-sm transition-opacity;
  }

  .modal-container {
    @apply fixed inset-0 z-50 overflow-y-auto;
  }

  .modal-content {
    @apply relative transform overflow-hidden 
    rounded-xl bg-white 
    shadow-xl transition-all 
    border border-neutral-200;
  }

  /* Navigation styles */
  .nav-link {
    @apply text-neutral-600 hover:text-primary-600 
    transition-colors duration-200 
    px-3 py-2 rounded-lg 
    hover:bg-primary-50;
  }

  .nav-link-active {
    @apply text-primary-600 bg-primary-50;
  }
}

/* Custom Scrollbar */
@layer utilities {
  .scrollbar-thin {
    scrollbar-width: thin;
  }

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

  .scrollbar-hidden::-webkit-scrollbar {
    display: none;
  }

  /* Custom scrollbar for Webkit browsers */
  .scrollbar-custom::-webkit-scrollbar {
    @apply w-2;
  }

  .scrollbar-custom::-webkit-scrollbar-track {
    @apply bg-neutral-100 rounded-full;
  }

  .scrollbar-custom::-webkit-scrollbar-thumb {
    @apply bg-neutral-300 rounded-full hover:bg-neutral-400;
  }
}