/* ==========================================================================
   设计令牌 —— 深色为默认（挂机场景多为夜间"瞄一眼"）
   命名规范：--<group>-<role>-<state>
   组件只引用变量，不写死 HEX
   ========================================================================== */

:root {
  /* ---- 画布与面板 ---- */
  --bg-0: #0B0E1A;
  --bg-1: #141A2E;
  --bg-2: #1C2440;
  --bg-3: #273257;
  --bg-scrim: rgba(6, 8, 16, 0.72);

  --line: #2C3760;
  --line-strong: #46568C;

  /* ---- 主色：琥珀金 ---- */
  --gold-1: #FFD479;
  --gold-2: #F5B23C;
  --gold-3: #C9861F;

  /* ---- 强调：秘法紫 ---- */
  --arcane-1: #B79BFF;
  --arcane-2: #8B6BFF;
  --arcane-3: #5B3FD1;

  /* ---- 文本 ---- */
  --text-1: #EDF1FF;
  --text-2: #A6B1D4;
  --text-3: #8B94B5;

  /* ---- 语义 ---- */
  --success: #3FBF7F;
  --warning: #F5A623;
  --danger: #F28087;
  --info: #4C9AFF;
  /* 压在压暗层上的金：两主题同为亮金（.star-row 在英雄卡底部遮罩上，
     浅色主题下 --gold-1 是深金，压不住暗底） */
  --gold-on-dark: #FFD479;
  --float-dmg: #FFD8D8;
  --float-heal: #9BF0C4;
  /* 文字压在深色压暗层上（英雄名 / 等级角标） */
  --on-dark-1: #FFFFFF;
  --on-dark-2: rgba(255, 255, 255, 0.86);
  /* 压在金色主按钮上的文字 */
  --on-gold: #2A1B00;
  /* 战斗单位名遮罩带：深底托亮字（字是 --text-2 浅色）。
     立绘格有纯白底(#FFFFFF)，0.72 时白底压完只剩 #474747，配 --text-2 只有 4.35:1，
     0.82 → #0F0F0F 量级，worst-case 稳在 6:1 以上。 */
  --unit-scrim: rgba(0, 0, 0, 0.82);

  /* ---- 资源色（6 种货币，05 §2.2；色相互不混淆） ----
     金=金币 黄橙 / 紫=水晶 蓝紫 / 青=英雄经验 天蓝
     红=建造材料 砖红 / 绿=宠物精华 草绿 / 洋红=皮肤碎片 品红 */
  --res-gold: #F5B23C;
  --res-crystal: #8B6BFF;
  --res-xp: #5AD2F4;
  --res-build: #E0553F;
  --res-pet: #5FCB57;
  --res-skin: #E86ED0;

  /* ---- 职能色（唯一承担色相的维度） ---- */
  --role-guard: #6FA8FF;
  --role-warrior: #FF7A59;
  --role-ranger: #4FD6A8;
  --role-arcane: #A855F7;

  /* ---- 稀有度六阶 ---- */
  --rarity-n: #A7B2CC;
  --rarity-r: #3FBF7F;
  --rarity-sr: #4C9AFF;
  --rarity-ssr: #A855F7;
  --rarity-ur: #FF9A2E;
  --rarity-lr: #FF4F6E;

  /* ---- 装备品质六阶（与 data/equipment.js 的 QUALITIES 一一对应，
     直接复用稀有度令牌，避免再引入第二套色值） ---- */
  --eq-common: var(--rarity-n);
  --eq-uncommon: var(--rarity-r);
  --eq-rare: var(--rarity-sr);
  --eq-epic: var(--rarity-ssr);
  --eq-legendary: var(--rarity-ur);
  --eq-mythic: var(--rarity-lr);

  /* ---- 尺寸 ---- */
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 16px;
  --touch-min: 44px;
  --hud-h: 52px;
  --nav-h: 58px;

  /* ---- 字号 ---- */
  --fs-xs: 0.6875rem;
  --fs-sm: 0.8125rem;
  --fs-md: 0.9375rem;
  --fs-lg: 1.125rem;
  --fs-xl: 1.5rem;

  /* ---- 阴影 ---- */
  --shadow-card: 0 2px 10px rgba(0, 0, 0, 0.45);
  --shadow-pop: 0 12px 40px rgba(0, 0, 0, 0.6);

  /* ---- 动效档 ---- */
  --fx-dur: 220ms;
  --fx-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* 动效档 1：保留过渡，去掉发光与旋转 */
:root[data-fx="1"] {
  --fx-dur: 140ms;
}
:root[data-fx="1"] .fx-glow { box-shadow: none !important; }
:root[data-fx="1"] .fx-spin { animation: none !important; }

/* 动效档 0：除必要反馈外全部关闭 */
:root[data-fx="0"] * {
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001ms !important;
}

/* ==========================================================================
   浅色主题（户外可读性，必须提供）
   ========================================================================== */
:root[data-theme="light"] {
  --bg-0: #F2F4FB;
  --bg-1: #FFFFFF;
  --bg-2: #EAEEF9;
  --bg-3: #DCE3F5;
  --bg-scrim: rgba(30, 36, 56, 0.42);

  --line: #C7D0E8;
  --line-strong: #93A2CC;

  --gold-1: #825900;
  --gold-2: #6F4A08;
  --gold-3: #553A06;

  --arcane-1: #6A4FD1;
  --arcane-2: #5B3FD1;
  --arcane-3: #40299B;

  --text-1: #1A2036;
  --text-2: #4A5578;
  --text-3: #596078;

  /* ---- 语义色：浅色下必须压深（C4 对比度修复）----
     这 4 个令牌此前**只有深色值、没有浅色覆盖**，浅底上直接沿用
     #3FBF7F / #F5A623 / #E5484D / #4C9AFF，导致 .chip.on / .up / .down /
     战斗日志 / 角标 在浅色主题下只有 1.8~3.9:1。按色相压深，语义不变。 */
  --success: #246D48;
  --warning: #8F5E06;
  --danger: #B3383C;
  --info: #4070D0;

  /* 压在压暗层上的金 + 战斗飘字：浅底要深、深底要浅，两主题反着来 */
  --gold-on-dark: #FFD479;
  --float-dmg: #A3202D;
  --float-heal: #0A6B3D;
  --on-dark-1: #FFFFFF;
  --on-dark-2: rgba(255, 255, 255, 0.86);
  --on-gold: #FFFFFF;
  /* 浅底：字(--text-2 深色)要压在亮带上，遮罩带换成白 */
  --unit-scrim: rgba(255, 255, 255, 0.85);

  --role-guard: #2C6FD1;
  --role-warrior: #D1502B;
  --role-ranger: #1F9D74;
  --role-arcane: #7B3FD1;

  --rarity-n: #6B7699;
  --rarity-r: #1F9D74;
  --rarity-sr: #2C6FD1;
  --rarity-ssr: #7B3FD1;
  --rarity-ur: #C96B0A;
  --rarity-lr: #C42A47;

  --shadow-card: 0 2px 8px rgba(40, 50, 80, 0.14);
  --shadow-pop: 0 12px 32px rgba(40, 50, 80, 0.22);
}

/* 浅色下卡牌需要更实的边框，否则"漂浮感"过强 */
:root[data-theme="light"] .hero-card {
  border-color: var(--line-strong);
}
