/* ═══════════════════════════════════════════════════════════════════════════
   统一打印排版（全系统：凭证 / 报表 / 单据）

   技术约定（与 .print-area 打印机制配套，零第三方库）：
   · 打印内容一律用 HTML <table> + Bootstrap 5 表格类（table / table-sm /
     table-bordered / table-light）排版——打印引擎对表格的分页、列宽、单元格
     定位确定性最好；div/flex/绝对定位跨页会错位、截断或整块丢失。
   · 显示/隐藏一律用 Bootstrap 5 打印工具类：d-print-block / d-print-table /
     d-print-none（无需自定义 display 规则）。
   · 本文件只承担三件 Bootstrap 工具类做不到的事：
     ① 纸张与页边距（@page）；
     ② 单据块分页（break-before / break-after）；
     ③ 票证细节（边框、字号、签章行、条件说明行、跨页表头重复）。
   · 打印主路径：dataweb-print.js 把 .print-area 克隆到 body 级宿主
     #dataweb-print-host + body.printing；旧路径（Ctrl+P 直印）由 app.css 兜底。
   · 颜色：票据框线是内容的一部分，故对打印件声明 print-color-adjust: exact，
     否则浏览器「省墨」模式会把浅灰表头与底纹打印成白色。
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 纸张：单据为 A4 横向（凭证表格列多，纵向会挤压摘要与科目） ── */
@page {
    size: A4 landscape;
    margin: 10mm 8mm;
}

/* 打印件统一：黑字白底、精确输出底色与框线、禁止因「省墨」丢框线 */
.print-doc,
.print-doc * {
    color: #000;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.print-doc {
    font-size: 12px;
    line-height: 1.45;
}

/* 屏幕预览宽度档位（打印时统一整宽，见 app.css 中 @media print 的 .print-area 规则） */
.print-area-w-lg {
    max-width: 900px;
}

.print-area-w-full {
    max-width: 100%;
}

/* ── 单据块：一张单据 / 一张凭证 = 一块；一次打印多张时块间分页 ── */
.print-page-block {
    page-break-inside: avoid;
    break-inside: avoid;
}

.print-page-block + .print-page-block {
    page-break-before: always;
    break-before: page;
}

/* ── 表格骨架：框线清晰、金额右对齐、表头跨页重复 ── */
.print-doc-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    margin: 0;
}

.print-doc-table th,
.print-doc-table td {
    border: 1px solid #000;
    padding: 3px 5px;
    vertical-align: middle;
    word-break: break-word;
}

.print-doc-table thead th {
    background: #f0f0f0;
    text-align: center;
    font-weight: 600;
}

/* 明细表跨页时表头在每页重复出现（凭证行多时仍可读） */
.print-doc-grid thead {
    display: table-header-group;
}

.print-doc-grid tr {
    page-break-inside: avoid;
    break-inside: avoid;
}

/* ── 抬头块：核算单位 / 单据名 / 状态 / 单号 / 日期 ── */
.print-doc-head {
    border-bottom: 0;
}

.print-doc-head td {
    border: 1px solid #000;
}

.print-doc-head-title {
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 4px;
}

.print-doc-head-meta {
    font-size: 11px;
}

/* ── 明细表 ── */
.print-doc-grid .print-doc-summary {
    font-size: 11px;
}

.print-doc-account-no {
    font-family: Consolas, "Courier New", monospace;
    letter-spacing: 1px;
    margin-right: 4px;
}

.print-doc-grid tfoot .print-doc-total td {
    background: #f7f7f7;
    font-weight: 700;
}

/* ── 键值配对表（发票登记单的往来单位 / 发票号等） ── */
.print-doc-pairs .print-doc-label {
    background: #f7f7f7;
    text-align: center;
    width: 14%;
}

/* ── 页脚块：金额大写 + 签章 + 条件说明 ── */
.print-doc-foot {
    border-top: 0;
    margin-top: -1px; /* 与明细表底框线重叠，避免双线 */
}

.print-doc-foot td {
    border: 1px solid #000;
    font-size: 11px;
}

.print-doc-sign {
    letter-spacing: 1px;
    white-space: nowrap;
}

.print-doc-conditions {
    font-size: 10px;
    color: #333;
}

.print-doc-condition + .print-doc-condition::before {
    content: "　·　";
}

/* ── 屏幕预览微调（打印时由 app.css 统一整宽） ── */
@media screen {
    .print-doc {
        background: #fff;
    }
}

/* ── 打印微调：单据块内的表格不再二次分页；避免最后一块留空白页 ── */
@media print {
    .print-page-block:last-child {
        page-break-after: auto;
        break-after: auto;
    }

    /* 预览弹窗内的表格容器若带 overflow 滚动，打印时必须放开，否则只打印可视区 */
    .print-area .table-responsive {
        overflow: visible !important;
    }
}
