/* =============================================================================
   设计令牌 —— 全站视觉的唯一真源
   -----------------------------------------------------------------------------
   把散落的裸色值收敛成语义令牌。取名与取值沿用 UI 小样 v4（用户定稿版），
   材质与语义按二战战场重写。

   命名约定：
     --c-*    颜色（c = color）
     --fc-*   阵营主色 / --fa-* 阵营强调色（faction）
     --t-*    文字层级（text）
     --sp-*   间距（space，4px 基准）
     --d-*    时长（duration）
     --e-*    缓动（easing）
     --z-*    层级（z-index）
   ============================================================================= */

:root {
  color-scheme: dark;

  /* --- 基色：钢与夜 ------------------------------------------------------ */
  --c-void:        #06080a;   /* 页面底 */
  --c-ink:         #0b0f11;   /* 最深面板 */
  --c-charcoal:    #141a1c;   /* 面板 */
  --c-slate:       #1e2629;   /* 抬升面 */
  --c-slate-lit:   #2b373b;   /* 悬停面 */

  /* --- 战场：军械灰绿（原野灰取向） -------------------------------------- */
  --c-field-deep:  #0e1410;
  --c-field:       #16201a;
  --c-field-mid:   #1f2b23;
  --c-field-lit:   #2c3d31;

  /* --- 纸面：战报电报纸 ------------------------------------------------ */
  --c-paper:       #ded3b4;
  --c-paper-mid:   #c4b795;
  --c-paper-dim:   #a2957a;
  --c-paper-dark:  #756a53;

  /* --- 金属：黄铜与钢 --------------------------------------------------- */
  --c-brass-deep:  #4a3a17;
  --c-brass:       #8f7434;
  --c-brass-lit:   #c9a85e;
  --c-brass-pale:  #e8d49a;
  --c-steel-deep:  #22292c;
  --c-steel:       #495257;
  --c-steel-lit:   #8b959b;
  --c-steel-pale:  #b9c4cb;

  /* --- 强调：炮火与伤亡 ------------------------------------------------ */
  --c-fire:        #ff7a2b;
  --c-fire-lit:    #ffb066;
  --c-fire-deep:   #8a3406;
  --c-casualty:    #9b2f24;
  --c-casualty-lit:#e05a41;

  /* --- 阵营识别（复用 data/factions.json 现有主色，不改数据） ------------ */
  --fc-germany:    #4a4f55;  --fa-germany: #b5651d;
  --fc-ussr:       #7a1f1f;  --fa-ussr:    #c9a227;
  --fc-usa:        #1f3a6e;  --fa-usa:     #c9a227;
  --fc-uk:         #14284a;  --fa-uk:      #b7a27c;
  --fc-japan:      #1f3b2e;  --fa-japan:   #8c2b2b;

  /* --- 文字 6 级 ------------------------------------------------------- */
  --t-hi:          #f2ecdb;
  --t-mid:         #c6bda4;
  --t-low:         #8e8770;
  --t-faint:       #615c4a;
  --t-on-light:    #241f14;

  /* --- 数值语义（战斗语义，与股市涨跌无关） ----------------------------- */
  --stat-attack:   #f3c854;
  --stat-hp:       #e14f36;
  --stat-armor:    #8fb6cf;
  --stat-buff:     #74dd83;
  --stat-debuff:   #ef6b53;

  /* --- 关键词状态（对齐 data/keywords.json 的 5 项） -------------------- */
  --kw-blitz:      #ffb066;   /* 闪击 */
  --kw-rush:       #ff9a5c;   /* 突进 */
  --kw-aa:         #7fb2d4;   /* 防空 */
  --kw-retaliate:  #cfd8de;   /* 警戒/反击 */
  --kw-fortify:    #a8b84a;   /* 加固/工事 */
  --kw-counter:    #5fc6d8;   /* 反制（卡牌类型，非关键词） */

  /* --- 间距：4px 基准几何级数 ------------------------------------------ */
  --sp-1:  2px;
  --sp-2:  4px;
  --sp-3:  6px;
  --sp-4:  8px;
  --sp-5:  12px;
  --sp-6:  16px;
  --sp-7:  24px;
  --sp-8:  32px;
  --sp-9:  48px;
  --sp-10: 64px;
  --sp-11: 96px;

  /* --- 字体：仅系统栈，零外链（离线可玩是硬约束） ----------------------- */
  --ff-display: 'Bebas Neue', 'Oswald', 'Haettenschweiler',
                'Arial Narrow', 'Impact', 'Microsoft YaHei', sans-serif;
  --ff-body:    'Noto Serif SC', 'Source Han Serif SC', 'Songti SC',
                'STSong', Georgia, serif;
  --ff-num:     'Bahnschrift', 'DIN Alternate', 'Palatino Linotype',
                'Baskerville', Georgia, serif;

  --fs-xs:   clamp(10px, 0.72vw, 12px);
  --fs-sm:   clamp(11px, 0.82vw, 13px);
  --fs-base: clamp(12px, 0.94vw, 15px);
  --fs-lg:   clamp(15px, 1.24vw, 20px);
  --fs-xl:   clamp(21px, 1.9vw, 32px);
  --fs-2xl:  clamp(30px, 3.4vw, 54px);

  /* --- 圆角 / 描边 ---------------------------------------------------- */
  --r-xs:   2px;
  --r-sm:   4px;
  --r-md:   6px;
  --r-lg:   10px;
  --r-full: 999px;
  --bw-hair: 1px;
  --bw-thin: 2px;

  /* --- 阴影 5 档 ------------------------------------------------------ */
  --sh-1: 0 1px 3px rgba(0,0,0,.5);
  --sh-2: 0 3px 8px rgba(0,0,0,.55);
  --sh-3: 0 6px 16px -4px rgba(0,0,0,.65);
  --sh-4: 0 14px 30px -8px rgba(0,0,0,.72);
  --sh-5: 0 26px 54px -12px rgba(0,0,0,.8), 0 8px 18px -6px rgba(0,0,0,.55);
  --sh-card:      0 3px 8px rgba(0,0,0,.55), 0 10px 22px -8px rgba(0,0,0,.6);
  --sh-card-lift: 0 12px 26px rgba(0,0,0,.55), 0 30px 60px -14px rgba(0,0,0,.75);
  --sh-text-hard: 0 1px 0 #000, 0 2px 3px rgba(0,0,0,.9);
  /* 刻蚀：内凹（面板、凹槽） */
  --sh-carve: inset 0 1px 0 rgba(255,255,255,.06), inset 0 -1px 0 rgba(0,0,0,.6);
  --sh-inset-well: inset 0 2px 6px rgba(0,0,0,.7), inset 0 -1px 0 rgba(255,255,255,.04);

  /* --- 动效 ------------------------------------------------------------ */
  --d-instant: 70ms;
  --d-fast:    140ms;
  --d-base:    240ms;
  --d-slow:    420ms;
  --d-slower:  700ms;
  --e-out:     cubic-bezier(.22, .68, .28, 1);
  --e-in-out:  cubic-bezier(.55, .06, .32, .96);
  --e-spring:  cubic-bezier(.18, .96, .32, 1.24);
  --e-soft:    cubic-bezier(.4, 0, .2, 1);

  /* --- 层级 ------------------------------------------------------------ */
  --z-board:  10;
  --z-unit:   20;
  --z-hand:   40;
  --z-hover:  60;
  --z-fx:     80;
  --z-modal:  100;
  --z-toast:  110;
}

/* 阵营主题：把 --accent 换成阵营强调色（对齐参考站的 [data-hero] 做法） */
[data-faction='germany'] { --accent: var(--fa-germany); --accent-soft: rgba(181,101,29,.24); }
[data-faction='ussr']    { --accent: var(--fa-ussr);    --accent-soft: rgba(201,162,39,.24); }
[data-faction='usa']     { --accent: var(--fa-usa);     --accent-soft: rgba(201,162,39,.20); }
[data-faction='uk']      { --accent: var(--fa-uk);      --accent-soft: rgba(183,162,124,.22); }
[data-faction='japan']   { --accent: var(--fa-japan);   --accent-soft: rgba(140,43,43,.24); }
