/* ============ A4 支前报告单（屏幕预览 + 打印共用一套尺寸） ============ */

.a4-sheet{
  width:210mm;
  min-height:297mm;
  padding:18mm 17mm 20mm;
  background:#fff;
  margin:0 auto;
  color:#000;
  /* 公文字体：宋体；没有就退到思源宋体/衬线 */
  font-family:"SimSun","宋体","Songti SC","Noto Serif CJK SC",serif;
  font-size:12pt;          /* 小四 */
  line-height:1.6;
  box-sizing:border-box;
  position:relative;
}

/* ---------- 标题 ---------- */
.doc-title{
  font-size:22pt;          /* 二号 */
  font-weight:700;
  text-align:center;
  letter-spacing:2px;
  line-height:1.35;
  margin:0 0 5mm;
  font-family:"SimSun","宋体","Songti SC","Noto Serif CJK SC",serif;
}

/* ---------- 表格 ---------- */
.doc-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  border:1.2px solid #000;
}
.doc-table col.c-left{width:23%}
.doc-table col.c-right{width:77%}

.doc-table th,
.doc-table td{
  border:1px solid #000;
  vertical-align:middle;
}

/* 左列：居中，可两行。「财务主管领导意见」8 个字要能单行放下，padding 必须小 */
.doc-table th{
  font-weight:700;
  font-size:12pt;
  text-align:center;
  padding:0 2mm;
  line-height:1.7;
  letter-spacing:.3px;
  word-break:keep-all;
}

/*
 * 右列：注意 td 的 height 是「内容盒」高度，行高 = height + 上下 padding。
 * 所以下面给的不是行高，是扣掉 6mm padding 之后的内容高度。
 */
.doc-table td{
  height:14mm;
  padding:3mm 4mm;
  vertical-align:top;
  font-size:12pt;
  line-height:1.6;
  word-break:break-word;
}

/* 各栏高度：意见类五行必须等高（由 fitToPage 统一算），所以这里只给相同的最小值，
   不能再各写一个高度 —— 否则 15/14/14/16/20 会让五行看起来参差不齐。 */
.doc-table tr.r-dept td{height:4mm;padding:2mm 4mm;vertical-align:middle}
/*
 * 申报内容行：按「正好放满 10 行正文」定死。
 * 正文 12pt、行高 1.6 → 每行 19.2pt = 6.77mm，10 行 = 67.7mm，取 68mm（td 的 height
 * 是内容盒高度，不含 padding，所以这里就是 10 行字本身的高度）。
 * 内容再长也不挤：正文上限 200 字、7 行，10 行是留足余量的。
 */
.doc-table tr.r-content td{height:68mm}
.doc-table tr.r-leader td,
.doc-table tr.r-vice td,
.doc-table tr.r-security td,
.doc-table tr.r-finance td,
.doc-table tr.r-director td,
.doc-table tr.r-meeting td{height:14mm}

/* 申报单位内容：左对齐，稍缩进 */
.cell-dept{
  text-indent:0;
  letter-spacing:.5px;
  font-size:12pt;
}

/* 申报内容正文：与样张一致，齐左不缩进 */
.cell-content{
  white-space:pre-wrap;
}

