/* 订购合同 A4 预览与打印 · 纸白为主的正式文书版式
   设计口径：深炭只用于线与窄带，不铺满版底色（打印省墨且黑白复印可读）；
   识别沿用原纸质合同的双线内框 + 线描圆徽 + CONTRACT 大字。 */

:root {
  --contract-paper: #ffffff;
  --contract-ink: #17150f;
  --contract-ink-2: #3c382f;
  --contract-ink-3: #6f695c;
  --contract-ink-4: #9c9484;
  --contract-rule: #d9d3c5;
  --contract-rule-soft: #e8e3d8;
  --contract-charcoal: #2b2823;
  --contract-gold: #a8894f;
  --contract-mark: #fff6df;
  --contract-serif: "Songti SC", "STSong", "SimSun", "Source Han Serif SC", serif;
  --contract-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
  --contract-page-w: 210mm;
  --contract-page-h: 296mm;
  --contract-pad-x: 20mm;
}

.quote-contract {
  display: grid;
  gap: 22px;
  justify-items: center;
  min-width: 0;
  width: 100%;
}

.contract-preview-pages {
  display: grid;
  gap: 22px;
  justify-items: safe center;
  width: 100%;
  min-width: 0;
  overflow-x: auto;
}

@media screen and (max-width: 900px) {
  .quote-contract .quote-print__toolbar { flex-wrap: wrap; min-width: 0; }
  .quote-contract .quote-print__toolbar-actions { flex-wrap: wrap; flex-shrink: 1; }
}

.contract-sheet {
  position: relative;
  width: var(--contract-page-w);
  height: var(--contract-page-h);
  padding: 19mm var(--contract-pad-x) 18mm;
  box-sizing: border-box;
  overflow: hidden;
  background: var(--contract-paper);
  color: var(--contract-ink);
  font-family: var(--contract-sans);
  font-size: 9.5pt;
  line-height: 1.78;
  box-shadow: 0 18px 48px rgba(23, 21, 15, .14);
}

/* ---------- 页眉页脚 ---------- */

.contract-run__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-bottom: 2.5mm;
  margin-bottom: 12mm;
  border-bottom: .3pt solid var(--contract-rule);
  font-size: 8pt;
  letter-spacing: .16em;
  color: var(--contract-ink-4);
}

.contract-run__head .contract-run__no {
  font-family: var(--contract-serif);
  letter-spacing: .06em;
  color: var(--contract-ink-3);
}

.contract-run__foot {
  position: absolute;
  left: var(--contract-pad-x);
  right: var(--contract-pad-x);
  bottom: 10mm;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 2.5mm;
  border-top: .3pt solid var(--contract-rule);
  font-size: 8pt;
  color: var(--contract-ink-4);
}

.contract-run__foot .contract-foot-tick {
  width: 12mm;
  height: .8pt;
  background: var(--contract-gold);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.contract-run__foot .contract-pageno {
  font-family: var(--contract-serif);
  letter-spacing: .1em;
}

/* ---------- 标题与正文 ---------- */

.contract-h2 {
  margin: 0 0 4mm;
  font-family: var(--contract-serif);
  font-size: 13pt;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--contract-ink);
}

.contract-h3 {
  margin: 5mm 0 1mm;
  font-family: var(--contract-serif);
  font-size: 10.5pt;
  font-weight: 700;
}

.contract-section { margin-bottom: 12mm; }
.contract-section + .contract-section { margin-top: 20mm; }

/* 节首标记：短金线 + 汉字序号，取代整条粗黑下划线 */
.contract-kicker { display: flex; align-items: center; gap: 3mm; margin-bottom: 3mm; }

