/*
 * 全站唯一的文字规格表。布局文件不得再定义 font / line-height / letter-spacing。
 * 正文 15/24；说明与链接 14/22；标注 13/20；控件/模块标题 16/24；
 * 金额与弹层标题 18/26；页面标题 24/34；首页品牌标题 30/42。
 * 大金额：案例 32/40，报告 48/56。字重仅 400、600。
 * 只有品牌名和首页主标题使用宋体，其余文字、金额、编号使用系统字体。
 */
:root {
  --type-scale: 1;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --serif: "Songti SC", "STSong", "Noto Serif SC", "SimSun", Georgia, serif;
  --type-caption: calc(13px * var(--type-scale));
  --type-caption-line: calc(20px * var(--type-scale));
  --type-secondary: calc(14px * var(--type-scale));
  --type-secondary-line: calc(22px * var(--type-scale));
  --type-body: calc(15px * var(--type-scale));
  --type-body-line: calc(24px * var(--type-scale));
  --type-control: calc(16px * var(--type-scale));
  --type-control-line: calc(24px * var(--type-scale));
  --type-section: calc(18px * var(--type-scale));
  --type-section-line: calc(26px * var(--type-scale));
  --type-title: calc(24px * var(--type-scale));
  --type-title-line: calc(34px * var(--type-scale));
  --type-brand: calc(30px * var(--type-scale));
  --type-brand-line: calc(42px * var(--type-scale));
  --type-case: calc(32px * var(--type-scale));
  --type-case-line: calc(40px * var(--type-scale));
  --type-result: calc(48px * var(--type-scale));
  --type-result-line: calc(56px * var(--type-scale));
  --weight-regular: 400;
  --weight-emphasis: 600;
  --radius-card: 16px;
  --radius-control: 12px;
  --radius-label: 6px;
}

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-family: var(--sans);
  font-size: var(--type-body);
  font-weight: var(--weight-regular);
  line-height: var(--type-body-line);
  letter-spacing: 0;
  font-variant-numeric: lining-nums tabular-nums;
}
button, input, select, textarea, h1, h2, h3, h4, h5, h6 { font: inherit; letter-spacing: inherit; }
button, input, select, textarea { font-variant-numeric: inherit; }
b, strong { font-weight: var(--weight-emphasis); }
em, .lockbox .mk i, .pstage .tl .n i, .rident i { font-style: normal; }

/* 正文：相同阅读任务使用同一字级和行距。 */
p.lede, .result-explain, .doc, .item-evidence p, #rLetter, .letter p,
.policy-source p, .steps .dd, .fu .fn, .fu .fr .fc, .rreply .rd,
.pstage .ps-d, .lockbox .dd, .cmp .v {
  font-size: var(--type-body);
  line-height: var(--type-body-line);
  font-weight: var(--weight-regular);
  text-wrap: pretty;
}

/* 次级说明 / 字段标签 / 展开入口 / 轻操作。 */
.note p, .ways .w em, .policy-match p, .aibanner .d, .aibanner>p,
.aistage .nt, .evd .ds, .evd .was, .compact-case .ln .k,
.compact-case .big .k, .settle .lk, .field label,
.policy-search label, .policy-match label, .linkbox .u,
.row .nm, .cmp .lbl, .unlocked .tx, .lkerr,
.text-btn, .skip, .skip.plain, .brandbar .lk, .footnav span,
.file-actions button, .material-head .text-btn, .filed .text-btn, .filed .clr,
.photo-close, .lkerr .lkx span, .mine .mh .mact span, .mine .mdel,
.case-details summary, .more-cases summary, .policy-search summary,
.policy-source summary, .item-evidence summary, .letter-fields>summary,
.report-info>summary, .share-grid .lb, .toast, .loading .tx, .field-error {
  font-size: var(--type-secondary);
  line-height: var(--type-secondary-line);
  font-weight: var(--weight-regular);
}
.text-btn, .filed .text-btn, .brandbar .lk, .mine .mh .mact span { font-weight: var(--weight-emphasis); }
.field label, .policy-search label, .policy-match label { color: var(--ink2); }
.policy-search summary, .policy-source summary, .item-evidence summary,
.case-details summary, .more-cases summary, .letter-fields>summary,
.report-info>summary { min-height: 48px; padding-top: 13px; padding-bottom: 13px; }

