/* ============================================================
   中国建设银行个人活期账户对账单 1:1 绝对像素级排版样式
   严格依据 排版标准.pdf 几何蓝图与对齐基准精准配置
   ============================================================ */

:root {
  --ccb-font-serif: "SimSun", "Songti SC", "STSong", "Songti", "NSimSun", "Source Han Serif CN", serif;
  --ccb-font-mono: "SimSun", "NSimSun", "Courier New", monospace;
  --ccb-border-color: #000000;
  --ccb-text-color: #000000;
}

/* A4 纸张容器 (标准 A4: 595.0pt x 842.0pt) */
.a4-page-preview {
  width: 595.0pt;
  min-height: 842.0pt;
  height: 842.0pt;
  margin: 0 auto 24px auto;
  background: #ffffff;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  box-sizing: border-box;
  position: relative;
  font-family: var(--ccb-font-serif);
  color: var(--ccb-text-color);
  font-size: 9.0pt;
  line-height: 1.0;
  page-break-after: always;
  overflow: hidden;
}

/* 纸质版针式打印机样式 */
.a4-page-preview.paper-mode {
  background: #fdfdfd;
  color: #111111;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
  border: 1px solid #d4d4d4;
  -webkit-font-smoothing: antialiased;
}

/* 页面内主要布局 */
.ccb-statement-page {
  width: 595.0pt;
  height: 842.0pt;
  position: relative;
  margin: 0;
  padding: 0;
}

.ccb-statement-content {
  width: 100%;
  height: 100%;
  position: relative;
}

/* 顶部标题：小三 (15.0pt)，加粗，严格定位于 [162.00pt, 23.09pt] */
.ccb-title {
  position: absolute;
  left: 162.00pt;
  top: 23.09pt;
  width: 275.76pt;
  height: 15.0pt;
  line-height: 15.0pt;
  font-family: "SimSun", "Songti SC", "STSong", "Songti", "NSimSun", serif;
  font-size: 15.0pt;
  font-weight: 900 !important;
  -webkit-text-stroke: 0.45px #000000;
  text-shadow: 0.2px 0 0 #000000, 0 0.2px 0 #000000;
  white-space: nowrap;
  letter-spacing: 0;
  text-align: center;
  color: #000000;
  margin: 0;
  padding: 0;
}

.paper-mode .ccb-title {
  font-family: "SimSun", "NSimSun", "Songti SC", "STSong", monospace;
  font-size: 15.0pt;
  font-weight: 900 !important;
  -webkit-text-stroke: 0.45px #111111;
  text-shadow: 0.2px 0 0 #111111, 0 0.2px 0 #111111;
  letter-spacing: 0;
  color: #111111;
}

/* 头部元信息栏 */
.ccb-meta-bar {
  font-family: "SimSun", "Songti SC", "STSong", "Songti", "NSimSun", serif;
  font-size: 9.0pt;
  line-height: 9.0pt;
  color: #000000;
  letter-spacing: -0.45px;
  font-variant-numeric: tabular-nums lining-nums;
}

/* 元信息第一行：基准 Y=49.59pt，高 9.0pt */
.ccb-meta-row {
  position: absolute;
  top: 49.59pt;
  left: 0;
  width: 595.0pt;
  height: 9.0pt;
  line-height: 9.0pt;
  font-size: 9.0pt;
  margin: 0;
  padding: 0;
  letter-spacing: -0.45px;
}

.ccb-meta-item {
  position: absolute;
  top: 0;
  white-space: nowrap;
  font-size: 9.0pt;
  line-height: 9.0pt;
  letter-spacing: -0.45px;
}

/* 严格对齐基准：
   1. 卡号数字字间距缩小，末尾数字精准对齐下排“民”字 (x ≈ 154.5pt)
   2. 客户名称“客”字精准对齐下排“元”字 (x = 166.00pt)
   3. 币别“币”字精准对齐最上方标题“账”字 (x = 312.00pt)
   4. 起止日期“止”字精准对齐下排“总”字 (x = 412.77pt，止在 421.77pt)
*/
.ccb-meta-item:nth-child(1) {
  left: 31.77pt; /* 卡号/账号 */
}

.ccb-meta-item:nth-child(2) {
  left: 166.00pt; /* 客户名称：“客”字对齐下排“元”字 */
}

.ccb-meta-item:nth-child(3) {
  left: 312.00pt; /* 币别/钞汇：“币”字对齐上方“账”字 */
}

