/* ==========================================================================
   QuickFind · v4-skin.css —— 三站通用换肤层（官网 / 系统状态 / 历史版本）
   --------------------------------------------------------------------------
   作用：在不改动任何 HTML 结构与既有 JS 的前提下，把三站视觉从
        「青绿 teal（各站 site.css 遗留）」切换为 R59 规定的「蓝色 blue 体系」。
   原理：本文件在站点自身 site.css（及专属 css）之后加载，
         同名 CSS 变量后写覆盖，布局规则不受影响 → 各站全部功能脚本
         （nav-session / site-search / i18n / auth / status / releases …）零改动继续工作。
   覆盖范围：同时覆盖官网 site.css 与两站精简 site.css 两套变量命名
         （--bad / --danger、--line-2 / --line-strong、--brand-soft /
          --brand-grad-soft 等互不冲突，可安全共存于一个文件）。
   接入：在页面 </head> 前、最后一个 <link rel="stylesheet"> 之后引入：
         <link rel="stylesheet" href="…/assets/css/v4-skin.css">

   ★ 取值纪律（R59 §1 强制）：
     本文件的每个色值都必须等于 tokens.css 的同名令牌，**不得自行取色**。
     三份副本（官网 / status / releases）必须字节一致，由
     _tools/check_web_tokens.js 强制校验 —— 历史上两站副本曾缺少
     页脚规则（132-169 行）导致三站视觉漂移，本次已合并。
   ========================================================================== */

