/* eslint-disable no-undef */
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    './app/**/*.{js,ts,jsx,tsx}',
    './components/**/*.{js,ts,jsx,tsx}',
  ],
  theme: {
    extend: {
      // Custom Breakpoints for KLZ Cables
      screens: {
        'xs': '475px',
        'sm': '640px',
        'md': '768px',
        'lg': '1024px',
        'xl': '1280px',
        '2xl': '1400px',
        '3xl': '1600px',
      },
      colors: {
        // Brand Colors
        primary: {
          DEFAULT: '#011dff',
          dark: '#000e7a',
          light: '#3344cc',
        },
        secondary: {
          DEFAULT: '#82ed20',
          light: '#9bf14d',
          dark: '#6bc21a',
        },
        accent: {
          DEFAULT: '#82ed20',
          light: '#9bf14d',
        },
        neutral: {
          DEFAULT: '#f8f9fa',
          light: '#ffffff',
          dark: '#263336',
          black: '#0a0a0a',
        },
        // Text Colors
        text: {
          primary: '#1a1a1a',
          secondary: '#6c757d',
          light: '#adb5bd',
        },
        // Semantic Colors
        success: '#28a745',
        warning: '#ffc107',
        danger: '#dc3545',
        info: '#17a2b8',
      },
      fontFamily: {
        sans: ['Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'sans-serif'],
        heading: ['Inter', 'system-ui', 'sans-serif'],
        body: ['Inter', 'system-ui', 'sans-serif'],
      },
      // Standard Fluid Typography
      // Responsive scaling is handled globally via the html selector percentage in globals.css
      fontSize: {
        'xs': ['0.75rem', { lineHeight: '1.6' }],
        'sm': ['0.875rem', { lineHeight: '1.6' }],
        'base': ['1rem', { lineHeight: '1.7' }],
        'lg': ['1.125rem', { lineHeight: '1.7' }],
        'xl': ['1.25rem', { lineHeight: '1.6' }],
        '2xl': ['1.5rem', { lineHeight: '1.5' }],
        '3xl': ['1.875rem', { lineHeight: '1.4' }],
        '4xl': ['2.25rem', { lineHeight: '1.3' }],
        '5xl': ['3rem', { lineHeight: '1.25' }],
        '6xl': ['3.75rem', { lineHeight: '1.2' }],
        '7xl': ['4.5rem', { lineHeight: '1.15' }],
        '8xl': ['6rem', { lineHeight: '1.1' }],
      },
      fontWeight: {
        regular: '400',
        medium: '500',
        semibold: '600',
        bold: '700',
        extrabold: '800',
      },
      borderRadius: {
        'sm': '0.25rem',
        'DEFAULT': '0.5rem',
        'lg': '0.75rem',
        'xl': '1rem',
        '2xl': '1.5rem',
      },
      boxShadow: {
        'sm': '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
        'DEFAULT': '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
        'md': '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
        'lg': '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
        'xl': '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
      },
      container: {
        center: true,
        padding: {
          DEFAULT: '1rem',
          sm: '1.5rem',
          md: '2rem',
          lg: '2.5rem',
          xl: '3rem',
          '2xl': '4rem',
        },
        screens: {
          xs: '475px',
          sm: '640px',
          md: '768px',
          lg: '1024px',
          xl: '1280px',
          '2xl': '1400px',
          '3xl': '1600px',
        },
      },
      maxWidth: {
        'xs': '20rem',
        'sm': '24rem',
        'md': '28rem',
        'lg': '32rem',
        'xl': '36rem',
        '2xl': '42rem',
        '3xl': '48rem',
        '4xl': '56rem',
        '5xl': '64rem',
        '6xl': '72rem',
      },
      zIndex: {
        '0': '0',
        '10': '10',
        '20': '20',
        '30': '30',
        '40': '40',
        '50': '50',
        'auto': 'auto',
      },
    },
  },
  plugins: [
    // Custom plugin for responsive utilities
    function ({ addUtilities }) {
      const newUtilities = {
        // Touch target utilities
        '.touch-target': {
          minHeight: '44px',
          minWidth: '44px',
          display: 'inline-flex',
          alignItems: 'center',
          justifyContent: 'center',
        },
        // Mobile-first responsive utilities
        '.mobile-hidden': {
          '@media (max-width: 767px)': {
            display: 'none !important',
          },
        },
        '.tablet-hidden': {
          '@media (min-width: 768px) and (max-width: 1023px)': {
            display: 'none !important',
          },
        },
        '.desktop-hidden': {
          '@media (min-width: 1024px)': {
            display: 'none !important',
          },
        },
        '.mobile-only': {
          '@media (min-width: 768px)': {
            display: 'none !important',
          },
        },
        '.tablet-only': {
          '@media (max-width: 767px), (min-width: 1024px)': {
            display: 'none !important',
          },
        },
        '.desktop-only': {
          '@media (max-width: 1023px)': {
            display: 'none !important',
          },
        },
        // Fluid spacing utilities
        '.fluid-spacing': {
          padding: 'clamp(1rem, 3vw, 3rem)',
          margin: 'clamp(0.5rem, 2vw, 2rem)',
        },
        // Responsive text alignment
        '.text-start-mobile': {
          '@media (max-width: 767px)': {
            textAlign: 'left',
          },
        },
        '.text-center-mobile': {
          '@media (max-width: 767px)': {
            textAlign: 'center',
          },
        },
        '.text-end-mobile': {
          '@media (max-width: 767px)': {
            textAlign: 'right',
          },
        },
        // Mobile-optimized grid
        '.grid-mobile-stacked': {
          '@media (max-width: 767px)': {
            display: 'flex',
            flexDirection: 'column',
            gap: '1rem',
          },
        },
        // Safe area padding for mobile notch
        '.safe-area-p': {
          paddingTop: 'env(safe-area-inset-top)',
          paddingBottom: 'env(safe-area-inset-bottom)',
          paddingLeft: 'env(safe-area-inset-left)',
          paddingRight: 'env(safe-area-inset-right)',
        },
      };

      addUtilities(newUtilities, ['responsive', 'hover', 'focus']);
    },
  ],
}