/* ===========================================================
   打印样式 —— 字表 / 词语表 / 例句 / 数学练习卷 / 错题集
   仅在 @media print 时生效（index.html 用 media="print" 引入）
   =========================================================== */

@page {
  size: A4 portrait;
  margin: 14mm 12mm;
}

body {
  background: #fff !important;
  font-size: 12pt;
  color: #000;
}

.print-root {
  display: none;
}

@media print {
  .print-root {
    display: block !important;
  }

  .print-sheet {
    page-break-after: always;
    break-after: page;
  }
  .print-sheet:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  .p-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8mm;
    padding-bottom: 2mm;
    margin-bottom: 5mm;
    border-bottom: 1.2pt solid #000;
  }
  .p-head__title {
    margin: 0;
    font-size: 17pt;
    font-weight: 700;
  }
  .p-head__meta {
    font-size: 10pt;
    white-space: nowrap;
  }
  .p-head__meta span { margin-left: 6mm; }

  .p-sub {
    margin: 0 0 4mm;
    font-size: 10pt;
    color: #444;
  }

  .p-section-title {
    margin: 6mm 0 3mm;
    font-size: 12pt;
    font-weight: 700;
    border-left: 3pt solid #000;
    padding-left: 3mm;
  }

  /* ---- 字表：田字格 ---- */
  .p-char-grid {
    display: grid;
    gap: 0;
    border-top: 0.8pt solid #666;
    border-left: 0.8pt solid #666;
  }
  .p-char-cell {
    border-right: 0.8pt solid #666;
    border-bottom: 0.8pt solid #666;
    padding: 1mm 0 0;
    text-align: center;
    break-inside: avoid;
  }
  .p-char-cell__py {
    font-size: 8.5pt;
    line-height: 1.2;
    height: 4.5mm;
    color: #333;
  }
  .p-tian {
    position: relative;
    aspect-ratio: 1;
    /* 田字格：虚线十字 */
    background-image:
      linear-gradient(to right, transparent calc(50% - 0.2pt), #bbb calc(50% - 0.2pt), #bbb calc(50% + 0.2pt), transparent calc(50% + 0.2pt)),
      linear-gradient(to bottom, transparent calc(50% - 0.2pt), #bbb calc(50% - 0.2pt), #bbb calc(50% + 0.2pt), transparent calc(50% + 0.2pt));
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "Kaiti SC", "STKaiti", "KaiTi", serif;
    line-height: 1;
  }
  .p-tian--solid { color: #000; }
  .p-tian--trace { color: #c4c4c4; }
  .p-tian--blank { color: transparent; }

  /* ---- 词语 / 例句表 ---- */
  .p-word-list {
    columns: 3;
    column-gap: 8mm;
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: "Kaiti SC", "STKaiti", "KaiTi", serif;
    font-size: 14pt;
  }
  .p-word-list li {
    break-inside: avoid;
    padding: 1.6mm 0;
    border-bottom: 0.4pt dotted #999;
  }
  .p-word-list__py {
    display: block;
    font-family: var(--font, sans-serif);
    font-size: 8.5pt;
    color: #555;
  }

  .p-sentence-list {
    list-style: decimal;
    margin: 0;
    padding-left: 7mm;
    font-family: "Kaiti SC", "STKaiti", "KaiTi", serif;
    font-size: 13pt;
    line-height: 2.1;
  }
  .p-sentence-list li { break-inside: avoid; padding: 1mm 0; }
  .p-sentence-list__note {
    display: block;
    font-family: var(--font, sans-serif);
    font-size: 9pt;
    color: #555;
    line-height: 1.4;
  }

  .p-write-lines li {
    border-bottom: 0.6pt solid #666;
    min-height: 11mm;
    list-style: none;
  }

  /* ---- 数学练习卷 ---- */
  .p-math {
    display: grid;
    grid-template-columns: repeat(var(--p-cols, 4), 1fr);
    gap: 3mm 5mm;
  }
  .p-math__item {
    display: flex;
    align-items: baseline;
    gap: 1.5mm;
    padding: 2.2mm 0;
    font-size: 13pt;
    font-variant-numeric: tabular-nums;
    break-inside: avoid;
  }
  .p-math__no {
    flex: none;
    width: 7mm;
    font-size: 9pt;
    color: #666;
  }
  .p-math__expr { white-space: nowrap; }
  .p-math__blank {
    display: inline-block;
    min-width: 13mm;
    border-bottom: 0.8pt solid #000;
  }
  .p-math__blank--sm { min-width: 8mm; }

  /* ---- 错题集 ---- */
  .p-wrong {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(46mm, 1fr));
    gap: 3mm;
  }
  .p-wrong__item {
    border: 0.6pt solid #666;
    border-radius: 1.5mm;
    padding: 2mm;
    break-inside: avoid;
  }
  .p-wrong__q { font-size: 12pt; font-variant-numeric: tabular-nums; }
  .p-wrong__q--hanzi { font-family: "Kaiti SC", "STKaiti", "KaiTi", serif; font-size: 20pt; }
  .p-wrong__meta { font-size: 8.5pt; color: #555; margin-top: 1mm; }

  .p-foot {
    margin-top: 6mm;
    padding-top: 2mm;
    border-top: 0.4pt solid #999;
    font-size: 8.5pt;
    color: #666;
    display: flex;
    justify-content: space-between;
  }

  .p-note-box {
    margin-top: 5mm;
    border: 0.6pt solid #666;
    border-radius: 1.5mm;
    padding: 3mm;
    min-height: 18mm;
    font-size: 9pt;
    color: #555;
  }
}
