/* =============================================================================
   QuickBooks Replace — reports.css
   The report window: button bar, filter row, and the report body itself
   (centred header block, indented account rows, subtotal rules).
   ========================================================================== */

.qb-report { display: flex; flex-direction: column; height: 100%; background: #fff; }

.qb-rpt-buttons {
  flex: 0 0 auto; display: flex; align-items: center; gap: 4px;
  padding: 4px 6px; background: linear-gradient(to bottom, #FAFAFA, #E7E7E7);
  border-bottom: 1px solid #C4C4C4; overflow-x: auto;
}
.qb-rpt-buttons .qb-rb {
  height: 23px; padding: 0 9px; font-size: 11.5px; white-space: nowrap;
  border: 1px solid transparent; border-radius: 2px;
  display: inline-flex; align-items: center; gap: 4px;
}
.qb-rpt-buttons .qb-rb:hover { background: #DCE9F8; border-color: #A6C4E4; }
.qb-rpt-buttons .qb-rb .caret { font-size: 8px; color: #555; }
.qb-rpt-buttons .qb-spacer { flex: 1 1 auto; }

.qb-rpt-filters {
  flex: 0 0 auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 5px 8px; background: #F4F5F7; border-bottom: 1px solid #D2D2D2; font-size: 11px;
}
.qb-rpt-filters label { color: var(--qb-label); text-transform: uppercase; letter-spacing: .3px; font-size: 10px; }
.qb-rpt-filters .qb-fieldwrap { width: 168px; }
.qb-rpt-filters .qb-fieldwrap.narrow { width: 104px; }
.qb-rpt-filters .qb-field { height: 21px; font-size: 11.5px; }
.qb-rpt-filters .qb-fieldwrap .qb-drop { height: 19px; }
.qb-rpt-showline {
  flex: 0 0 auto; padding: 3px 10px; font-size: 11px; color: #5A5A5A;
  background: #FAFAFA; border-bottom: 1px solid #E4E4E4;
}

/* ---- the report page ---------------------------------------------------- */
.qb-rpt-page { flex: 1 1 auto; overflow: auto; background: #fff; padding: 14px 0 40px; }
.qb-rpt-head { text-align: center; margin-bottom: 14px; padding: 0 20px; }
.qb-rpt-head .qb-rh-company { font-size: 14px; font-weight: 700; color: #1A1A1A; }
.qb-rpt-head .qb-rh-title { font-size: 15px; font-weight: 700; margin-top: 2px; }
.qb-rpt-head .qb-rh-sub { font-size: 12px; margin-top: 1px; }
.qb-rpt-head .qb-rh-date { font-size: 12px; margin-top: 1px; }
.qb-rpt-head .qb-rh-basis { font-size: 10.5px; color: #6A6A6A; margin-top: 3px; }

.qb-rpt-table {
  border-collapse: collapse; font-family: var(--qb-font-data); font-size: 11.5px;
  margin: 0 auto; min-width: 60%;
}
.qb-rpt-table td, .qb-rpt-table th { padding: 1px 8px; vertical-align: bottom; white-space: nowrap; }
.qb-rpt-table th {
  font-size: 10.5px; font-weight: 700; text-align: right; color: #1A1A1A;
  border-bottom: 1px solid #1A1A1A; padding-bottom: 2px;
}
.qb-rpt-table th.lbl { text-align: left; border-bottom: none; }
.qb-rpt-table td.lbl { text-align: left; max-width: 420px; overflow: hidden; text-overflow: ellipsis; }
.qb-rpt-table td.num { text-align: right; font-family: var(--qb-font-num); }
.qb-rpt-table td.ctr { text-align: center; }
.qb-rpt-table tr.blank td { height: 9px; }

.qb-rpt-table tr.section td.lbl { font-weight: 700; }
.qb-rpt-table tr.subtotal td { border-top: 1px solid #1A1A1A; }
.qb-rpt-table tr.subtotal td.lbl { font-weight: 700; }
.qb-rpt-table tr.total td { border-top: 1px solid #1A1A1A; font-weight: 700; }
.qb-rpt-table tr.grand td { border-top: 1px solid #1A1A1A; border-bottom: 3px double #1A1A1A; font-weight: 700; }
.qb-rpt-table tr.detail td { color: #1A1A1A; }
.qb-rpt-table tr:hover td { background: #F3F8FD; }
.qb-rpt-table tr.drill td.num:hover { background: #DFF0D2; cursor: zoom-in; }
.qb-rpt-table tr.drill td.lbl:hover { cursor: zoom-in; }
.qb-rpt-table .neg { color: var(--qb-negative); }
.qb-rpt-table .missing td { color: var(--qb-negative); font-style: italic; }

.qb-rpt-i0 { padding-left: 8px !important; }
.qb-rpt-i1 { padding-left: 24px !important; }
.qb-rpt-i2 { padding-left: 40px !important; }
.qb-rpt-i3 { padding-left: 56px !important; }
.qb-rpt-i4 { padding-left: 72px !important; }

.qb-rpt-foot {
  text-align: center; font-size: 10px; color: #7A7A7A; margin-top: 22px;
}

/* ---- print -------------------------------------------------------------- */
@media print {
  .qb-titlebar, .qb-menubar, .qb-iconbar, .qb-statusbar,
  .qb-rpt-buttons, .qb-rpt-filters, .qb-rpt-showline, .qb-win-caption { display: none !important; }
  .qb-win { position: static !important; border: none; box-shadow: none; }
  .qb-rpt-page { overflow: visible; }
  body { overflow: visible; }
}

/* -------------------------------------------------------------------------
   Simple inline charts used by Insights and the graph reports
   ---------------------------------------------------------------------- */
.qb-chart { width: 100%; }
.qb-chart .axis { stroke: #C9D2DA; stroke-width: 1; }
.qb-chart .gridline { stroke: #EDF1F5; stroke-width: 1; }
.qb-chart .lbl { font-size: 9px; fill: #6A7B8A; font-family: var(--qb-font-ui); }
.qb-chart .bar-income { fill: #5A9E3C; }
.qb-chart .bar-expense { fill: #3E77B8; }
.qb-chart .profit-line { fill: none; stroke: #22384C; stroke-width: 1.6; }
.qb-chart .profit-dot { fill: #22384C; }
