/*
 * LibreChat 中英文/数字「大小不一」修正补丁
 * 背景 & 说明见 ~/librechat/OPS.md（「CJK 字体对齐补丁」一节）
 *
 * 问题：LibreChat 自带的是 Inter 的**拉丁子集**（无汉字），且 6 个 Inter face 都写了
 *       `size-adjust: 94%` ⇒ 英文/数字按 94% 绘制；
 *       汉字不在 Inter 里 ⇒ 回退到 `sans-serif`（macOS = 苹方 PingFang SC）按 100% 绘制。
 *       `size-adjust` 不会传给回退字体，于是同一行里汉字比英文数字大 ~6%。
 *
 * 修法：给汉字单独注册一个 face，同样打 94%，并把它插进字体栈的**第二位**
 *       （Inter 在前，拉丁字符仍由 Inter 提供；汉字才落到我们的 face）。
 *       用 local() 引系统字体 ⇒ 零下载、零体积、不上报。
 */

/* 正文：与 Inter@94% 对齐 */
@font-face {
  font-family: 'Inter-CJK';
  src:
    local('PingFang SC'),
    local('Hiragino Sans GB'),
    local('Microsoft YaHei'),
    local('Noto Sans CJK SC'),
    local('Source Han Sans SC'),
    local('WenQuanYi Micro Hei');
  size-adjust: 94%;
  /* 只接管 CJK 范围，拉丁/数字/符号继续用 Inter */
  unicode-range:
    U+2E80-2EFF, U+3000-303F, U+3040-30FF, U+3100-312F, U+31A0-31BF,
    U+3200-32FF, U+3300-33FF, U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF,
    U+FE30-FE4F, U+FF00-FF60, U+FFE0-FFE6, U+20000-2FA1F;
}

/* 代码块：Roboto Mono 也是 latin-only，汉字会掉到系统默认 ⇒ 同样给个 94% 的 CJK face */
@font-face {
  font-family: 'Inter-CJK-Mono';
  src:
    local('PingFang SC'),
    local('Hiragino Sans GB'),
    local('Microsoft YaHei'),
    local('Noto Sans CJK SC');
  size-adjust: 94%;
  unicode-range:
    U+2E80-2EFF, U+3000-303F, U+3040-30FF, U+3100-312F,
    U+3400-4DBF, U+4E00-9FFF, U+F900-FAFF, U+FE30-FE4F, U+FF00-FF60,
    U+20000-2FA1F;
}

/* 覆盖三个入口：
 *   ① html, :host —— 应用 CSS 里直接写了 `html,:host{font-family:Inter,sans-serif}`，
 *      它比继承优先级高，必须用**同样的选择器**（同特异度、我们后加载）才能盖住
 *   ② --theme-font-family —— .font-theme-ui 走它（:root 特异性高于 html，能赢）
 *   ③ .font-sans —— tailwind 工具类里是写死的字面栈
 */
html,
:host,
:root {
  --theme-font-family: Inter, 'Inter-CJK', sans-serif;
  font-family: Inter, 'Inter-CJK', sans-serif;
}

.font-sans,
.font-theme-ui {
  font-family: Inter, 'Inter-CJK', sans-serif;
  font-family: var(--theme-font-family, Inter, 'Inter-CJK', sans-serif);
}

/* 代码/等宽：保持原有 Roboto Mono 优先级，只把 CJK face 插到系统等宽字体之前 */
.font-mono,
code,
kbd,
samp,
pre {
  font-family:
    'Roboto Mono',
    'Inter-CJK-Mono',
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Cascadia Mono,
    Liberation Mono,
    Consolas,
    monospace;
}
