/* 全局字号层级：所有页面最后加载此文件，统一维护文字尺寸。 */
:root {
  --font-page-title: 20px;
  --font-section-title: 17px;
  --font-card-title: 16px;
  --font-body: 14px;
  --font-caption: 12px;
  --font-input: 16px;
  --font-stat: 32px;
}

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

body[data-page] {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Microsoft YaHei', sans-serif;
  font-size: var(--font-body);
  line-height: 1.6;
}

body[data-page] h1,
body[data-page] .page-heading h1,
body[data-page] .intro-block h1,
body[data-page] .with-art h1 {
  font-size: var(--font-page-title);
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: 0;
}

body[data-page] h2,
body[data-page] .panel .section-heading h2,
body[data-page] .merchant-section-heading h2 {
  font-size: var(--font-section-title);
  font-weight: 600;
  line-height: 1.5;
}

body[data-page] h3,
body[data-page] .merchant-section h3,
body[data-page] .record-card h3,
body[data-page] .task-card h3,
body[data-page] .shot-copy h3,
body[data-page] .completed-card h3 {
  font-size: var(--font-card-title);
  font-weight: 600;
  line-height: 1.5;
}

body[data-page] .merchant-summary h2,
body[data-page] .summary-top h2 {
  font-size: var(--font-page-title);
}

body[data-page] .detail-plan h2 {
  font-size: var(--font-body);
}

body[data-page] .stat-card b {
  font-size: var(--font-stat);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.5px;
}

body[data-page] .stat-card > span {
  font-size: var(--font-body);
  font-weight: 600;
}

body[data-page] .stat-card small,
body[data-page] .help,
body[data-page] .intro-block p,
body[data-page] .brand small,
body[data-page] .section-heading > .muted,
body[data-page] .merchant-count,
body[data-page] .page-heading .merchant-count,
body[data-page] .address,
body[data-page] .record-meta,
body[data-page] .record-card .merchant-copy > .muted,
body[data-page] .task-deadline,
body[data-page] .task-delivery p,
body[data-page] .task-delivery p > span,
body[data-page] .completed-card p,
body[data-page] .summary-top p,
body[data-page] .progress-row > span,
body[data-page] .progress-labels,
body[data-page] .detail-action-hint,
body[data-page] .month-label,
body[data-page] .shot-status,
body[data-page] .shot-spec,
body[data-page] .shot-tab small,
body[data-page] .upload-tile,
body[data-page] .category-guide,
body[data-page] .shot-instructions summary,
body[data-page] .file-warning,
body[data-page] .filter-summary,
body[data-page] .filter-field,
body[data-page] .pagination-status {
  font-size: var(--font-caption);
  line-height: 1.65;
}

body[data-page] .badge,
body[data-page] .merchant-section .badge {
  font-size: var(--font-caption);
  font-weight: 500;
}

body[data-page] .brand strong {
  font-size: 18px;
  font-weight: 650;
}

body[data-page] .profile {
  font-size: var(--font-body);
}

body[data-page] .avatar {
  font-size: 16px;
}

body[data-page] .merchant-avatar,
body[data-page] .merchant-section .merchant-avatar,
body[data-page] .task-card .merchant-avatar {
  font-size: 24px;
}

body[data-page] .merchant-avatar.large {
  font-size: 28px;
}

body[data-page] .merchant-section .card-bottom p,
body[data-page] .record-card .card-bottom p {
  font-size: var(--font-caption);
}

body[data-page] .merchant-section .card-bottom b,
body[data-page] .task-delivery strong,
body[data-page] .progress-labels b {
  font-size: var(--font-body);
}

body[data-page] .button,
body[data-page] .quick-actions .button,
body[data-page] .detail-primary-action .button {
  font-size: var(--font-card-title);
  font-weight: 600;
}

body[data-page] .text-link,
body[data-page] .merchant-section .card-bottom .text-link,
body[data-page] .merchant-section-heading > .text-link,
body[data-page] .record-card .text-link,
body[data-page] .mini-record .text-link,
body[data-page] .task-shoot,
body[data-page] .text-button {
  font-size: var(--font-body);
  font-weight: 500;
}

body[data-page] .info-list > div,
body[data-page] .shot-copy p,
body[data-page] .filter-buttons button,
body[data-page] .merchant-filters summary {
  font-size: var(--font-body);
  line-height: 1.6;
}

body[data-page] .mini-record h3 {
  font-size: var(--font-body);
}

body[data-page] .mini-record p {
  font-size: var(--font-caption);
}

body[data-page] .task-tabs button,
body[data-page] .shot-tab strong {
  font-size: var(--font-card-title);
}

body[data-page] .task-tabs button span {
  font-size: var(--font-caption);
}

body[data-page] input,
body[data-page] textarea,
body[data-page] .filter-input input {
  font-size: var(--font-input);
  line-height: 1.5;
}

body[data-page] select,
body[data-page] .filter-field select {
  font-size: var(--font-body);
}

body[data-page='login'] h1 {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
}

body[data-page='login'] .intro,
body[data-page='login'] label,
body[data-page='login'] .security,
body[data-page='login'] .notice {
  font-size: var(--font-body);
}

body[data-page='login'] .security {
  font-size: var(--font-caption);
}

body[data-page='login'] .input-row input {
  font-size: var(--font-input);
}

body[data-page='login'] .login {
  font-size: var(--font-card-title);
  font-weight: 600;
}

body[data-page='login'] .login span {
  font-size: 20px;
}

/* 首页品牌名称单独强调，不影响全局标题和正文层级。 */
body[data-page='home'] .brand strong {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.35;
}
