/**
 * 全局字体排版语义层（L0～L6）
 * 维海信息化管理平台
 * 规范：docs/规则类/全局字体排版规范.md
 *
 * OA 庄重风格：页眉 18px → 卡片 16px → 正文/标签 14px → 辅助/表头 12px；
 * 层次靠字号 + 字重（600 / 500 / 400）区分，标题统一字距与行高。
 */

/* ============================================
   全局正文基底（两栏业务页）
   ============================================ */
body.two-column-layout-active,
.two-column-layout-active .two-col-main {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  color: var(--vh-text);
  line-height: var(--line-height-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ============================================
   L0 — 页面主标题（OA 页眉锚点 18px）
   ============================================ */
.pm-page-header .pm-page-header-title-wrapper h1,
.pm-page-header .pm-page-header-title-wrapper h1.h3,
.vh-type-page-title {
  font-family: var(--font-family);
  font-size: var(--type-page-title-size);
  font-weight: var(--type-page-title-weight);
  color: var(--vh-text);
  line-height: var(--line-height-title);
  letter-spacing: var(--letter-spacing-title);
}

/* ============================================
   L1 — 卡片/区块标题（16px，低于页眉一档）
   ============================================ */
.form-card-title,
.detail-card-title,
.modal-title,
.vh-type-card-title {
  font-family: var(--font-family);
  font-size: var(--type-card-title-size);
  font-weight: var(--type-card-title-weight);
  color: var(--vh-text);
  line-height: var(--line-height-title);
  letter-spacing: var(--letter-spacing-title);
}

.modal-title {
  font-size: var(--type-modal-title-size);
  color: var(--modal-title-color, var(--vh-text));
}

.form-card-title i,
.detail-card-title i {
  color: var(--vh-primary);
}

/* ============================================
   L2 — 小节/子区块标题
   ============================================ */
.detail-subsection-title,
.list-page-strip-control,
.list-page-strip-control__label,
.vh-type-section-title {
  font-family: var(--font-family);
  font-size: var(--type-section-title-size);
  font-weight: var(--type-section-title-weight);
  color: var(--vh-text);
  line-height: var(--line-height-title);
}

.list-page-strip-control {
  color: var(--vh-text-muted);
}

/* ============================================
   L3 — 字段标签（表单 14px/500；详情只读 12px/500 次要色）
   ============================================ */
.form-field-wrapper .form-label,
.form-item .form-label,
.vh-type-label {
  font-family: var(--font-family);
  font-size: var(--type-label-size);
  font-weight: var(--type-label-weight);
  color: var(--vh-text);
  line-height: var(--line-height-tight);
}

.detail-field-label,
.vh-detail-base-scope .vh-form-grid > .vh-form-cell > .form-item.detail-form-item > .form-label {
  font-family: var(--font-family);
  font-size: var(--font-size-sm);
  font-weight: var(--type-label-weight);
  color: var(--vh-text-muted);
  line-height: var(--line-height-tight);
}

.list-page-filter-bar .list-page-filter-label:not(.visually-hidden) {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--vh-text-muted);
  line-height: var(--line-height-tight);
}

/* ============================================
   L4 — 字段值 / 录入内容
   ============================================ */
.form-field-wrapper .form-control,
.form-field-wrapper .form-select,
.form-item .form-control-wrapper .form-control,
.form-item .form-control-wrapper .form-select,
.detail-field-value,
.vh-detail-base-scope .detail-field-display.form-control,
.vh-sb__label,
.vh-type-body {
  font-family: var(--font-family);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  color: var(--vh-text);
  line-height: var(--line-height-base);
}

.vh-text-mono,
.vh-type-body.vh-text-mono,
.form-control.vh-text-mono,
.detail-field-value.vh-text-mono {
  font-family: var(--font-family-mono);
}

/* ============================================
   L5 — 辅助与反馈
   ============================================ */
.form-field-wrapper .form-text,
.form-item .form-text,
.form-field-wrapper .invalid-feedback,
.form-item .invalid-feedback,
.pm-page-header .pm-page-header-title-wrapper .pm-subtitle,
.vh-type-caption {
  font-family: var(--font-family);
  font-size: var(--type-caption-size);
  font-weight: var(--type-caption-weight);
  line-height: var(--line-height-base);
}

.form-field-wrapper .invalid-feedback,
.form-item .invalid-feedback {
  color: var(--vh-error);
}

.form-field-wrapper .form-text,
.form-item .form-text,
.pm-page-header .pm-page-header-title-wrapper .pm-subtitle {
  color: var(--vh-text-muted);
}

/* ============================================
   L6 — 表格与列表
   ============================================ */
.list-page-table thead th,
.list-page-table thead td,
.vh-type-table-head {
  font-family: var(--font-family);
  font-size: var(--type-table-head-size);
  font-weight: var(--type-table-head-weight);
  color: var(--vh-text);
  line-height: var(--line-height-tight);
}

.list-page-table tbody td,
.list-page-filter-tabs .nav-link {
  font-family: var(--font-family);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-base);
  color: var(--vh-text);
}

.list-page-filter-tabs .nav-link {
  color: var(--vh-text-muted);
}

.list-page-filter-tabs .nav-link.active {
  font-weight: var(--font-weight-semibold);
  color: var(--vh-primary);
}

.vh-sb__item.is-active,
.vh-sb__child.is-active {
  font-weight: var(--font-weight-semibold);
}
