import 'package:flutter/material.dart';

/// EPVC School Color Palette - Light/Dark Mode Support
class AppColors {
  // Primary Brand Colors (light mode)
  static const Color primaryTeal = Color(0xFF82C9BD);
  static const Color primaryOrange = Color(0xFFF68D2D);

  // Gradient Colors (light mode)
  static const Color gradientStart = Color(0xFF82C9BD);
  static const Color gradientEnd = Color(0xFF6AB8A8);

  // Secondary Colors (light mode)
  static const Color secondaryTeal = Color(0xFF6AB8A8);
  static const Color accentTeal = Color(0xFF5AA69A);
  static const Color lightOrange = Color(0xFFF7A960);

  // Status Colors (shared)
  static const Color success = Color(0xFF10B981);
  static const Color warning = Color(0xFFF59E0B);
  static const Color error = Color(0xFFEF4444);
  static const Color info = Color(0xFF3B82F6);

  @Deprecated('Use AppColors.primaryTeal')
  static const Color primaryBlue = primaryTeal;
}

/// Brand colors tuned for dark mode (lower luminance, same hue family).
class DarkBrandColors {
  static const Color primaryTeal = Color(0xFF4D8F84);
  static const Color primaryOrange = Color(0xFFC47A2A);
  static const Color gradientStart = Color(0xFF3D7A70);
  static const Color gradientEnd = Color(0xFF2F635C);
  static const Color secondaryTeal = Color(0xFF3D7A70);
  static const Color accentTeal = Color(0xFF356B62);
}

/// Light Mode Colors
class LightColors {
  static const Color background = Color(0xFFF8F9FA);
  static const Color surface = Color(0xFFFFFFFF);
  static const Color surfaceVariant = Color(0xFFF3F4F6);
  static const Color cardBackground = Color(0xFFFFFFFF);

  static const Color textPrimary = Color(0xFF1A1A1A);
  static const Color textSecondary = Color(0xFF6B7280);
  static const Color textHint = Color(0xFF9CA3AF);

  static const Color buttonPrimary = AppColors.primaryTeal;
  static const Color buttonAccent = AppColors.primaryOrange;
  static const Color buttonSecondary = Color(0xFFE5E7EB);
  static const Color iconActive = AppColors.primaryTeal;
  static const Color iconInactive = Color(0xFF9CA3AF);

  static const Color chatBubbleStudent = AppColors.primaryTeal;
  static const Color chatBubbleAI = Color(0xFFF3F4F6);
  static const Color chatInputBackground = Color(0xFFF8F9FA);
  static const Color chatSendButton = AppColors.primaryTeal;

  static const Color border = Color(0xFFE2E8F0);
  static const Color divider = Color(0xFFE5E7EB);
  static const Color overlay = Color(0x80000000);
}

/// Dark Mode Colors
class DarkColors {
  static const Color background = Color(0xFF0F1218);
  static const Color surface = Color(0xFF1A2332);
  static const Color surfaceVariant = Color(0xFF243044);
  static const Color cardBackground = Color(0xFF1A2332);

  static const Color textPrimary = Color(0xFFF9FAFB);
  static const Color textSecondary = Color(0xFFD1D5DB);
  static const Color textHint = Color(0xFF9CA3AF);

  static const Color buttonPrimary = DarkBrandColors.primaryTeal;
  static const Color buttonAccent = DarkBrandColors.primaryOrange;
  static const Color buttonSecondary = Color(0xFF2D3A4D);
  static const Color iconActive = DarkBrandColors.primaryTeal;
  static const Color iconInactive = Color(0xFF6B7280);

  static const Color chatBubbleStudent = DarkBrandColors.primaryTeal;
  static const Color chatBubbleAI = Color(0xFF243044);
  static const Color chatInputBackground = Color(0xFF1A2332);
  static const Color chatSendButton = DarkBrandColors.primaryTeal;

  static const Color border = Color(0xFF2D3A4D);
  static const Color divider = Color(0xFF2D3A4D);
  static const Color overlay = Color(0x80000000);
}
