/* print.css —— 浏览器打印 / 另存为 PDF 的专用样式（D27，2026-10-03）
 *
 * 为什么走前端打印而不是服务端生成 PDF：
 *   服务端出 PDF 要引 PDF 库 + **内嵌中文字体**（几 MB，且字体授权要确认），
 *   而这个系统的报表全是中文，字体是最大的坑。浏览器打印：
 *   零新增依赖、中文天然正确、用户还能在打印对话框里选"另存为 PDF"或改纸张。
 *   代价是样式受浏览器打印设置影响 —— 所以下面把页面**无关部分**藏干净，
 *   剩下的交给浏览器自己排版（表格分页、表头重复由浏览器处理，比自己排更稳）。
 *
 * 约定：打印时给要打印的根节点加 `.print-area`，本样式只保证
 * "**除 .print-area 之外的东西都不打印**"。用 JS 控制范围，而不是在 CSS 里
 * 按页面 id 逐个 if —— 后者每加一个页面就得同步改一次 CSS，必然漏。
 */

/* 隐藏：侧栏 / 顶栏 / 页头工具栏 / 面包屑 / 分页器 / 弹窗 / toast / 所有按钮 */
@media print {
  :root {
    /* 打印用真白底，别把屏幕上的浅灰底带上去（费墨且脏） */
    --c-bg: #fff;
  }

  html,
  body {
    background: #fff !important;
    /* 屏幕上滚动区限高，打印时要让内容自然铺开，否则第 2 页起会空白 */
    height: auto !important;
    overflow: visible !important;
  }

  /* 布局骨架：打印里不需要侧栏留白 */
  .app__sidebar,
  .sidebar,
  .app__nav,
  .topbar,
  .top-bar,
  .page-head__toolbar,
  .toolbar,
  .pager,
  .pager-bar,
  .segmented,
  .toast,
  .modal,
  .modal-mask,
  .drawer,
  .tab-nav {
    display: none !important;
  }

  /* 按钮、输入框、下拉一律不打印：打印出来一堆"提交/导出"按钮没有意义 */
  button,
  .btn,
  input,
  select,
  textarea,
  [data-act] {
    display: none !important;
  }

  /* 表格是报表的主体：允许它自己断页，别为了"不裂"而整块缩到一页 */
  table {
    page-break-inside: auto !important;
  }
  thead {
    display: table-header-group; /* 每页重复表头 */
  }
  tr {
    page-break-inside: avoid; /* 单行不跨页断开 */
  }

  /* 链接在 PDF 里点不动，但地址有价值：打印成 URL 形式 */
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 10px;
    color: #666;
    word-break: break-all;
  }
  /* 页内锚点就不加了，否则每个 # 都会变成一串噪音 */
  a[href^="#"]::after {
    content: "";
  }
}

/* 非打印态下什么都不做 —— 这个文件只服务 @media print。
 * 但**屏幕预览态**要给出一点视觉提示：用户点了"打印/导出 PDF"之后，
 * 浏览器弹窗之前他看不到任何变化，容易以为没点上。
 * 这里给打印区域加一个极轻的左边框，屏幕上一眼能看出"这些是要打印的"。 */
.print-area {
  /* 屏幕态提示；打印态下面那条 border 会被上面的 table 样式覆盖掉 */
  border-left: 3px solid var(--c-border, #e6e8eb);
  padding-left: 12px;
}
@media print {
  .print-area {
    border-left: 0 !important;
    padding-left: 0 !important;
  }
}