/* 轻量标注：时间、状态、进度、来源统一 13/20，不再混用小数字号。 */
p.fine, .market-free, .trust span, .nav .cap, .nav .step,
.compact-case .lh, .compact-case .lf, .factsrc, .facts .l,
.dropzone .b, .material-title span, .material-state, #suppFile .unlocked,
.ways .wh, .ways .wfoot, .policy-match .match-kicker,
.result-context, .result-help, #rRecon, .result-state,
.check-heading>span.item-state, .check-amounts div,
.report-info .rk .m, .rk .m, .rident, .rlabel, .letter .lfoot,
.pstage .ps-b, .pstage .tl .n, .pstage .tl .n .tm,
.fu .fd, .fu .fr .fl, .mine .ms, .mine .mhint, .mine .mtag,
.mine .mmore, .row .grade, .lockbox .mk i,
.aitimer, .aistage .ms, .aitag, .thumbgrid .tb .sz,
.upload-step, .step-dot, .evd .no, .evd .ar,
#previewTools>span, #previewTools>button, #previewPanel p {
  font-size: var(--type-caption);
  line-height: var(--type-caption-line);
  font-weight: var(--weight-regular);
  letter-spacing: 0;
}
.step-dot, .upload-step.current, .result-state, .item-state,
.pstage .ps-b, .mine .mtag, .aitag, .fu .fr .fl, .ways .wh,
.policy-match .match-kicker { font-weight: var(--weight-emphasis); }
.upload-step.current>span { font-weight: inherit; }
.material-title span { color: var(--ink2); }
.material-state>span { font-size: inherit; line-height: inherit; }
.aistage .ms, .aistage.skip .tt, .aistage.skip .nt, .evd .ar { color: var(--ink3); }

/* 卡片标题与操作：16/24，避免同一级标题出现 15/17/19 等任意字号。 */
.material-title, .dropzone .a, .opt .tt, .steps .tt,
.check-heading, .pstage .ps-t, .fu .ft, .rreply .rt,
.aibanner .t, .aibanner>b, .aistage .tt,
.mine .mo, .mine .mh, .doc h3, .notice-title, .filed .nm, .policy-match>b,
.rk .t, .report-info .rk>.t, .letter .lh, .lockbox .tt, .cmp .t .nm {
  font-family: var(--sans);
  font-size: var(--type-control);
  line-height: var(--type-control-line);
  font-weight: var(--weight-emphasis);
  letter-spacing: 0;
}
.mine .mh { font-size: var(--type-secondary); line-height: var(--type-secondary-line); }
.aistage .tt { font-weight: var(--weight-regular); }
.aistage.run .tt { font-weight: var(--weight-emphasis); }
.opt .dd { font-size: var(--type-secondary); line-height: var(--type-secondary-line); }
.kicker { font-size: var(--type-secondary); line-height: var(--type-secondary-line); font-weight: var(--weight-emphasis); letter-spacing: 0; }
.result-amount>span, .result-unknown { font-size: var(--type-secondary); line-height: var(--type-secondary-line); }
.steps .n { font-size: var(--type-secondary); line-height: var(--type-secondary-line); font-weight: var(--weight-emphasis); }

/* 页面标题保持一致；宋体仅用于品牌和首页主标题。 */
h2.sec, .result-title { font: var(--weight-emphasis) var(--type-title)/var(--type-title-line) var(--sans); letter-spacing: 0; }
h1.big { font: var(--weight-emphasis) var(--type-brand)/var(--type-brand-line) var(--serif); letter-spacing: 0; }
.brandbar .nm { font: var(--weight-emphasis) var(--type-section)/var(--type-section-line) var(--serif); letter-spacing: 0; }
#shTitle { font-size: var(--type-section); line-height: var(--type-section-line); font-weight: var(--weight-emphasis); }

/* 数值：全站使用同一系统字体与等宽数字，订单号不混用宋体。 */
.settle .lv, .check-amounts strong, .mine .mv, .row .amt, .cmp .t .amt {
  font-family: var(--sans);
  font-size: var(--type-section);
  line-height: var(--type-section-line);
  font-weight: var(--weight-emphasis);
  font-variant-numeric: lining-nums tabular-nums;
  letter-spacing: 0;
}
.compact-case .ln .v, .evd .now {
  font-size: var(--type-control);
  line-height: var(--type-control-line);
  font-weight: var(--weight-emphasis);
}
.compact-case .big .v, .facts .n { font: var(--weight-emphasis) var(--type-case)/var(--type-case-line) var(--sans); letter-spacing: 0; }
.result-amount strong { font: var(--weight-emphasis) var(--type-result)/var(--type-result-line) var(--sans); letter-spacing: 0; }
.result-amount strong, .compact-case .big .v, .facts .n { font-variant-numeric: lining-nums tabular-nums; }
.result-amount .currency { font-size: var(--type-title); line-height: var(--type-title-line); font-weight: var(--weight-emphasis); }
.pstage .tl .n.on { font-weight: var(--weight-emphasis); }
.inline-claim-amount { color: var(--accent); }
#dNo, .settle .status-value { font-size: var(--type-secondary); line-height: var(--type-secondary-line); overflow-wrap: anywhere; }
#rDiff.amount-pending { font-size: var(--type-section); }

