import type { Config } from 'tailwindcss'

export default {
  content: [
    './components/**/*.{js,vue,ts}',
    './layouts/**/*.vue',
    './pages/**/*.vue',
    './plugins/**/*.{js,ts}',
    './app.vue',
    './error.vue',
  ],
  theme: {
    extend: {
      // experimenta Color Palette
      colors: {
        // shadcn-ui color variables
        border: 'hsl(var(--border))',
        input: 'hsl(var(--input))',
        ring: 'hsl(var(--ring))',
        background: 'hsl(var(--background))',
        foreground: 'hsl(var(--foreground))',
        primary: {
          DEFAULT: 'hsl(var(--primary))',
          foreground: 'hsl(var(--primary-foreground))',
        },
        secondary: {
          DEFAULT: 'hsl(var(--secondary))',
          foreground: 'hsl(var(--secondary-foreground))',
        },
        destructive: {
          DEFAULT: 'hsl(var(--destructive))',
          foreground: 'hsl(var(--destructive-foreground))',
        },
        muted: {
          DEFAULT: 'hsl(var(--muted))',
          foreground: 'hsl(var(--muted-foreground))',
        },
        accent: {
          DEFAULT: 'hsl(var(--accent))',
          foreground: 'hsl(var(--accent-foreground))',
        },
        popover: {
          DEFAULT: 'hsl(var(--popover))',
          foreground: 'hsl(var(--popover-foreground))',
        },
        card: {
          DEFAULT: 'hsl(var(--card))',
          foreground: 'hsl(var(--card-foreground))',
        },

        // experimenta Brand Colors (kept separate for custom use)
        'experimenta-primary': {
          DEFAULT: '#e6007e',
          hover: '#c2006a',
          light: '#ff4081',
        },
        'experimenta-secondary': {
          DEFAULT: '#e91e63',
          dark: '#c2185b',
        },
        'experimenta-accent': {
          DEFAULT: '#f59d24',
          hover: '#ffb347',
        },
        red: '#E40521',

        // Purple Variants (Background)
        purple: {
          dark: '#2e1065',
          deeper: '#1a0a3a',
          darkest: '#0f051d',
        },

        // Semantic Colors
        success: {
          DEFAULT: '#46c74a',
          dark: '#3ba83e',
        },
        error: {
          DEFAULT: '#e53e3e',
          dark: '#c53030',
        },
        warning: {
          DEFAULT: '#f59d24',
          dark: '#dd8a1e',
        },
        info: {
          DEFAULT: '#4299e1',
          dark: '#3182ce',
        },
      },

      // Font Family
      fontFamily: {
        sans: [
          'Roboto',
          'system-ui',
          '-apple-system',
          'BlinkMacSystemFont',
          'sans-serif',
        ],
      },

      // Font Sizes (Mobile-First with responsive variants)
      fontSize: {
        // H1
        '4xl': ['36px', { lineHeight: '1.2', letterSpacing: '-1px' }],
        // H2
        '3xl': ['30px', { lineHeight: '1.3', letterSpacing: '-0.5px' }],
        // H3
        '2xl': ['24px', { lineHeight: '1.4' }],
        // H4
        xl: ['20px', { lineHeight: '1.4' }],
        // H5
        lg: ['18px', { lineHeight: '1.5', letterSpacing: '0.5px' }],
        // Body
        base: ['16px', { lineHeight: '1.6' }],
        // Small
        sm: ['14px', { lineHeight: '1.6' }],
        // Tiny
        xs: ['12px', { lineHeight: '1.5' }],
      },

      // Spacing System (8px Grid)
      spacing: {
        '1': '4px',
        '2': '8px',
        '3': '12px',
        '4': '16px',
        '5': '20px',
        '6': '24px',
        '8': '30px',
        '10': '40px',
        '15': '60px',
        '20': '80px',
        '25': '100px', // For status icons
      },

      // Border Radius
      borderRadius: {
        lg: 'var(--radius)',
        md: 'calc(var(--radius) - 2px)',
        sm: 'calc(var(--radius) - 4px)',
        xl: '20px',
        '2xl': '25px',
        full: '100%',
      },

      // Max Widths (Containers)
      maxWidth: {
        'container-main': '800px',
        'container-wide': '1200px',
        'container-full': '1760px',
      },

      // Background Gradients
      backgroundImage: {
        'gradient-primary': 'linear-gradient(135deg, #2e1065 0%, #1a0a3a 50%, #0f051d 100%)',
        'gradient-footer': 'linear-gradient(135deg, #1a0a3a 0%, #0f051d 100%)',
        'gradient-glass':
          'linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))',
        'gradient-button': 'linear-gradient(to left, #e6007e, #e6007e, #E40521, #e6007e)',
        'gradient-success': 'linear-gradient(90deg, #46c74a 0%, #66d96a 50%, #46c74a 100%)',
      },

      // Background Sizes
      backgroundSize: {
        'size-300': '300%',
        'size-200': '200%',
      },

      // Background Positions
      backgroundPosition: {
        left: 'left',
        right: 'right',
      },

      // Box Shadows
      boxShadow: {
        glass: '0 20px 40px rgba(0, 0, 0, 0.3)',
        'inner-light': 'inset 0 2px 4px rgba(0, 0, 0, 0.2)',
      },

      // Backdrop Blur
      backdropBlur: {
        xl: '15px',
      },

      // Animations
      keyframes: {
        pulse: {
          '0%, 100%': { transform: 'scale(1)' },
          '50%': { transform: 'scale(1.1)' },
        },
        shimmer: {
          '0%': { backgroundPosition: '-200% 0' },
          '100%': { backgroundPosition: '200% 0' },
        },
      },
      animation: {
        pulse: 'pulse 2s ease-in-out infinite',
        shimmer: 'shimmer 3s ease-in-out infinite',
      },

      // Transitions
      transitionDuration: {
        '300': '300ms',
        '1000': '1000ms',
      },
    },
  },
  plugins: [],
} satisfies Config
