/* BS-10196 On-screen report table: the spreadsheet look shared by the div grid and the table fallback.
   Rendered by report-table.js next to this file. */
/* padding-top: the report box's own top padding, taken off the box so the frozen header can sit flush on its edge */
.bs-report { padding-top: 20px; font: 12px/1.5 "Segoe UI", Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; color: #1f2328; }

/* ---- div grid (flat reports) ---- */
.bs-grid { border-left: 1px solid #b0b4b9; border-top: 1px solid #b0b4b9; }
.bs-grid-row { display: flex; }
.bs-grid-cell { box-sizing: border-box; height: 31px; background: #fff; padding: 5px 8px; border-right: 1px solid #d0d3d7;
                border-bottom: 1px solid #d0d3d7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* numbers and dates sit right with digits of equal width, and never break */
.bs-grid-n, .bs-grid-d { text-align: right; font-variant-numeric: tabular-nums; }
.bs-grid-d { color: #333; }
/* the header row stays on top of the scrolling report box */
.bs-grid-head { position: sticky; top: 0; z-index: 2; }
.bs-grid-th { height: 33px; background: linear-gradient(#fbfbfb, #eceef1); font-weight: 600; text-align: center;
              border-right-color: #c3c7cc; border-bottom: 2px solid #9aa0a6; }
.bs-grid-even .bs-grid-cell { background: #fafbfc; }
.bs-grid-row:hover .bs-grid-cell { background: #e8f1fd; }
/* blocks of rows off screen are neither laid out nor painted */
.bs-grid-block { content-visibility: auto; contain-intrinsic-size: auto 3100px; }

/* ---- table fallback (reports with merged cells) ----
   .bs-report.bs-report-table raises specificity above the td.styleN rules PhpSpreadsheet ships
   inside the report html, which would otherwise win by coming later. */
.bs-report.bs-report-table table { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%;
    border-left: 1px solid #b0b4b9; border-top: 1px solid #b0b4b9; }
.bs-report.bs-report-table td, .bs-report.bs-report-table th {
    border: 0; border-right: 1px solid #d0d3d7; border-bottom: 1px solid #d0d3d7; padding: 4px 8px; height: 22px;
    vertical-align: middle; font: inherit; color: inherit; background: #fff;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 46ch; }
/* the header block stays on top of the scrolling report box */
.bs-report.bs-report-table thead { position: sticky; top: 0; z-index: 2; }
.bs-report.bs-report-table thead td { font-weight: 600; text-align: center; max-width: none;
    background: linear-gradient(#fbfbfb, #eceef1); border-right-color: #c3c7cc; }
.bs-report.bs-report-table thead tr:last-child td { border-bottom: 2px solid #9aa0a6; }
.bs-report.bs-report-table tbody tr:nth-child(even) td { background: #fafbfc; }
.bs-report.bs-report-table tbody tr:hover td { background: #e8f1fd; }
.bs-report.bs-report-table td.n { text-align: right; font-variant-numeric: tabular-nums; max-width: none; }