/* 组件外观：同类按钮、输入框、标签、卡片共享尺寸。 */
.btn, .btn.accent, .btn.ghost, .policy-search .btn {
  min-height: 52px;
  padding: 14px 16px;
  border-radius: var(--radius-control);
  font: var(--weight-emphasis) var(--type-control)/var(--type-control-line) var(--sans);
}
.btn.ghost { border: 1px solid #B7BDB8; padding: 13px 15px; }
.field input, .field textarea, .letter-fields .field input,
.policy-search input, .policy-match select, #previewPanel select {
  min-height: 52px;
  padding: 13px 14px;
  border: 1px solid #B7BDB8;
  border-radius: var(--radius-control);
  font: var(--weight-regular) var(--type-control)/var(--type-control-line) var(--sans);
}
.text-btn, .file-actions button, .photo-close { min-height: 44px; }
.letter, .letter-fields, .ways, .policy-match, .mine, .opt, .pstage,
.fu, .rreply, .aibanner, .cmp, .lockbox, .compact-case, .material-card, .dropzone { border-radius: var(--radius-card); }
.result-state, .check-heading>span.item-state, .pstage .ps-b, .mine .mtag, .aitag {
  border-radius: var(--radius-label);
  padding: 3px 8px;
}
.result-state.review, .item-state.review, .pstage .ps-b.hot, .mine .mtag.hot { background: var(--accent-bg); color: var(--accent); }
.result-state.done, .item-state.done, .pstage .ps-b.ok, .mine .mtag.ok { background: var(--green-bg); color: var(--green); }
.result-state.pending, .item-state.pending, .pstage .ps-b, .mine .mtag { background: var(--amber-bg); color: var(--amber); }
.result-state.neutral, .pstage .ps-b.gray, .mine .mtag.gray { background: var(--line2); color: var(--ink2); }
.mine .mrow>div:first-child { min-width: 0; }
.mine .mo { white-space: normal; overflow-wrap: anywhere; }
.mine .ms { overflow-wrap: anywhere; }
.check-amounts { grid-template-columns: 1fr 1.2fr .8fr; }
.check-amounts strong { white-space: nowrap; }
.upload-step { gap: 4px; }
.upload-progress { gap: 6px; }
.step-dot { width: 22px; height: 22px; }
.case-details summary>span { font: inherit; }
#previewTools { gap: 12px; min-height: 44px; padding: 6px 14px; }
#previewTools>span { max-width: 250px; }
#previewPanel, #previewPanel button { font-size: var(--type-secondary); line-height: var(--type-secondary-line); }
#previewPanel button { min-height: 44px; }

@media(max-width:360px) {
  .upload-progress { gap: 4px; }
  .upload-step { gap: 3px; }
  .check-amounts { gap: 6px; }
}

/* 体验优化新增组件：复用同一文字角色，不增加字号层级。 */
.draft-row h2,.item-summary b,.free-finding b {font:var(--weight-emphasis) var(--type-control)/var(--type-control-line) var(--sans)}
.material-feedback,.item-summary small,.free-finding p,.evidence-caption,.record-update,.report-group>summary small {font-size:var(--type-caption);line-height:var(--type-caption-line);font-weight:var(--weight-regular)}
.report-group>summary,.group-label,#homeIntro>summary,.submission-note {font-size:var(--type-secondary);line-height:var(--type-secondary-line);font-weight:var(--weight-regular)}
.item-value,.free-finding>strong {font-size:var(--type-section);line-height:var(--type-section-line);font-weight:var(--weight-emphasis)}
.report-item:not(.review) .item-value {font-size:var(--type-caption);line-height:var(--type-caption-line);font-weight:var(--weight-regular)}
.item-body p,.item-body blockquote {font-size:var(--type-body);line-height:var(--type-body-line);font-weight:var(--weight-regular)}
.item-value i {font-size:var(--type-secondary);line-height:var(--type-secondary-line)}
#p-letter .back {font-size:var(--type-title);line-height:var(--type-title-line)}