/* ============================== 浅色（默认） ============================== */
:root {
  /* —— 品牌色 → R59 蓝色体系（--qf-primary #2563EB / --qf-accent #0891B2）—— */
  --brand: #2563eb;                  /* = tokens.css --qf-primary */
  --brand-2: #3b82f6;                /* 渐变中段 / 次强调 */
  --brand-3: #0891b2;                /* 亮点缀 = tokens.css --qf-accent */
  --accent: #0891b2;
  --brand-grad: linear-gradient(135deg, #2563eb 0%, #0891b2 100%);
  --brand-grad-soft: linear-gradient(135deg, rgba(37, 99, 235, .10) 0%, rgba(8, 145, 178, .10) 100%);
  --brand-glow: rgba(37, 99, 235, .22);   /* = tokens.css --qf-primary-ring */

  /* 官网深色块引用了 --brand-deep（深色下作「更亮的主色」），浅色下同步给两站命名 */
  --brand-deep: #1d4ed8;            /* = tokens.css --qf-primary-hover */
  --brand-ink: #1e40af;             /* 深一档的按压/文字态 */
  --brand-soft: #eef3fd;            /* = tokens.css --qf-primary-soft 同色系 */
  --brand-soft-2: #dbe7fb;

  /* —— 背景层 —— */
  --bg: #fbfcfe;
  --bg-2: #f4f6fb;                  /* 官网次级背景 */
  --bg-soft: #f4f6fb;               /* 两站次级背景 */
  --card: #ffffff;

  /* —— 文本层 —— */
  --ink: #0f1729;
  --ink-2: #3f4a63;
  --muted: #5b6478;

  /* —— 边框 —— */
  --line: #e4e8f0;
  --line-2: #edf0f6;
  --line-strong: #cbd3e1;

  /* —— 语义色（对齐 R59 令牌，正文可用、对比度 ≥ 4.5:1）—— */
  --ok: #047857;      --ok-soft: #e7f6ef;
  --warn: #b45309;    --warn-soft: #fdf3e3;
  --bad: #b91c1c;     --danger: #b91c1c;   --danger-soft: #fdeceb;
  /* --beta / --beta-soft（两站 beta 标签）保持原值，不动 */

  /* —— 圆角：向 R59 令牌（sm 8 / md 12）靠拢 —— */
  --radius: 12px;
  --radius-sm: 8px;
  --radius-xs: 6px;
  --r-sm: 8px;

  /* —— 阴影：对齐 R59 --qf-shadow-sm/md/lg —— */
  --shadow-sm: 0 1px 2px rgba(15, 23, 41, .06), 0 1px 3px rgba(15, 23, 41, .04);
  --shadow: 0 4px 12px -2px rgba(15, 23, 41, .10), 0 2px 6px -2px rgba(15, 23, 41, .06);
  --shadow-lg: 0 18px 40px -12px rgba(15, 23, 41, .18), 0 8px 16px -8px rgba(15, 23, 41, .10);

  /* —— 布局 —— */
  --maxw: 1200px;                   /* R59 容器宽度（--qf-container） */

  /* —— 滚动条（官网深色块的同名变量，浅色一并给齐）—— */
  --scroll-thumb: #cbd3e1;
  --scroll-thumb-hover: #a9b4c9;
}

/* ============================== 深色 ============================== */
/* 说明：各站 site.css 的深色块未重定义 --brand / --ok / --warn / --bad 等，
   导致深色下沿用浅色值（偏暗、发灰）。此处按 R59 深色令牌补齐，
   主色用 blue-400（#60A5FA）保证深底可读性。 */
[data-theme="dark"] {
  --brand: #60a5fa;                 /* = tokens.css --qf-primary（深色） */
  --brand-2: #93c5fd;
  --brand-3: #22d3ee;
  --accent: #22d3ee;
  --brand-grad: linear-gradient(135deg, #2563eb 0%, #22d3ee 100%);
  --brand-grad-soft: linear-gradient(135deg, rgba(37, 99, 235, .18) 0%, rgba(34, 211, 238, .14) 100%);
  --brand-glow: rgba(96, 165, 250, .30);

  --brand-deep: #93c5fd;
  --brand-ink: #bfdbfe;
  --brand-soft: rgba(37, 99, 235, .18);
  --brand-soft-2: rgba(37, 99, 235, .26);

  --bg: #070a12;
  --bg-2: #0d1220;
  --bg-soft: #0d1220;
  --card: #131a2a;

  --ink: #e7ecf7;
  --ink-2: #c3cddf;
  --muted: #98a4bd;

  --line: #232d43;
  --line-2: #1c2438;
  --line-strong: #33405c;

  --ok: #34d399;      --ok-soft: rgba(52, 211, 153, .14);
  --warn: #fbbf24;    --warn-soft: rgba(251, 191, 36, .14);
  --bad: #f87171;     --danger: #f87171;   --danger-soft: rgba(248, 113, 113, .14);

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .40);
  --shadow: 0 6px 16px -4px rgba(0, 0, 0, .55);
  --shadow-lg: 0 22px 48px -14px rgba(0, 0, 0, .70);

  --scroll-thumb: #33405c;
  --scroll-thumb-hover: #4a5a7d;
}

/* ==================== 上部导航：外链 ↗ 标记 + 防换行 ====================
   三站导航同为 .nav-links；外链均带 target="_blank"。
   用 ::after 追加 ↗，不触碰 HTML（不影响 i18n 的 data-i18n 文本替换）。 */
.nav-links a { white-space: nowrap; }   /* 防止「功能特性」被挤成竖排 */
.nav-links a[target="_blank"]::after {
  content: "\2197";                     /* ↗ */
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  margin-left: 3px;
  vertical-align: 1.5px;
  opacity: .6;
  transition: opacity 120ms ease;
}
.nav-links a[target="_blank"]:hover::after { opacity: 1; }

/* ==================== 页脚与底部：外链 ↗ + 底部入口布局 ==================== */
/* 顶导不再放系统状态 / 历史版本，改由页脚与底部承载 */
.footer-col a[target="_blank"]::after {
  content: "\2197";                     /* ↗ */
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  margin-left: 3px;
  vertical-align: 1.5px;
  opacity: .6;
  transition: opacity 120ms ease;
}
.footer-col a[target="_blank"]:hover::after { opacity: 1; }

/* footer-bottom 原本两栏，新增第三块入口后允许换行，避免挤成一团 */
.footer-bottom {
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: center;
}
.qf-bottom-links {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.qf-bottom-links a { white-space: nowrap; }
.qf-bottom-links a[target="_blank"]::after {
  content: "\2197";
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  margin-left: 2px;
  vertical-align: 1.5px;
  opacity: .6;
}
.qf-bottom-links a[target="_blank"]:hover::after { opacity: 1; }