/* report.css — 报表细线表格 + 醒目标记 + 对比条形图
   类名 s-* 与 exporters.js 的样式键一一对应。 */

.report-head { padding-bottom: 10px; border-bottom: 2px solid var(--ink); }
.report-title { font-size: 21px; font-weight: 700; letter-spacing: .3px; }
.report-sub { font-size: 12.5px; color: var(--ink-soft); margin-top: 5px; }
.report-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 24px; margin: 12px 0 4px; font-size: 12.5px; color: var(--ink-soft); }
.report-meta b { color: var(--ink); }

.section-title {
  font-size: 15px; font-weight: 700; margin: 26px 0 10px;
  padding-left: 10px; border-left: 4px solid var(--ink);
}
.scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.report-table { border-collapse: collapse; width: 100%; font-size: 13px; background: var(--white); }
.report-table th, .report-table td {
  border: 1px solid var(--line); padding: 5px 8px; text-align: left; vertical-align: middle;
}
.report-table th { background: var(--head); color: var(--ink); font-weight: 700; text-align: center; white-space: nowrap; }
.report-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.report-table th:first-child, .report-table td:first-child { position: sticky; left: 0; z-index: 1; }
.report-table th:first-child { z-index: 2; }
.compare-table td:first-child { font-weight: 700; }
.layer-summary td { font-weight: 700; border-top: 2px solid var(--line-strong); }
.mode-line { font-size: 12.5px; color: var(--ink-soft); margin-bottom: 8px; }
.mode-line b { color: var(--ink); }
.table-note { font-size: 11.5px; color: var(--ink-faint); margin-top: 6px; }
.empty-note { font-size: 12.5px; color: var(--ink-soft); padding: 8px 0; }

/* 标记样式：唯一真源，网页与导出一致 */
.s-title { font-size: 19px; font-weight: 700; }
.s-meta, .s-note, .s-plain { background: var(--white); color: var(--ink); }
.s-head { background: var(--head); color: var(--ink); font-weight: 700; text-align: center; }
.s-section { background: var(--section); color: var(--ink); font-weight: 700; }
.s-failPlain { background: var(--fail-row); color: var(--fail-ink); }
.s-failKey { background: var(--fail-key); color: #FFFFFF; font-weight: 700; }
.s-passScore { background: var(--pass-score); color: var(--pass-score-ink); font-weight: 700; }
.s-excScore { background: var(--exc-score); color: var(--exc-score-ink); font-weight: 700; }
.s-passName { background: var(--pass-name); color: var(--pass-name-ink); }
.s-excName { background: var(--exc-name); color: var(--exc-name-ink); }

/* 不及格整行全红：浅红底 + 深红人名/成绩 + 左侧红竖线 */
tr.row-fail td { border-top-color: var(--fail-key); border-bottom-color: var(--fail-key); }
tr.row-fail td:first-child { border-left: 4px solid var(--fail-key); }
.cell-name, .cell-score { font-weight: 700; }
td.s-failKey { border-color: var(--fail-key); }

/* 图例色块复用同一套标记样式 */
.sw.s-failKey { background: var(--fail-key); border-color: var(--fail-key); }
.sw.s-passScore { background: var(--pass-score); border-color: var(--pass-score); }
.sw.s-excScore { background: var(--exc-score); border-color: var(--exc-score); }
.sw.s-passName { background: var(--pass-name); }

/* 同班级排名对比条形图（纯 SVG，无图表库） */
.chart-cell { padding: 3px 6px !important; min-width: 230px; }
.bars { width: 290px; height: 26px; display: block; }
.bar-label { font-size: 9px; fill: var(--ink-soft); }
.bar-value { font-size: 9px; fill: var(--ink); font-weight: 700; }

.note-list { padding-left: 20px; font-size: 12.5px; color: var(--ink-soft); }
.note-list li { margin-bottom: 5px; }

@media (max-width: 620px) {
  .report-meta { grid-template-columns: 1fr; }
  .report-table { font-size: 12px; }
  .chart-cell { min-width: 165px; }
  .bars { width: 155px; }
}
