import 'package:flutter/material.dart';

class ThemeConfig {
  // Font Sizes
  static const double fontSizeTiny = 8.0;
  static const double fontSizeSmall = 10.0;
  static const double fontSizeMedium = 12.0;
  static const double fontSizeBody = 14.0;
  static const double fontSizeLarge = 16.0;
  static const double fontSizeHeader = 18.0;
  static const double fontSizeXLarge = 20.0;
  static const double fontSizeTitle = 24.0;
  static const double fontSizeHero = 32.0;
  static const double fontSizeHuge = 48.0;

  // Font Weights
  static const FontWeight fontWeightNormal = FontWeight.normal;
  static const FontWeight fontWeightBold = FontWeight.bold;

  // Main Menu Colors
  static const Color mainMenuBgTop = Colors.black;
  static final Color mainMenuBgBottom = Colors.blueGrey[900]!;
  static const Color mainTitleColor = Colors.white;
  static const Color subTitleColor = Colors.grey;
  static const Color mainIconColor = Colors.amber;

  // Button Colors
  static const Color btnNewGameBg = Color(0xFFFFA000); // Colors.amber[700]
  static const Color btnNewGameText = Colors.black;
  static const Color btnContinueBg = Colors.blueAccent;
  static const Color btnContinueText = Colors.white;
  static const Color btnRestBg = Colors.blue;
  static const Color btnLeaveBg = Colors.redAccent;
  static const Color btnRerollBg = Colors.blueGrey;
  static const Color btnActionActive = Colors.redAccent; // Attack
  static const Color btnDefendActive = Colors.blueAccent; // Defend
  static const Color btnDisabled = Colors.grey;
  static const Color btnRestartBg = Colors.orange;
  static const Color btnReturnMenuBg = Colors.red;

  // Stat Colors
  static const Color statHpColor = Colors.red;
  static const Color statHpPlayerColor = Colors.green;
  static const Color statHpEnemyColor = Colors.red;
  static const Color statAtkColor = Colors.blueAccent;
  static const Color statDefColor =
      Colors.blueAccent; // Or Blue depending on context
  static const Color statLuckColor = Colors.green;
  static const Color statGoldColor = Colors.amber;

  // UI Colors
  static const Color textColorWhite = Colors.white;
  static const Color textColorGrey = Colors.grey;
  static const Color cardBgColor = Colors.black54;
  static const Color inventoryCardBg = Color(
    0xFF455A64,
  ); // Colors.blueGrey[700]
  static const Color equipmentCardBg = Color(
    0xFF546E7A,
  ); // Colors.blueGrey[600]
  static const Color emptySlotBg = Color(0xFF424242); // Colors.grey[800]
  static const Color battleBg = Colors.black87;
  static const Color shopBg = Colors.black87;
  static final Color? shopItemCardBg = Colors.blueGrey[800];
  static const Color enemyIntentBg = Colors.black54;
  static const Color enemyIntentBorder = Colors.redAccent;
  static final Color? selectionCardBg = Colors.blueGrey[800];
  static const Color selectionIconColor = Colors.blue;
  static final Color toggleBtnBg = Colors.grey[800]!;
  static final Color rewardItemBg = Colors.blueGrey[700]!;
  static const Color snackBarErrorBg = Colors.red;
  static const Color iconColorWhite = Colors.white;
  static const Color menuButtonBg = Color(0xFF424242); // Grey 800
  static const double itemIconSizeSmall = 18.0;
  static const double itemIconSizeMedium = 24.0;
  static const double letterSpacingHeader = 4.0;
  static const double paddingBtnHorizontal = 32.0;
  static const double paddingBtnVertical = 16.0;

  // Feedback Colors
  static const Color damageTextDefault = Colors.red;
  static const Color healText = Colors.green;
  static const Color missText = Colors.grey;
  static const Color failedText = Colors.redAccent;
  static const Color feedbackShadow = Colors.black;
  static const Color statDiffPositive = Colors.green;
  static const Color statDiffNegative = Colors.red;
  static const Color statDiffNeutral = Colors.grey;

  // Status Effect Colors
  static const Color effectBg = Colors.deepOrange;
  static const Color effectBuffBg = Colors.green; // New: Buff
  static const Color effectDebuffBg = Colors.deepOrange; // New: Debuff
  static const Color effectText = Colors.white;

  // Rarity Colors
  static const Color rarityNormal = Colors.white;
  static const Color rarityMagic = Colors.blueAccent;
  static const Color rarityRare = Colors.yellow;
  static const Color rarityLegendary = Colors.orange;
  static const Color rarityUnique = Colors.purple;
  static const Color rarityCommon = Colors.grey;

  // Risk Colors (from BattleScreen Dialog)
  static const Color riskSafe = Colors.green;
  static const Color riskNormal = Colors.blue;
  static const Color riskRisky = Colors.red;

  // Character Status Card
  static const double characterIconSize = 60.0;
  static const double playerImageSize = 200.0;
  static const double enemyImageSize = 200.0;
  static const Color playerImageBgColor = Colors.lightBlue;
  static const double statusEffectFontSize = 10.0;
  static const double intentFontSize = 12.0;
  static const double intentIconSize = 16.0;
}
