/*
 * 权排排统一字体与字号体系（2026-09-22）
 *
 * 新组件必须使用语义 token，不新增任意 px 字号。现有页面迁移时可按实际
 * 信息职责选择对应层级；正常业务信息的最小字号为 caption（12px）。
 */
:root {
  --qpp-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
  --qpp-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

  --qpp-type-display-size: clamp(2rem, 1.714rem + 1.43vw, 2.5rem);
  --qpp-type-page-title-size: clamp(1.75rem, 1.607rem + 0.71vw, 2rem);
  --qpp-type-section-title-size: 1.5rem;
  --qpp-type-title-size: 1.25rem;
  --qpp-type-subtitle-size: 1.125rem;
  --qpp-type-body-size: 1rem;
  --qpp-type-body-compact-size: 0.9375rem;
  --qpp-type-detail-size: 0.875rem;
  --qpp-type-meta-size: 0.8125rem;
  --qpp-type-caption-size: 0.75rem;

  --qpp-type-display-line: 1.15;
  --qpp-type-page-title-line: 1.25;
  --qpp-type-section-title-line: 1.35;
  --qpp-type-title-line: 1.4;
  --qpp-type-subtitle-line: 1.45;
  --qpp-type-body-line: 1.625;
  --qpp-type-body-compact-line: 1.6;
  --qpp-type-detail-line: 1.55;
  --qpp-type-meta-line: 1.5;
  --qpp-type-caption-line: 1.5;

  --qpp-font-regular: 400;
  --qpp-font-medium: 500;
  --qpp-font-semibold: 600;
  --qpp-font-bold: 700;
  --qpp-font-heavy: 800;

  --qpp-tracking-display: -0.015em;
  --qpp-tracking-heading: -0.01em;
  --qpp-tracking-body: 0;
  --qpp-tracking-overline: 0.06em;
}

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea {
  font-family: var(--qpp-font-sans);
}

body {
  font-size: var(--qpp-type-body-size);
  line-height: var(--qpp-type-body-line);
  letter-spacing: var(--qpp-tracking-body);
  font-synthesis-weight: none;
  text-rendering: optimizeLegibility;
}

code,
kbd,
pre,
samp {
  font-family: var(--qpp-font-mono);
}

/* 语义工具类用于新页面；旧页面通过同名 token 渐进迁移。 */
.qpp-type-display {
  font-size: var(--qpp-type-display-size);
  font-weight: var(--qpp-font-heavy);
  line-height: var(--qpp-type-display-line);
  letter-spacing: var(--qpp-tracking-display);
  text-wrap: balance;
}

.qpp-type-page-title {
  font-size: var(--qpp-type-page-title-size);
  font-weight: var(--qpp-font-bold);
  line-height: var(--qpp-type-page-title-line);
  letter-spacing: var(--qpp-tracking-heading);
  text-wrap: balance;
}

.qpp-type-section-title {
  font-size: var(--qpp-type-section-title-size);
  font-weight: var(--qpp-font-bold);
  line-height: var(--qpp-type-section-title-line);
  letter-spacing: var(--qpp-tracking-heading);
  text-wrap: balance;
}

.qpp-type-title {
  font-size: var(--qpp-type-title-size);
  font-weight: var(--qpp-font-semibold);
  line-height: var(--qpp-type-title-line);
}

.qpp-type-subtitle {
  font-size: var(--qpp-type-subtitle-size);
  font-weight: var(--qpp-font-semibold);
  line-height: var(--qpp-type-subtitle-line);
}

.qpp-type-body {
  font-size: var(--qpp-type-body-size);
  font-weight: var(--qpp-font-regular);
  line-height: var(--qpp-type-body-line);
  text-wrap: pretty;
}

.qpp-type-body-compact {
  font-size: var(--qpp-type-body-compact-size);
  font-weight: var(--qpp-font-regular);
  line-height: var(--qpp-type-body-compact-line);
}

.qpp-type-detail {
  font-size: var(--qpp-type-detail-size);
  font-weight: var(--qpp-font-regular);
  line-height: var(--qpp-type-detail-line);
}

.qpp-type-meta {
  font-size: var(--qpp-type-meta-size);
  font-weight: var(--qpp-font-regular);
  line-height: var(--qpp-type-meta-line);
}

.qpp-type-caption {
  font-size: var(--qpp-type-caption-size);
  font-weight: var(--qpp-font-medium);
  line-height: var(--qpp-type-caption-line);
}

.qpp-type-overline {
  font-size: var(--qpp-type-caption-size);
  font-weight: var(--qpp-font-bold);
  line-height: var(--qpp-type-caption-line);
  letter-spacing: var(--qpp-tracking-overline);
}

/* 共享导航样式仍服务 R16；只在加载本文件的非 R16 页面修正其辅助标签。 */
table.q-responsive-table td::before {
  font-size: var(--qpp-type-caption-size);
  line-height: var(--qpp-type-caption-line);
}

.q-global-nav a {
  font: var(--qpp-font-semibold) var(--qpp-type-caption-size) / 1.2 var(--qpp-font-sans);
}

/* public-tools.css 也被首页结果应用复用，因此不改共享文件，只在非 R16 页面覆写。 */
#pricing-page .pp-head h2,
#pricing-page .pp-price-intro h3,
.pg-hero.pricing-intro > h1,
.pg.pricing-intro > h2 {
  font-size: var(--qpp-type-display-size);
  font-weight: var(--qpp-font-heavy);
  line-height: var(--qpp-type-display-line);
  letter-spacing: var(--qpp-tracking-display);
}

#pricing-page .pp-head p,
#pricing-page .pp-price-intro p,
.pricing-intro.pricing-intro > p {
  font-size: var(--qpp-type-body-size);
  line-height: var(--qpp-type-body-line);
}

.tool-seller-entry input,
.tool-seller-entry > .btn {
  font-size: var(--qpp-type-body-size);
}

.tool-seller-entry > .tc-entry-label,
.tp-data-grid span {
  font-size: var(--qpp-type-detail-size);
}

.tool-seller-entry [data-entry-note] {
  font-size: var(--qpp-type-meta-size);
}

.tp-data-tools > h3 {
  font-size: var(--qpp-type-section-title-size);
  line-height: var(--qpp-type-section-title-line);
}

.tp-data-grid strong {
  font-size: var(--qpp-type-title-size);
  line-height: var(--qpp-type-title-line);
}

/* 对话框资源也由 R16 复用；同样只在显式加载本文件的页面统一字号。 */
.site-dialog-icon {
  font-size: var(--qpp-type-subtitle-size);
  font-weight: var(--qpp-font-heavy);
}

.site-dialog-title {
  font-size: var(--qpp-type-subtitle-size);
  line-height: var(--qpp-type-subtitle-line);
}

.site-dialog-message,
.site-dialog-button {
  font-size: var(--qpp-type-meta-size);
}

.site-dialog-button {
  font-weight: var(--qpp-font-heavy);
}
