import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

class AppTheme {
  // Cyberpunk Color Palette
  static const Color neonBlue = Color(0xFF00F0FF);
  static const Color neonPurple = Color(0xFFBC13FE);
  static const Color neonGreen = Color(0xFF0AFF99);
  static const Color darkBg = Color(0xFF050510);
  static const Color darkSurface = Color(0xFF13132B);
  static const Color textPrimary = Color(0xFFE0E0FF);
  static const Color textSecondary = Color(0xFFA0A0C0);

  static final ThemeData darkTheme = ThemeData(
    useMaterial3: true,
    brightness: Brightness.dark,
    scaffoldBackgroundColor: darkBg,
    
    // Typography
    textTheme: GoogleFonts.outfitTextTheme(ThemeData.dark().textTheme).copyWith(
      displayLarge: const TextStyle(color: textPrimary, fontWeight: FontWeight.bold),
      displayMedium: const TextStyle(color: textPrimary, fontWeight: FontWeight.bold),
      bodyLarge: const TextStyle(color: textPrimary),
      bodyMedium: const TextStyle(color: textSecondary),
    ),

    // Color Scheme
    colorScheme: const ColorScheme.dark(
      primary: neonBlue,
      secondary: neonPurple,
      surface: darkBg, // Use darkBg as surface or stick to darkSurface? Let's use darkBg here as background replacement
      error: Color(0xFFFF2A6D),
      onPrimary: Colors.black,
      onSecondary: Colors.white,
      onSurface: textPrimary,
    ),

    // Component Themes
    appBarTheme: const AppBarTheme(
      backgroundColor: Colors.transparent,
      elevation: 0,
      centerTitle: true,
      titleTextStyle: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: textPrimary),
    ),

    bottomNavigationBarTheme: const BottomNavigationBarThemeData(
      backgroundColor: darkSurface,
      selectedItemColor: neonBlue,
      unselectedItemColor: textSecondary,
      type: BottomNavigationBarType.fixed,
      showSelectedLabels: true,
      showUnselectedLabels: true,
    ),
    
    iconTheme: const IconThemeData(
      color: neonBlue,
    ),
  );
}