/* 合计行：不缩进，单独一行 */
.cell-total{
  margin-top:1.2mm;
  text-indent:0;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

/* 意见栏：批注图靠左；加注时间排在批注后面，与批注底部对齐 */
.cell-seal{
  position:relative;
  min-height:15mm;
  display:flex;
  align-items:flex-end;   /* 图片与时间都贴底，"时间在批注后面靠下"靠这一条 */
  justify-content:flex-start;
  gap:2mm;
  padding:0;
}
.cell-seal .seal-img{
  display:block;
  /* 高度由 report.js 按「该单元格高度的 4/5」现算后写成行内样式 ——
     CSS 拿不到单元格高度，只能给它一个不撑破单元格的默认值（见下方 max-height）。 */
  height:auto;
  width:auto;
  /* 右边要给时间留位置，否则极宽的批注会把"电子批注：/时间"两行挤出单元格 */
  max-width:calc(100% - 30mm);
  max-height:100%;
  object-fit:contain;
  object-position:left bottom;
  flex:0 0 auto;
}
.cell-seal .seal-empty{
  color:#9aa3af;
  font-size:10.5pt;
  font-family:-apple-system,"Microsoft YaHei",sans-serif;
  margin-right:auto;
}
/*
 * 加注时间：排在批注右侧、贴着单元格底边，两行 ——
 *   电子批注：
 *   2026-11-05-22-13
 * 屏幕上是浅灰（自己核对用），打印时转成黑色（见 @media print）。
 */
.cell-seal .stamp-time{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  font-size:8.5pt;
  line-height:1.35;
  color:#8a94a2;
  padding-bottom:.6mm;
  white-space:nowrap;
}

/* ---------- 打印 ---------- */
@page{
  size:A4;
  /*
   * 边距交给 .a4-sheet 的 padding 来做，@page 这里必须归零 ——
   * 浏览器的自带页眉（标题/网址/日期）和页脚（页码、网址）只画在 @page 边距区域里，
   * 边距为 0 就没有那块区域，打印出来才是干干净净的公文。
   * 纸张留白由 .a4-sheet 的 padding 补回来，视觉上一样。
   */
  margin:0;
}

@media print{
  html,body{background:#fff!important;margin:0!important;padding:0!important}
  .no-print{display:none!important}
  /* 屏幕上的纸张预览容器带内边距，打印时必须抹平，否则内容整体下移、多打一页 */
  .paper-stage{
    padding:0!important;margin:0!important;
    background:#fff!important;border-radius:0!important;overflow:visible!important;
  }
  /* 页面骨架的留白同理：main.wrap 是 20px/56px，看着不多，正好把表格顶出一页 */
  .wrap, #appView, #viewDetail, #sheetHost{
    padding:0!important;margin:0!important;min-height:0!important;
  }
  .a4-sheet{
    width:210mm;min-height:0;margin:0;
    /* @page 边距已归零，纸张留白改由内边距提供，否则表格会贴着纸边 */
    padding:20mm 17mm;
    box-shadow:none;border:0;
  }
  .doc-table tr{page-break-inside:avoid}
  .doc-title{page-break-after:avoid}
  .print-mention{page-break-before:always}
  /* 系统痕迹不上公文：占位提示隐藏；加注时间要打出来，只是把浅灰改成墨黑 */
  .seal-empty{display:none!important}
  .cell-seal .stamp-time{color:#000!important}
}

/* 屏幕上的纸张投影 */
@media screen{
  .a4-sheet{
    box-shadow:0 1px 3px rgba(17,24,39,.12),0 18px 50px -24px rgba(17,24,39,.4);
    border-radius:2px;
  }
}

/* ---------- 打印预览容器 ---------- */
.paper-stage{
  background:#e9edf2;
  padding:26px 16px 40px;
  border-radius:12px;
  overflow:auto;
}
.paper-bar{
  max-width:210mm;margin:0 auto 14px;display:flex;align-items:center;
  justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.paper-bar .tip{font-size:12.5px;color:var(--text-2)}

/* ---------- 签署件（走完流程后，用它替代系统生成的报告单） ---------- */
.signed-sheet{
  padding:12mm;
  /* 照片有多高纸就有多高：留 297mm 的话照片下面会空一大片白，像漏了一页 */
  min-height:auto;
  display:flex;flex-direction:column;gap:8px;
  font-family:inherit;
}
.signed-cap{
  display:flex;gap:10px;flex-wrap:wrap;align-items:center;
  font-size:12px;color:var(--text-2);line-height:1.5;
}
/* 第一段是"签署件"这个标记，其余是类型/时间/上传人 */
.signed-cap span:first-child{
  font-weight:700;color:#0b6b4c;background:var(--ok-bg);
  border:1px solid #bfe8d8;border-radius:5px;padding:1px 8px;
}
.signed-img{display:block;width:100%;height:auto;border:0}

@media print{
  /* 照片就是唯一内容，纸边留 12mm 即可；系统标记不上公文 */
  .signed-sheet{padding:12mm;display:block}
  .signed-cap{display:none!important}
  .signed-img{
    width:100%;max-height:270mm;object-fit:contain;margin:0 auto;
  }
}
