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

@layer components {
  /* FORCE GOLD BUTTONS - Override everything with better mobile support */
  #catTabs button.cat-tab, 
  #catTabs .cat-tab,
  button.cat-tab, 
  .cat-tab {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 16px !important;
    background-color: #C8A349 !important;
    background: #C8A349 !important;
    color: #000 !important;
    border: 2px solid #C8A349 !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    white-space: nowrap !important;
    min-height: 36px !important;
    user-select: none !important;
    -webkit-tap-highlight-color: transparent !important;
    /* Critical mobile fixes */
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: relative !important;
    z-index: 1 !important;
  }

  #catTabs button.cat-tab:hover, 
  #catTabs .cat-tab:hover,
  button.cat-tab:hover, 
  .cat-tab:hover {
    background-color: #D4AF37 !important;
    background: #D4AF37 !important;
    border-color: #D4AF37 !important;
    color: #000 !important;
    transform: translateY(-1px) !important;
  }

  #catTabs button.cat-tab.active, 
  #catTabs .cat-tab.active,
  button.cat-tab.active, 
  .cat-tab.active {
    background-color: #FFD700 !important;
    background: #FFD700 !important;
    border-color: #FFD700 !important;
    color: #000 !important;
    box-shadow: 0 4px 12px rgba(200, 163, 73, 0.4) !important;
  }
  
  .cat-tab:active {
    transform: scale(0.95);
  }
  
  /* Responsive sizing - FORCE GOLD - Smaller buttons */
  @media (min-width: 640px) {
    button.cat-tab, .cat-tab {
      padding: 10px 20px !important;
      font-size: 14px !important;
      min-height: 40px !important;
      background-color: #C8A349 !important;
      background: #C8A349 !important;
    }
  }
  
  @media (max-width: 639px) {
    button.cat-tab, .cat-tab {
      padding: 6px 12px !important;
      font-size: 12px !important;
      min-height: 32px !important;
      background-color: #C8A349 !important;
      background: #C8A349 !important;
    }
  }
  
  /* Loading state for category tabs */
  .cat-tab.loading {
    @apply opacity-75;
    pointer-events: none;
  }
  
  .cat-tab.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 1s linear infinite;
  }
  
  @keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }

  /* Dark mode styles */
  .dark .cat-tab {
    @apply bg-black/20 border-white/5 text-white/70;
  }

  .dark .cat-tab.active {
    @apply bg-mine-gold text-white border-mine-gold;
  }

  /* Card animations */
  .menu-card-enter {
    @apply opacity-0 translate-y-4;
  }

  .menu-card-enter-active {
    @apply opacity-100 translate-y-0 transition-all duration-300;
  }

  /* Progressive image loading */
  .menu-image-container {
    @apply relative overflow-hidden;
  }

  .menu-image {
    @apply w-full h-full object-cover transition-all duration-700;
  }

  .menu-image-loading {
    @apply blur-sm scale-105;
  }

  .menu-image-loaded {
    @apply blur-0 scale-100;
  }

  /* Critical mobile fallback styles - ensure content is always visible */
  @media (max-width: 768px) {
    .cat-tab {
      min-width: 60px !important;
      font-size: 12px !important;
      padding: 6px 12px !important;
    }
    
    /* Only force visibility if emergency fallback is active */
    .emergency-fallback #menuGrid article,
    .emergency-fallback .menu-card {
      display: block !important;
      visibility: visible !important;
      opacity: 1 !important;
    }
    
    /* Ensure grid layout works on mobile */
    #menuGrid {
      display: grid !important;
      grid-template-columns: 1fr !important;
      gap: 1rem !important;
    }
    
    @media (min-width: 640px) {
      #menuGrid {
        grid-template-columns: repeat(2, 1fr) !important;
      }
    }
  }

  /* Emergency fallback styles if Tailwind fails to load */
  .emergency-fallback {
    background-color: #0A0A0A !important;
    color: white !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    min-height: 100vh !important;
  }
  
  .emergency-fallback * {
    box-sizing: border-box;
  }
  
  .emergency-fallback .cat-tab {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #C8A349 !important;
    color: #000 !important;
    padding: 8px 16px !important;
    border: 2px solid #C8A349 !important;
    border-radius: 8px !important;
    margin-right: 8px !important;
    margin-bottom: 8px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    min-height: 36px !important;
  }
  
  .emergency-fallback .cat-tab:hover {
    background-color: #D4AF37 !important;
    transform: translateY(-1px) !important;
  }
  
  .emergency-fallback .cat-tab.active {
    background-color: #FFD700 !important;
    box-shadow: 0 4px 12px rgba(200, 163, 73, 0.4) !important;
  }
  
  .emergency-fallback #menuGrid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin-top: 24px !important;
    padding: 0 16px !important;
  }
  
  @media (min-width: 640px) {
    .emergency-fallback #menuGrid {
      grid-template-columns: repeat(2, 1fr) !important;
    }
  }
  
  @media (min-width: 1024px) {
    .emergency-fallback #menuGrid {
      grid-template-columns: repeat(3, 1fr) !important;
    }
  }
  
  .emergency-fallback .card,
  .emergency-fallback article {
    display: block !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 16px !important;
    background-color: rgba(255,255,255,0.05) !important;
    padding: 16px !important;
    color: white !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .emergency-fallback .card img,
  .emergency-fallback article img {
    width: 100% !important;
    height: 160px !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    margin-bottom: 12px !important;
  }
  
  .emergency-fallback .navbar-gradient {
    background: linear-gradient(to right, rgba(26,20,6,.98) 0%, rgba(212,175,55,.92) 12%, rgba(0,0,0,.90) 75%, rgba(0,0,0,1) 100%) !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  }
  
  .emergency-fallback .brand-wordmark {
    color: #C8A349 !important;
    font-size: 24px !important;
    font-weight: 600 !important;
  }
  
  .emergency-fallback .nav-link {
    color: rgba(255,255,255,0.8) !important;
    text-decoration: none !important;
    padding: 8px 12px !important;
    border-radius: 8px !important;
  }
  
  .emergency-fallback .nav-link:hover {
    color: #C8A349 !important;
    background-color: rgba(255,255,255,0.1) !important;
  }
  
  .emergency-fallback .max-w-7xl,
  .emergency-fallback .max-w-6xl {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 0 16px !important;
  }
  
  .emergency-fallback h1 {
    font-size: 32px !important;
    font-weight: 600 !important;
    color: white !important;
    margin-bottom: 16px !important;
  }
  
  .emergency-fallback select {
    background-color: rgba(255,255,255,0.1) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    color: white !important;
    width: 100% !important;
  }
}