.ccb-meta-item:nth-child(4) {
  left: 412.77pt; /* 起止日期：“止”字对齐下排“总”字 (412.77 + 9.0 = 421.77) */
}

.ccb-meta-item span.meta-label {
  font-family: var(--ccb-font-serif);
  letter-spacing: 0;
}

.ccb-meta-item span.meta-val {
  font-family: var(--ccb-font-serif);
  margin-left: 1px;
  letter-spacing: -0.45px;
  font-variant-numeric: tabular-nums lining-nums;
}

/* 卡号专用等宽微紧凑字间距，确保19位卡号末尾数字精准对齐下排“民”字 */
.ccb-meta-item span.meta-val-card {
  letter-spacing: -0.45px;
  display: inline-block;
}

.paper-mode .ccb-meta-bar,
.paper-mode .ccb-meta-row,
.paper-mode .ccb-meta-item {
  font-family: "SimSun", "NSimSun", "Songti SC", "STSong", monospace;
  color: #111111;
  letter-spacing: -0.45px;
}

/* 元信息第二行：收支合计行 (基准 Y=83.43pt) */
.ccb-summary-row {
  position: absolute;
  top: 83.43pt;
  left: 0;
  width: 595.0pt;
  height: 9.0pt;
  line-height: 9.0pt;
  font-family: var(--ccb-font-serif);
  font-size: 9.0pt;
  letter-spacing: -0.45px;
  margin: 0;
  padding: 0;
  font-variant-numeric: tabular-nums lining-nums;
}

.ccb-summary-left {
  position: absolute;
  left: 31.00pt;
  top: 0;
  white-space: nowrap;
  font-size: 9.0pt;
  line-height: 9.0pt;
  letter-spacing: -0.45px;
}

.ccb-summary-right {
  position: absolute;
  left: 421.77pt; /* “总收入”的“总”字基准坐标 */
  top: 0;
  white-space: nowrap;
  font-size: 9.0pt;
  line-height: 9.0pt;
  letter-spacing: -0.45px;
}

.paper-mode .ccb-summary-row {
  font-family: "SimSun", "NSimSun", "Songti SC", "STSong", monospace;
  color: #111111;
  letter-spacing: -0.45px;
}

/* 对账明细主表格：定位自 (x=31.02pt, y=95.63pt), 总宽 541.81pt, 每页精确容纳30行数据 */
.ccb-table {
  position: absolute;
  left: 31.02pt;
  top: 95.63pt;
  width: 541.81pt;
  border-collapse: collapse;
  table-layout: fixed;
  font-family: "SimSun", "Songti SC", "STSong", "Songti", "NSimSun", serif;
  font-size: 8.0pt;
  border: 0.35pt solid var(--ccb-border-color);
  margin: 0;
  padding: 0;
  letter-spacing: -0.45px;
}

.ccb-table th,
.ccb-table td {
  border: 0.35pt solid var(--ccb-border-color);
  box-sizing: border-box;
}

/* 表头：10号 (10.0pt)，不加粗，高度加高为 26.0pt（下框线位于防伪码下方） */
.ccb-table th {
  height: 26.00pt;
  font-family: "SimSun", "Songti SC", "STSong", "Songti", "NSimSun", serif;
  font-weight: normal !important;
  font-size: 10.0pt !important;
  text-align: center;
  background-color: #ffffff;
  padding: 0;
  letter-spacing: 0;
  vertical-align: middle;
}

.paper-mode .ccb-table th {
  font-family: "SimSun", "NSimSun", "Songti SC", "STSong", monospace;
  font-weight: normal !important;
  font-size: 10.0pt !important;
  background-color: #ffffff;
  color: #111111;
}

/* 数据行高度精确 19.20pt (30行总高 576pt)，表中数据为 8号 (8.0pt) */
.ccb-table tbody tr {
  height: 19.20pt;
  max-height: 19.20pt;
}

.ccb-table td {
  height: 19.20pt;
  max-height: 19.20pt;
  font-size: 8.0pt !important;
  line-height: 1.02;
  white-space: normal !important;
  word-break: break-all;
  overflow-wrap: anywhere;
  padding: 0 3.0pt;
  letter-spacing: -0.45px;
  font-variant-numeric: tabular-nums lining-nums;
  overflow: hidden;
  box-sizing: border-box;
}

