/* ===== 客户交付报告（W2-B）=====
   加在 <link> 列表最后：报告页专属样式，不覆盖其它视图已用到的类名（report- 前缀
   全局唯一）。屏幕态（.report-controls 内的选店铺/日期范围/生成按钮）用现有的
   .set-card/.filter-bar/.mini-btn（见 public/css/views.css），这里只定义
   report- 前缀的打印区域样式 + @media print 规则。*/

.report-header { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px 24px; margin-bottom:16px; }
.report-header-title { font-size:18px; font-weight:700; color:var(--text); margin-bottom:8px; }
.report-header-meta { font-size:12.5px; color:var(--text-muted); line-height:1.8; }

.report-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px 24px; margin-bottom:16px; }
.report-section-title { font-size:15px; font-weight:700; color:var(--text); margin-bottom:14px; }
.report-empty { font-size:13px; color:var(--text-subtle); text-align:center; padding:24px 0; }

/* 本期交付：只报计数，故意不含 .report-progress-bar——进度条元素本身就是"这是
   累计进度"的视觉承诺，本期计数卡片不该借用它（裁决见 public/js/views/report.js
   文件头注释）。 */
.report-period-row { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:10px; }
.report-period-card { flex:1; min-width:180px; border:1px solid var(--border); border-radius:var(--radius); padding:14px 18px; }
.report-period-value { font-size:20px; font-weight:700; color:var(--brand); }
.report-period-range { font-size:12px; color:var(--text-subtle); }

/* 整体进度：累计快照，配进度条。 */
.report-progress-row { display:flex; gap:16px; flex-wrap:wrap; }
.report-progress-card { flex:1; min-width:220px; border:1px solid var(--border); border-radius:var(--radius); padding:14px 18px; }
.report-progress-label { font-size:12.5px; color:var(--text-subtle); margin-bottom:6px; }
.report-progress-value { font-size:20px; font-weight:700; color:var(--text); margin-bottom:8px; }
.report-progress-bar { height:8px; background:#f0f0f0; border-radius:var(--radius-sm); overflow:hidden; }
.report-progress-fill { height:100%; background:var(--brand); border-radius:var(--radius-sm); }

.report-item-card { border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; margin-bottom:12px; }
.report-item-card:last-child { margin-bottom:0; }
.report-item-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.report-item-title { font-size:13.5px; font-weight:600; color:var(--text); }
.report-item-badge { font-size:11.5px; color:var(--text-muted); background:var(--brand-bg); border-radius:var(--radius-sm); padding:2px 8px; white-space:nowrap; }
.report-item-meta { font-size:12px; color:var(--text-subtle); margin-bottom:4px; }
.report-item-expected { font-size:12.5px; color:var(--text-muted); margin-bottom:4px; }
.report-item-note { font-size:12.5px; color:var(--text-muted); margin-bottom:8px; line-height:1.6; white-space:pre-wrap; }

.report-proof-list { display:flex; gap:8px; flex-wrap:wrap; }
.report-proof-thumb { width:80px; height:80px; border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--border); }
.report-proof-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.report-proof-missing { font-size:12px; color:var(--bad); background:var(--bad-bg); border:1px dashed var(--bad); border-radius:var(--radius-sm); padding:6px 10px; display:inline-block; }

.report-product-tasks { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.report-product-task { border-top:1px solid #f2f2f2; padding-top:8px; }
.report-product-task-title { font-size:12.5px; color:var(--text); margin-right:10px; }
.report-product-task-date { font-size:11.5px; color:var(--text-subtle); }

/* ===== 打印态：只留报告本体，隐藏应用外壳（侧边栏/头部/标签页/弹层/控制面板） ===== */
@media print {
  .sidebar, .main-header, .loading-overlay, .modal-overlay, .report-controls { display:none !important; }
  body, .app, .main, .content { height:auto !important; overflow:visible !important; background:#fff !important; }
  body { font-family:system-ui,-apple-system,'Segoe UI','PingFang SC','Microsoft YaHei','Noto Sans CJK SC',sans-serif !important; }
  .report-print-area { display:block !important; }

  /* 凭证图与所在卡片不跨页截断：打印分页只在整张卡片/整张图之间断，不会把一张
     图切成两半分落两页——这是本文件唯一直接服务验收标准 5 的规则。 */
  .report-item-card, .report-product-task, .report-proof-thumb, .report-progress-card {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}