.contract-kicker::before {
  content: "";
  width: 9mm;
  height: 1.2pt;
  background: var(--contract-gold);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.contract-kicker span { font-size: 8pt; letter-spacing: .26em; color: var(--contract-ink-3); }

.contract-p { margin: 0 0 4mm; }
.contract-p--lead { font-size: 10.5pt; color: var(--contract-ink-2); line-height: 1.85; }
.contract-note { margin: 4mm 0 0; font-size: 8pt; color: var(--contract-ink-3); line-height: 1.7; }

.contract-terms { margin: 0; padding: 0; list-style: none; counter-reset: contract-term; }

.contract-terms li { position: relative; padding-left: 9mm; margin-bottom: 2.5mm; }

.contract-terms li::before {
  counter-increment: contract-term;
  content: counter(contract-term, cjk-ideographic);
  position: absolute;
  left: 0;
  font-family: var(--contract-serif);
  color: var(--contract-ink-3);
}

.contract-terms li b { font-weight: 700; }

/* 公式块：左侧金线，不铺底色 */
.contract-formula {
  margin: 2mm 0 3mm;
  padding: 1.5mm 0 1.5mm 4mm;
  border-left: 1.6pt solid var(--contract-gold);
  font-family: var(--contract-serif);
  font-size: 10.5pt;
  font-weight: 700;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* 三线表 */
.contract-table {
  width: 100%;
  margin: 3mm 0;
  border-collapse: collapse;
  border-top: 1pt solid var(--contract-ink);
  border-bottom: 1pt solid var(--contract-ink);
  font-size: 8pt;
}

.contract-table th {
  padding: 2.5mm 3mm;
  text-align: left;
  font-weight: 700;
  border-bottom: .5pt solid var(--contract-ink);
  letter-spacing: .04em;
}

.contract-table td { padding: 2.2mm 3mm; border: 0; vertical-align: top; color: var(--contract-ink-2); }
.contract-table tbody tr + tr td { border-top: .3pt solid var(--contract-rule-soft); }
.contract-table td.contract-cell--num, .contract-table th.contract-cell--num { text-align: right; font-variant-numeric: tabular-nums; }
.contract-table td.contract-cell--ctr, .contract-table th.contract-cell--ctr { text-align: center; }

/* ---------- 可编辑字段 ---------- */

.contract-fields { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10mm; row-gap: 4mm; }
.contract-field-row { display: grid; grid-template-columns: 26mm 1fr; align-items: baseline; gap: 3mm; }
.contract-field-row > label { font-size: 8pt; color: var(--contract-ink-3); letter-spacing: .1em; }
.contract-field-row--full { grid-column: 1 / -1; }
.contract-field-stack { display: grid; gap: 1.5mm; }

input.contract-field {
  width: 100%;
  min-width: 0;
  padding: 0 1mm 1mm;
  margin: 0;
  font-family: var(--contract-serif);
  font-size: 10.5pt;
  color: var(--contract-ink);
  background: transparent;
  border: 0;
  border-bottom: .5pt solid var(--contract-ink-2);
  border-radius: 0;
  outline: none;
}

input.contract-field:focus { border-bottom-color: var(--contract-gold); }
input.contract-field[data-overridden="1"] { background: var(--contract-mark); }
.contract-field--sm { width: 24mm !important; }
.contract-warranty .contract-field-stack { display: inline-grid; width: 24mm; vertical-align: baseline; margin: 0 1mm; }
.contract-field--money { text-align: right; font-weight: 700; }
.contract-field--upper { font-weight: 400; font-size: 9.5pt; text-align: left; }

.contract-flag { font: 7pt var(--contract-sans); color: var(--contract-gold); letter-spacing: .08em; }
.contract-flag--hidden { display: none; }
.contract-notice { margin: 3mm 0 0; font-size: 9pt; }

.contract-money { margin-top: 7mm; display: grid; gap: 3.5mm; }
.contract-money__row { display: grid; grid-template-columns: 30mm 58mm 1fr; align-items: baseline; gap: 3mm; }
.contract-money__label { font-size: 8pt; color: var(--contract-ink-3); letter-spacing: .1em; }
.contract-money__unit { font-size: 8pt; color: var(--contract-ink-3); }
.contract-money__sub { grid-column: 2 / -1; font-size: 8pt; color: var(--contract-ink-3); padding-top: .5mm; line-height: 1.6; }
.contract-money__row--total { padding-top: 3mm; border-top: .5pt solid var(--contract-rule); }

.contract-check { display: inline-flex; align-items: center; gap: 2mm; font-size: 9.5pt; }
.contract-check input { width: 3.2mm; height: 3.2mm; accent-color: var(--contract-charcoal); margin: 0; }
.contract-checks { display: flex; flex-wrap: wrap; gap: 6mm; }
.contract-check-group { display: inline-flex; flex-wrap: wrap; gap: 6mm; }

/* ---------- 品牌墙：单色剪影 ---------- */

.contract-brandwall { display: grid; grid-template-columns: repeat(4, 1fr); border-top: .3pt solid var(--contract-rule); }

.contract-brandwall figure {
  margin: 0;
  height: 24mm;
  display: grid;
  place-items: center;
  border-bottom: .3pt solid var(--contract-rule);
  padding: 0 5mm;
}

.contract-brandwall img { max-width: 34mm; max-height: 13mm; opacity: .88; }

/* ---------- 服务流程 ---------- */

.contract-flow { display: grid; gap: 3.5mm; }
.contract-flow__item { display: grid; grid-template-columns: 8mm 1fr; gap: 2mm; break-inside: avoid; }
.contract-flow__item b { grid-column: 2; font-family: var(--contract-serif); font-size: 10pt; }
.contract-flow__item p { grid-column: 2; margin: .5mm 0 0; font-size: 8pt; color: var(--contract-ink-2); line-height: 1.7; }
.contract-flow__item i {
  grid-column: 1;
  grid-row: 1 / span 2;
  font-style: normal;
  padding-top: 1.2mm;
  font-family: var(--contract-serif);
  font-size: 8pt;
  color: var(--contract-gold);
}

/* ---------- 封面与封底 ---------- */

.contract-sheet--cover, .contract-sheet--backcover { padding: 0; }

.contract-sheet--cover::before,
.contract-sheet--cover::after,
.contract-sheet--backcover::before {
  content: "";
  position: absolute;
  pointer-events: none;
}

.contract-sheet--cover::before { inset: 11mm; border: .9pt solid var(--contract-ink); }
.contract-sheet--cover::after { inset: 13.5mm; border: .35pt solid var(--contract-ink-4); }
.contract-sheet--backcover::before { inset: 11mm; border: .9pt solid var(--contract-ink); }

.contract-cover {
  position: relative;
  height: 100%;
  padding: 22mm 22mm 20mm;
  display: grid;
  grid-template-rows: auto 1fr auto;
  box-sizing: border-box;
}

.contract-cover__top { display: flex; align-items: flex-start; justify-content: space-between; }
.contract-cover__logo { height: 11mm; width: auto; }
.contract-cover__since { font-size: 7.5pt; letter-spacing: .4em; color: var(--contract-ink-3); padding-top: 2mm; }
.contract-cover__center { display: grid; justify-items: center; align-content: center; }

/* 线描圆徽：双圈，不填色 */
.contract-badge { position: relative; width: 42mm; height: 42mm; margin-bottom: 14mm; }
.contract-badge__ring, .contract-badge__inner { position: absolute; inset: 0; border-radius: 50%; border: .9pt solid var(--contract-ink); }
.contract-badge__inner { inset: 2.4mm; border-width: .35pt; border-color: var(--contract-ink-3); }
.contract-badge__mark { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 2mm; }
.contract-badge__mark strong { font-family: var(--contract-serif); font-size: 13pt; font-weight: 700; letter-spacing: .22em; text-indent: .22em; }
.contract-badge__mark em { font-style: normal; font-size: 6.5pt; letter-spacing: .3em; color: var(--contract-ink-3); text-indent: .3em; }

.contract-cover__title { margin: 0; font-size: 27pt; font-weight: 800; letter-spacing: .3em; text-indent: .3em; line-height: 1; }
.contract-cover__cn { margin: 6mm 0 0; font-family: var(--contract-serif); font-size: 20pt; font-weight: 700; letter-spacing: .34em; text-indent: .34em; }
.contract-cover__rule { width: 46mm; height: 1pt; background: var(--contract-gold); margin: 9mm 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.contract-cover__brandline { font-size: 8pt; letter-spacing: .3em; color: var(--contract-ink-3); text-indent: .3em; }

.contract-cover__bottom { display: grid; gap: 7mm; }
.contract-cover__meta { display: grid; grid-template-columns: 22mm 82mm; gap: 4mm 5mm; justify-content: start; margin: 0; align-items: baseline; }
.contract-cover__meta dt { font-size: 8pt; letter-spacing: .14em; color: var(--contract-ink-3); }
.contract-cover__band { width: 109mm; height: 2.6mm; background: var(--contract-charcoal); -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* ---------- 签署页 ---------- */

.contract-sign__annex { display: grid; gap: 2.5mm; margin-bottom: 12mm; }
.contract-sign__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14mm; margin-top: 12mm; }
.contract-sign__party { display: grid; gap: 4.5mm; align-content: start; }

.contract-sign__party h3 {
  margin: 0 0 1mm;
  font-family: var(--contract-serif);
  font-size: 11pt;
  letter-spacing: .18em;
  padding-bottom: 2mm;
  border-bottom: .9pt solid var(--contract-ink);
}

.contract-sign__line { display: grid; grid-template-columns: 18mm 1fr; gap: 3mm; align-items: baseline; }
.contract-sign__line > span { font-size: 8pt; color: var(--contract-ink-3); letter-spacing: .1em; }
.contract-sign__seal {
  height: 26mm;
  border: .35pt dashed var(--contract-rule);
  display: grid;
  place-items: center;
  font-size: 8pt;
  color: var(--contract-ink-4);
  letter-spacing: .2em;
}

.contract-back { height: 100%; padding: 26mm 24mm 22mm; display: grid; grid-template-rows: 1fr auto; text-align: center; box-sizing: border-box; }
.contract-back__center { align-self: center; display: grid; justify-items: center; gap: 6mm; }
.contract-back__logo { height: 14mm; }
.contract-back__en { font-family: var(--contract-serif); font-size: 15pt; font-weight: 700; letter-spacing: .26em; text-indent: .26em; margin: 0; }
.contract-back__tag { font-size: 8pt; letter-spacing: .22em; color: var(--contract-ink-3); text-indent: .22em; margin: 0; }
.contract-back__contact { display: grid; gap: 1.5mm; font-size: 8pt; color: var(--contract-ink-3); line-height: 1.9; }
.contract-back__contact p { margin: 0; }
.contract-back__band { height: 2.6mm; background: var(--contract-charcoal); margin-top: 12mm; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* ---------- 打印 ----------
   可见选择器直接包含 .contract-sheet：不再依赖外层 .quote-contract。
   上一版只放开 .quote-contract *，外层容器一缺就打出整叠空白页。 */

@media print {
  html, body { margin: 0 !important; padding: 0 !important; min-height: 0 !important; background: white !important; }
  @page { size: A4; margin: 0; }

  body * { visibility: hidden; }

  .quote-contract,
  .quote-contract *,
  .contract-sheet,
  .contract-sheet * { visibility: visible; }

  .quote-contract { display: block; gap: 0; }
  .contract-preview-pages { display: contents; }

  .quote-print__toolbar { display: none !important; }
  .contract-flag { display: none !important; }

  .sidebar,
  .mobile-brand,
  .mobile-navigation,
  .quick-capture-fab,
  .developer-account-switcher-bar,
  .page__header,
  .app-shell__sidebar,
  .app-shell__topbar,
  .page-header,
  .skip-link {
    display: none !important;
  }

  .app-shell,
  .app-shell__main,
  .main-canvas,
  .page,
  .page__body,
  .app-main {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: auto !important;
    min-height: 0 !important;
    background: white !important;
  }

  .contract-sheet {
    width: var(--contract-page-w);
    height: var(--contract-page-h);
    margin: 0;
    box-shadow: none;
    overflow: hidden;
    break-after: page;
    break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .contract-sheet:last-child { break-after: auto; }
  input.contract-field[data-overridden="1"] { background: transparent; }

  .contract-terms li,
  .contract-table tr,
  .contract-money__row,
  .contract-field-row,
  .contract-brandwall figure,
  .contract-sign__party,
  .contract-flow__item { break-inside: avoid; }
}