/* 单行文字垂直居中，多行文字垂直居下 */
.ccb-table td.cell-singleline {
  vertical-align: middle !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.ccb-table td.cell-multiline {
  vertical-align: bottom !important;
  padding-bottom: 0.5pt !important;
  padding-top: 0 !important;
}

/* 各列宽度与对齐配置 (依据用户指令：交易金额和账户余额数值靠左对齐，所有数字和字母均带-0.45px字间距) */
.col-seq { width: 21.81pt; text-align: center; }
.col-summary { width: 53.84pt; text-align: left; }
.col-date { width: 46.16pt; text-align: center; }
.col-amount { width: 73.84pt; text-align: left; }
.col-balance { width: 81.54pt; text-align: left; }
.col-remark { width: 133.85pt; text-align: left; }
.col-counterparty { width: 130.77pt; text-align: left; }

.ccb-table td.col-seq { text-align: center; }
.ccb-table td.col-summary { text-align: left; padding-left: 3.0pt; }
.ccb-table td.col-date { text-align: center; letter-spacing: -0.45px; }
.ccb-table td.col-amount { text-align: left; padding-left: 4.0pt; letter-spacing: -0.45px; }
.ccb-table td.col-balance { text-align: left; padding-left: 4.0pt; letter-spacing: -0.45px; }
.ccb-table td.col-remark { text-align: left; padding-left: 3.0pt; }
.ccb-table td.col-counterparty { text-align: left; padding-left: 3.0pt; letter-spacing: -0.45px; }

.paper-mode .ccb-table {
  font-family: "SimSun", "NSimSun", "Courier New", monospace;
  color: #111111;
  border: 0.35pt solid #000000;
}

.paper-mode .ccb-table td {
  border: 0.35pt solid #000000;
  color: #111111;
  font-size: 8.0pt !important;
  letter-spacing: -0.45px;
}

/* 页面底部与页脚：小五 (9.0pt)，严格对齐标准 PDF 边距与间距 */
.ccb-footer {
  position: absolute;
  left: 31.00pt;
  top: 700.00pt;
  width: 541.81pt;
  font-family: "SimSun", "Songti SC", "STSong", "Songti", "NSimSun", serif;
  font-size: 9.0pt !important;
  line-height: 9.0pt;
  color: #000000;
  letter-spacing: -0.45px;
  font-variant-numeric: tabular-nums lining-nums;
  z-index: 10;
}

.paper-mode .ccb-footer {
  font-family: "SimSun", "NSimSun", "Songti SC", "STSong", monospace;
  color: #111111;
  letter-spacing: -0.45px;
}

.ccb-footer-time {
  margin-bottom: 6.00pt;
  font-size: 9.0pt !important;
  line-height: 9.0pt;
  letter-spacing: -0.45px;
}

.ccb-footer-notice {
  margin-bottom: 10.00pt;
  font-size: 9.0pt !important;
  line-height: 9.0pt;
  white-space: nowrap;
  letter-spacing: -0.2px;
}

.ccb-footer-page {
  text-align: center;
  font-size: 9.0pt !important;
  line-height: 9.0pt;
  letter-spacing: -0.45px;
}

/* 印章翻译文本行（排在总收入/Total Inflow 上方空白行） */
/* ==========================================================================
   多语言翻译排版模式 (English / Spanish)
   字体统一使用 Times New Roman，支持自适应自动换行与优良可读性
   ========================================================================== */
.a4-page-preview.lang-translated,
.a4-page-preview.lang-translated * {
  font-family: "Times New Roman", Times, "Songti SC", serif !important;
}

/* 1. 译文顶上银行名称/标题严格全局居中对齐 */
.a4-page-preview.lang-translated .ccb-title {
  position: absolute !important;
  left: 31.00pt !important;
  top: 16.00pt !important;
  width: 541.81pt !important;
  height: auto !important;
  text-align: center !important;
  font-size: 11.5pt !important;
  line-height: 1.25 !important;
  letter-spacing: 0px !important;
  font-weight: 700 !important;
  white-space: normal !important;
  margin: 0 auto !important;
  -webkit-text-stroke: 0 !important;
  text-shadow: none !important;
}

/* 2. 元信息第一行：自动分散对齐，彻底避免卡号、姓名、币种、起止日期发生重叠 */
.a4-page-preview.lang-translated .ccb-meta-row {
  position: absolute !important;
  top: 48.00pt !important;
  left: 31.00pt !important;
  width: 541.81pt !important;
  height: auto !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 8.5pt !important;
  line-height: 1.2 !important;
  letter-spacing: 0px !important;
}

.a4-page-preview.lang-translated .ccb-meta-item {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  white-space: nowrap !important;
  font-size: 8.5pt !important;
  line-height: 1.2 !important;
  letter-spacing: 0px !important;
}

/* 3. 印章翻译专属行：严格定位于红框区域（右侧对齐，总收入 Total Inflow 正上方） */
.a4-page-preview.lang-translated .ccb-stamp-translation-row {
  position: absolute !important;
  top: 64.50pt !important;
  left: 31.00pt !important;
  width: 541.81pt !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.a4-page-preview.lang-translated .ccb-stamp-translation-text {
  font-size: 8.0pt !important;
  font-style: italic !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  text-align: right !important;
  line-height: 1.1 !important;
  letter-spacing: 0px !important;
  white-space: nowrap !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
}

/* 4. 元信息第二行 (收支汇总行) */
.a4-page-preview.lang-translated .ccb-summary-row {
  position: absolute !important;
  top: 78.50pt !important;
  left: 31.00pt !important;
  width: 541.81pt !important;
  height: auto !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  letter-spacing: 0px !important;
}

.a4-page-preview.lang-translated .ccb-summary-left {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  font-size: 8.5pt !important;
  letter-spacing: 0px !important;
  white-space: nowrap !important;
}

.a4-page-preview.lang-translated .ccb-summary-right {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  font-size: 8.5pt !important;
  letter-spacing: 0px !important;
  white-space: nowrap !important;
}

/* 5. 译文中彻底隐藏印章图形 */
.a4-page-preview.lang-translated .ccb-stamp-container {
  display: none !important;
  visibility: hidden !important;
}

/* 6. 主表格位置 */
.a4-page-preview.lang-translated .ccb-table {
  position: absolute !important;
  top: 96.00pt !important;
  left: 31.00pt !important;
  width: 541.81pt !important;
  letter-spacing: 0px !important;
}

.a4-page-preview.lang-translated .ccb-table th,
.a4-page-preview.lang-translated .ccb-table td {
  letter-spacing: 0px !important;
  word-break: break-word;
  white-space: normal;
  line-height: 1.2;
}

.a4-page-preview.lang-translated .ccb-footer {
  letter-spacing: 0px !important;
}

.a4-page-preview.lang-translated .ccb-footer-notice {
  white-space: normal !important;
  line-height: 1.3 !important;
}

/* 印章叠加层 (下移4px至top=29.50pt，左移2px至left=313.00pt，非透明模式) */
.ccb-stamp-container {
  position: absolute;
  top: 29.50pt;
  left: 313.00pt;
  width: 107.00pt;
  height: 107.00pt;
  pointer-events: none;
  z-index: 10;
  mix-blend-mode: normal;
}

.ccb-stamp-canvas {
  width: 107.00pt;
  height: 107.00pt;
  display: block;
}

/* ==========================================================================
   三种真实输出模式：电子版 (electronic)、针式打印 (dot-matrix)、喷墨/激光打印 (inkjet)
   ========================================================================== */

/* 1. 电子版：纯净原版矢量与高清屏幕浏览（红印章） */
.a4-page-preview.mode-electronic {
  background-color: #ffffff;
  color: #000000;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

/* 2. 针式打印模式 (Dot Matrix)：连续无碳复写纸、24针点阵击打色带、微机械抖动与色带微断墨 */
.a4-page-preview.mode-dotmatrix,
.a4-page-preview.paper-mode {
  background-color: #f7f5ee;
  background-image: 
    repeating-linear-gradient(0deg, rgba(20, 32, 48, 0.045) 0px, rgba(20, 32, 48, 0.045) 1px, transparent 1px, transparent 2.8px),
    linear-gradient(to right, rgba(0,0,0,0.02) 0, transparent 8px, transparent calc(100% - 8px), rgba(0,0,0,0.02) 100%);
  color: #141c28;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
  filter: contrast(1.10) brightness(0.98);
}

.a4-page-preview.mode-dotmatrix .ccb-header-title {
  color: #0f172a;
  text-shadow: 0.3px 0 0.5px rgba(15, 23, 42, 0.4);
}

.a4-page-preview.mode-dotmatrix .ccb-meta-bar,
.a4-page-preview.mode-dotmatrix .ccb-summary-row,
.a4-page-preview.mode-dotmatrix .ccb-footer {
  font-family: "SimSun", "NSimSun", monospace;
  color: #0f172a;
  font-weight: 550;
  letter-spacing: -0.45px;
}

.a4-page-preview.mode-dotmatrix .ccb-table {
  border-color: #1e293b;
  border-width: 0.35pt;
  font-family: "SimSun", "NSimSun", monospace;
  background-color: transparent;
}

.a4-page-preview.mode-dotmatrix .ccb-table th,
.a4-page-preview.mode-dotmatrix .ccb-table td {
  border-color: #1e293b;
  color: #0f172a;
  font-weight: 550;
  letter-spacing: -0.45px;
}

.a4-page-preview.mode-dotmatrix .ccb-stamp-container {
  position: absolute;
  top: 28.00pt;
  left: 314.50pt;
  width: 107.00pt;
  height: 107.00pt;
  mix-blend-mode: normal;
  opacity: 0.96;
}

/* 3. 喷墨/激光打印模式 (Inkjet / Laser)：高黑度微墨晕扩散、细腻纸张纤维、纯黑白平滑线条与实色吸墨印章 */
.a4-page-preview.mode-inkjet {
  background-color: #ffffff;
  color: #000000;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.38);
  filter: contrast(1.15);
}

.a4-page-preview.mode-inkjet .ccb-header-title {
  color: #000000;
  -webkit-text-stroke: 0.45px #000000;
}

.a4-page-preview.mode-inkjet .ccb-meta-bar,
.a4-page-preview.mode-inkjet .ccb-summary-row,
.a4-page-preview.mode-inkjet .ccb-footer {
  font-family: "SimSun", "Songti SC", "STSong", serif;
  color: #000000;
  letter-spacing: -0.45px;
}

.a4-page-preview.mode-inkjet .ccb-table {
  border-color: #000000;
  border-width: 0.35pt;
  font-family: "SimSun", "Songti SC", "STSong", serif;
}

.a4-page-preview.mode-inkjet .ccb-table th,
.a4-page-preview.mode-inkjet .ccb-table td {
  border-color: #000000;
  color: #000000;
  letter-spacing: -0.45px;
}

.a4-page-preview.mode-inkjet .ccb-stamp-container {
  position: absolute;
  top: 28.00pt;
  left: 314.50pt;
  width: 107.00pt;
  height: 107.00pt;
  mix-blend-mode: normal;
  opacity: 0.95;
}

/* 打印专用配置（保证通过浏览器直接打印成高精度 A4，杜绝任何 Toast、弹出信息、横幅干扰） */
@media print {
  body {
    background: transparent !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .no-print,
  .toast-container,
  .toast,
  #toast-container,
  [id*="toast"],
  [class*="toast"],
  .modal-backdrop,
  .modal-overlay,
  .modal-box,
  .modal-window,
  .sig-canvas-modal-overlay,
  #ajax-translate-banner,
  .header-actions,
  header,
  nav,
  aside,
  .sidebar,
  .workspace-toolbar,
  .editor-view,
  .analytics-view,
  .floating-action-btn,
  .view-tabs,
  .print-mode-selector {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    pointer-events: none !important;
  }

  .print-area {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
  }

  .a4-page-preview {
    width: 595.0pt !important;
    height: 841.0pt !important;
    max-height: 841.0pt !important;
    margin: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
    page-break-after: always !important;
    page-break-inside: avoid !important;
    break-after: page !important;
    break-inside: avoid !important;
    border: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  /* 最后一页彻底避免强制换页，根治尾部多出一张空白页问题 */
  .a4-page-preview:last-child,
  .a4-page-preview:last-of-type,
  .a4-page-preview.is-last-page {
    page-break-after: avoid !important;
    break-after: avoid !important;
    margin-bottom: 0 !important;
  }

  .a4-page-preview.paper-mode,
  .a4-page-preview.mode-dotmatrix,
  .a4-page-preview.mode-inkjet {
    border: none !important;
    background: transparent !important;
  }

  .ccb-statement-page {
    width: 595.0pt !important;
    height: 841.0pt !important;
    max-height: 841.0pt !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .ccb-table th,
  .ccb-table td {
    border: 0.35pt solid #000000 !important;
  }

  .ccb-stamp-container {
    top: 29.50pt !important;
    left: 313.00pt !important;
    width: 107.00pt !important;
    height: 107.00pt !important;
    mix-blend-mode: normal !important;
  }

  .ccb-stamp-canvas {
    width: 107.00pt !important;
    height: 107.00pt !important;
  }

  @page {
    size: 595pt 842pt;
    margin: 0;
  }
}
