/* =====================================================================
   精读 · A4 打印样式
   同一份样式同时用于「应用内预览」和「打印窗口」，保证所见即所得。
   页面尺寸、内边距由 JS 以内联样式给出（mm），这里只管排版细节。
   ===================================================================== */

.pp {
  --en: 12pt;
  --zh: 10pt;
  --ph: 8.5pt;
  --ink: #1c1a17;
  --soft: #6b655a;
  --rule: #d3cec2;

  --pp-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Charter, "Songti SC", "Source Han Serif SC", Georgia, serif;
  --pp-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

  font-family: var(--pp-sans);
  color: var(--ink);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  background: #fff;
}

.pp * { box-sizing: border-box; }

.pp[data-size="s"] { --en: 10.5pt; --zh: 8.8pt; --ph: 7.6pt; }
.pp[data-size="m"] { --en: 12pt;   --zh: 10pt;  --ph: 8.4pt; }
.pp[data-size="l"] { --en: 13.5pt; --zh: 11.2pt; --ph: 9.4pt; }

.pp-page {
  position: relative;
  overflow: hidden;
  background: #fff;
  color: var(--ink);
}

/* 页眉 */
.pp-head {
  position: absolute;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 6mm;
  border-bottom: 0.3mm solid var(--rule);
  padding-bottom: 1.8mm;
  font-size: 7.6pt;
  color: var(--soft);
  letter-spacing: 0.02em;
}
.pp-head .pp-title {
  font-family: var(--pp-serif);
  font-size: 9.6pt;
  font-weight: 600;
  color: #35312a;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pp-head .pp-meta { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* 页脚 */
.pp-foot {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 0.2mm solid #e4dfd4;
  padding-top: 1.6mm;
  font-size: 7pt;
  color: #918b7e;
  letter-spacing: 0.03em;
  font-variant-numeric: tabular-nums;
}

/* 分栏 */
.pp-cols { display: flex; align-items: flex-start; }
.pp-col { overflow: hidden; }

/* 单词条目 */
.pp-item { padding: 0 0 3.1mm; break-inside: avoid; }
.pp.cut .pp-item { border-bottom: 0.22mm dashed #d9d3c6; }

.pp-line {
  display: flex;
  align-items: baseline;
  gap: 1.6mm;
  flex-wrap: wrap;
  line-height: 1.28;
}
.pp-num {
  font-family: var(--pp-sans);
  font-size: calc(var(--en) - 3.5pt);
  color: #a9a294;
  font-variant-numeric: tabular-nums;
  min-width: 4mm;
}
.pp-en {
  font-family: var(--pp-serif);
  font-size: var(--en);
  font-weight: 650;
  letter-spacing: -0.005em;
  color: #14120f;
  word-break: break-word;
}
.pp-ph {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: var(--ph);
  color: var(--soft);
  letter-spacing: -0.01em;
  word-break: break-word;
}
.pp-tag {
  font-family: var(--pp-sans);
  font-size: calc(var(--ph) - 1pt);
  font-weight: 650;
  letter-spacing: 0.04em;
  color: #8b8578;
  border: 0.2mm solid #ddd7ca;
  border-radius: 0.8mm;
  padding: 0 1.2mm;
  text-transform: uppercase;
  line-height: 1.5;
  background: #faf8f3;
}

.pp-zh {
  font-family: var(--pp-sans);
  font-size: var(--zh);
  line-height: 1.5;
  color: #2c2822;
  margin-top: 0.7mm;
  word-break: break-word;
}
.pp-zh .pos {
  font-style: italic;
  color: #9c4a28;
  margin-right: 0.8mm;
  font-size: 0.96em;
}
.pp-zh .sep { color: #b3ac9e; margin: 0 0.6mm; }
.pp-zh .pp-sense { display: block; }
.pp-zh .pp-sense + .pp-sense { margin-top: 0.45mm; }

.pp-note {
  font-size: calc(var(--zh) - 0.6pt);
  color: #6f695d;
  line-height: 1.45;
  margin-top: 0.6mm;
  font-style: italic;
}
.pp-src {
  font-size: calc(var(--ph) - 1.5pt);
  color: #a09a8d;
  margin-top: 0.5mm;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pp-blank {
  height: 5.2mm;
  border-bottom: 0.25mm dashed #c8c2b5;
  margin-top: 1.2mm;
}

/* 句子条目 */
.pp-s-item { padding: 0 0 3.6mm; break-inside: avoid; }
.pp.cut .pp-s-item { border-bottom: 0.22mm dashed #d9d3c6; }
.pp-s-en {
  font-family: var(--pp-serif);
  font-size: calc(var(--en) - 0.6pt);
  line-height: 1.4;
  color: #191713;
  margin: 0;
}
.pp-s-zh {
  font-family: var(--pp-sans);
  font-size: calc(var(--zh) - 0.4pt);
  line-height: 1.55;
  color: #4a453c;
  margin: 0.8mm 0 0;
  padding-left: 2mm;
  border-left: 0.4mm solid #ddd6c8;
}
.pp-s-src {
  font-size: calc(var(--ph) - 1.5pt);
  color: #a09a8d;
  margin-top: 0.6mm;
}

/* 预览时的页面效果 */
.pp-preview .pp-page { box-shadow: 0 18px 46px rgba(0, 0, 0, 0.38); }
.pp-preview .pp-page + .pp-page { margin-top: 8mm; }

/* 打印窗口 */
body.print-body { margin: 0; padding: 0; background: #fff; }

@media print {
  html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  .pp-preview .pp-page { box-shadow: none !important; margin: 0 !important; }
  .pp-page {
    break-after: page;
    page-break-after: always;
    margin: 0 !important;
    box-shadow: none !important;
  }
  .pp-page:last-child { break-after: auto; page-break-after: auto; }
}

/* 自测遮挡：保留占位，方便自测时用笔写 */
.pp[data-mask="zh"] .pp-zh,
.pp[data-mask="zh"] .pp-s-zh { visibility: hidden; }
.pp[data-mask="en"] .pp-en,
.pp[data-mask="en"] .pp-ph,
.pp[data-mask="en"] .pp-tag,
.pp[data-mask="en"] .pp-s-en { visibility: hidden; }

/* 首字母分组 */
.pp-group {
  font-family: var(--pp-serif);
  font-weight: 700; font-size: 15pt; line-height: 1;
  color: var(--accent, #a9502c);
  margin: 2mm 0 1.2mm; padding-bottom: 1mm;
  border-bottom: .4pt solid currentColor;
  break-inside: avoid;
}
