/* ============================================================
   Quote System · 自定义字体声明
   ------------------------------------------------------------
   - 所有字体均通过 /fonts/*.ttf 提供 (相对路径, 与 css 同层 ../fonts/)
   - Noto Serif SC 中文衬线 (标题 / 商务感)
   - Noto Sans SC 中文无衬线 (正文 / 表单)
   - Fraunces 英文衬线 (装饰 / 标签)
   - JetBrains Mono / IBM Plex Mono 等宽 (数字 / 编码)
   - 字体锐化: font-smooth + subpixel-antialiased
   ============================================================ */
@font-face {
  font-family: "Noto Serif SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/NotoSerifSC-400.ttf") format("truetype");
}
@font-face {
  font-family: "Noto Sans SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/NotoSansSC-400.ttf") format("truetype");
}
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/Fraunces-400.ttf") format("truetype");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/JetBrainsMono-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/JetBrainsMono-Medium.ttf") format("truetype");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/JetBrainsMono-Bold.ttf") format("truetype");
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/IBMPlexMono-400.ttf") format("truetype");
}

/* 全局字体变量 - 在 base.css 中使用 */
:root {
  --serif-en: 'Fraunces', 'Times New Roman', serif;
  --serif-cn: 'Noto Serif SC', 'Songti SC', 'SimSun', serif;
  --sans-cn:  'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --mono:     'JetBrains Mono', 'IBM Plex Mono', Consolas, monospace;
}

/* 全局启用字体平滑 + 锐化 (中文小字号易糊, 必须开) */
html, body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}
input, select, textarea, button {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 数字用 tabular-nums + font-feature 让小数点对齐 */
.num, .row input.money, .field input[type="number"],
.tot-net-value, .tot-vat-value {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  letter-spacing: .01em;
}