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

class FinanceDesignSystem {
  // --- Colors ---
  static Color get primaryDark => Get.isDarkMode ? const Color(0xFFE0E0E0) : const Color(0xFF0A0E21);
  static Color get accentBlue => const Color(0xFF3D5AFE);
  static Color get successGreen => const Color(0xFF00C853);
  static Color get dangerRed => const Color(0xFFD50000);
  static Color get backgroundColor => Get.isDarkMode ? const Color(0xFF0A0E21) : const Color(0xFFF6F8FA);
  static Color get cardColor => Get.isDarkMode ? const Color(0xFF1E1E2E) : const Color(0xFFFFFFFF);
  static Color get textSecondary => Get.isDarkMode ? Colors.white70 : const Color(0xFF757575);
  static Color get textMuted => Get.isDarkMode ? Colors.white38 : const Color(0xFFBDBDBD);
  static Color get borderColor => Get.isDarkMode ? Colors.white10 : Colors.grey.withOpacity(0.1);

  // --- Shadows ---
  static BoxShadow get softShadow => BoxShadow(
    color: Colors.black.withOpacity(Get.isDarkMode ? 0.3 : 0.05),
    blurRadius: 10,
    offset: const Offset(0, 4),
  );

  // --- Gradients ---
  static LinearGradient get balanceGradient => LinearGradient(
    colors: Get.isDarkMode 
      ? [const Color(0xFF1E1E2E), const Color(0xFF2A2A3E)]
      : [const Color(0xFF0A0E21), const Color(0xFF1A237E)],
    begin: Alignment.topLeft,
    end: Alignment.bottomRight,
  );

  static const LinearGradient dangerGradient = LinearGradient(
    colors: [Color(0xFFD50000), Color(0xFFFF5252)],
    begin: Alignment.topLeft,
    end: Alignment.bottomRight,
  );

  // --- Radius ---
  static const double mainRadius = 16.0;
  static const double cardRadius = 20.0;
  static const double buttonRadius = 12.0;

  // --- Spacing ---
  static const double horizontalPadding = 16.0;
  static const double verticalSectionPadding = 24.0;

  // --- Text Styles ---
  static TextStyle get balanceStyle => const TextStyle(
    fontSize: 32,
    fontWeight: FontWeight.bold,
    color: Colors.white,
  );

  static TextStyle get headingStyle => TextStyle(
    fontSize: 18,
    fontWeight: FontWeight.bold,
    color: primaryDark,
  );

  static TextStyle get subHeadingStyle => TextStyle(
    fontSize: 14,
    color: textSecondary,
  );
}
