/*
 * reports.css
 * -----------
 * Reports styling layered on top of the shared theme tokens (see css/theme.css).
 * The :root block below aliases global tokens so report-specific rules remain
 * semantic while inheriting the centralized palette and spacing scale.
 */
:root {
  --ph-report-surface: var(--ph-color-surface-soft);
  --ph-report-surface-alt: var(--ph-color-surface-alt);
  --ph-report-border: var(--ph-color-border-soft);
  --ph-report-border-strong: var(--ph-color-border-strong);
  --ph-report-shadow: var(--ph-shadow-float);
  --ph-report-shadow-soft: var(--ph-shadow-panel);
  --ph-report-card-radius: var(--ph-radius-lg);
  --ph-report-panel-radius: var(--ph-radius-md);
  --ph-report-spacing-sm: var(--ph-space-sm);
  --ph-report-spacing-md: var(--ph-space-md);
  --ph-report-spacing-lg: var(--ph-space-lg);
  --ph-report-text-muted: var(--ph-color-text-muted);
  --ph-report-text-strong: var(--ph-color-text-strong);
  --ph-report-primary: var(--ph-color-primary);
  --ph-report-primary-soft: var(--ph-color-primary-soft);
}

/* =============================================================================
 * Report Result View Toolbar
 * Aligned with member module .view-toolbar pattern
 * ============================================================================= */

.report-result-shell .view-toolbar {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: var(--ph-report-spacing-md);
}

/* =============================================================================
 * Report Cards Grid
 * ============================================================================= */

.report-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--ph-report-spacing-md);
  margin-top: var(--ph-report-spacing-md);
}

.report-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--ph-report-spacing-md);
  border-radius: var(--ph-report-card-radius);
  background: linear-gradient(135deg, var(--ph-report-surface) 0%, var(--ph-report-surface-alt) 100%);
  border: 1px solid var(--ph-report-border);
  text-decoration: none;
  color: inherit;
  box-shadow: var(--ph-report-shadow-soft);
  transition: transform var(--ph-transition-default, 0.18s ease), box-shadow var(--ph-transition-default, 0.18s ease),
    border-color var(--ph-transition-default, 0.18s ease);
}

.report-card:hover,
.report-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--ph-report-shadow);
  border-color: var(--ph-report-border-strong);
  outline: none;
}

.report-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.report-card-title {
  font-weight: 600;
  font-size: 1.05rem;
}

.report-card-badge {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ph-report-primary);
  background: var(--ph-report-primary-soft);
  padding: 0.2rem 0.5rem;
  border-radius: var(--ph-radius-pill, 999px);
}

.report-card-description {
  margin: 0;
  color: var(--ph-report-text-muted);
  font-size: 0.9rem;
}

.report-card-description--muted {
  color: rgba(100, 116, 139, 0.75);
  font-style: italic;
}

.report-form-shell {
  background: var(--ph-report-surface);
  border: 1px solid var(--ph-report-border);
  border-radius: var(--ph-report-panel-radius);
  box-shadow: var(--ph-report-shadow-soft);
  padding: var(--ph-report-spacing-lg);
}

.report-form-header {
  margin-bottom: var(--ph-report-spacing-md);
}

.report-form-description {
  margin: 0 0 var(--ph-report-spacing-md);
  color: var(--ph-report-text-muted);
}

.report-field-grid {
  display: grid;
  gap: var(--ph-report-spacing-md);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.report-field {
  display: flex;
  flex-direction: column;
}

.report-field-label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: var(--ph-report-text-strong);
}

.report-field-required {
  color: var(--ph-color-danger, #dc2626);
  font-weight: 700;
}

.report-field-hint {
  font-size: 0.8rem;
  color: var(--ph-report-text-muted);
  margin-top: 0.25rem;
}

.report-form-actions {
  margin-top: var(--ph-report-spacing-lg);
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.report-result-shell {
  background: var(--ph-report-surface);
  border: 1px solid var(--ph-report-border);
  border-radius: var(--ph-report-panel-radius);
  box-shadow: var(--ph-report-shadow-soft);
  padding: var(--ph-report-spacing-lg);
}

.report-result-description {
  margin: 0 0 var(--ph-report-spacing-md);
  color: var(--ph-report-text-muted);
}

.report-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem 1.5rem;
  margin-bottom: var(--ph-report-spacing-md);
}

.report-summary-item {
  display: flex;
  flex-direction: column;
  padding: 0.85rem 1rem;
  border-radius: var(--ph-report-panel-radius);
  background: var(--ph-report-surface-alt);
  border: 1px solid var(--ph-report-border);
}

.report-summary-label {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ph-report-text-muted);
  margin-bottom: 0.35rem;
}

.report-summary-value {
  font-weight: 600;
  color: var(--ph-report-text-strong);
}

.report-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: var(--ph-report-spacing-md);
}

.report-toolbar__secondary {
  display: inline-flex;
  gap: 0.5rem;
}

.report-grid-wrapper .grid-view {
  border-radius: var(--ph-report-panel-radius);
  overflow: hidden;
  box-shadow: var(--ph-report-shadow-soft);
}

.report-grid-wrapper .grid-view th {
  background: var(--ph-report-surface-alt);
  color: var(--ph-report-text-strong);
  position: sticky;
  top: 0;
  z-index: 2;
}

/* =============================================================================
 * Report Header / Transparency Panel
 * "About This Report" + Developer Debug (admin-only)
 * ============================================================================= */

.report-header {
  margin: var(--ph-report-spacing-md) 0;
  border-radius: var(--ph-report-panel-radius);
  border: 1px solid var(--ph-report-border);
  background: var(--ph-report-surface);
  overflow: hidden;
}

/* --- About This Report Section --- */
.report-header__about {
  padding: var(--ph-report-spacing-md);
  background: var(--ph-color-surface-accent);
  border-bottom: 1px solid var(--ph-report-border);
}

.report-header__about-title {
  display: flex;
  align-items: center;
  gap: var(--ph-space-xs);
  font-size: var(--ph-font-size-t5); /* T5 — Section header */
  font-weight: var(--ph-font-weight-label);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
  color: var(--ph-color-primary);
  margin-bottom: var(--ph-space-sm);
}

.report-header__about-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: var(--ph-radius-pill);
  background: var(--ph-color-primary);
  color: var(--ph-color-text-inverse);
  font-size: 0.7rem;
  font-weight: var(--ph-font-weight-heading);
}

.report-header__about-content {
  display: flex;
  flex-direction: column;
  gap: var(--ph-space-xs);
}

.report-header__row {
  display: flex;
  gap: var(--ph-space-xs);
  font-size: var(--ph-font-size-t4); /* T4 — Body text */
}

.report-header__label {
  font-weight: var(--ph-font-weight-label);
  color: var(--ph-color-text-muted);
  min-width: 100px;
}

.report-header__value {
  color: var(--ph-color-text-primary);
}

.report-header__value--count {
  font-weight: var(--ph-font-weight-semibold);
  color: var(--ph-color-primary);
}

/* --- Admin Toggle Button --- */
.report-header__admin-toggle {
  padding: var(--ph-space-xs) var(--ph-report-spacing-md);
  background: var(--ph-color-surface-muted);
  border-bottom: 1px solid var(--ph-report-border);
}

.report-header__toggle-btn {
  font-size: var(--ph-font-size-t5); /* T5 — Meta */
  color: var(--ph-color-text-muted);
  text-decoration: none;
}

.report-header__toggle-btn:hover {
  color: var(--ph-color-primary);
  text-decoration: underline;
}

/* =============================================================================
 * Developer Debug Panel (Admin Only)
 * Shows raw SQL, parameters, metadata for debugging/auditing
 * ============================================================================= */

.dev-debug {
  border-top: 2px solid var(--ph-color-primary);
  background: var(--ph-color-surface-soft);
}

.dev-debug__header {
  display: flex;
  align-items: center;
  gap: var(--ph-space-xs);
  padding: var(--ph-space-sm) var(--ph-report-spacing-md);
  background: var(--ph-color-surface-accent);
  font-size: var(--ph-font-size-t5); /* T5 — Section header */
  font-weight: var(--ph-font-weight-label);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
  color: var(--ph-color-primary);
  border-bottom: 1px solid var(--ph-report-border);
}

.dev-debug__header-icon {
  font-size: 1rem;
}

.dev-debug__content {
  padding: var(--ph-report-spacing-md);
}

/* --- Quick Metadata Row --- */
.dev-debug__meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ph-space-sm) var(--ph-space-lg);
  margin-bottom: var(--ph-report-spacing-md);
  padding: var(--ph-space-sm);
  background: var(--ph-color-surface);
  border-radius: var(--ph-radius-sm);
  border: 1px solid var(--ph-report-border);
}

.dev-debug__meta-item {
  font-size: var(--ph-font-size-t5); /* T5 — Meta */
  color: var(--ph-color-text-muted);
}

.dev-debug__meta-item strong {
  color: var(--ph-color-text-primary);
}

.dev-debug__meta-item--warning {
  color: var(--ph-color-warning);
}

.dev-debug__meta-item--warning strong {
  color: var(--ph-color-warning);
}

/* --- Collapsible Sections --- */
.dev-debug__section {
  margin-bottom: var(--ph-space-sm);
  border: 1px solid var(--ph-report-border);
  border-radius: var(--ph-radius-sm);
  overflow: hidden;
}

.dev-debug__section-title {
  padding: var(--ph-space-xs) var(--ph-space-sm);
  background: var(--ph-color-surface-muted);
  font-size: var(--ph-font-size-t5); /* T5 — Section header */
  font-weight: var(--ph-font-weight-label);
  color: var(--ph-color-text-strong);
  cursor: pointer;
}

.dev-debug__section-title:hover {
  background: var(--ph-stripe-hover);
}

.dev-debug__section-content {
  padding: var(--ph-space-sm);
  background: var(--ph-color-surface);
}

/* --- Code Blocks --- */
.dev-debug__code {
  font-family: var(--ph-font-mono);
  font-size: var(--ph-font-size-t5); /* T5 — Code */
  background: var(--ph-stripe-even);
  padding: var(--ph-space-sm);
  border-radius: var(--ph-radius-xs);
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
  border: 1px solid var(--ph-border-grid);
}

.dev-debug__code--small {
  font-size: 0.7rem;
  padding: var(--ph-space-xs);
}

.dev-debug__empty {
  font-size: var(--ph-font-size-t5); /* T5 — Meta */
  color: var(--ph-color-text-soft);
  font-style: italic;
  margin: 0;
}

.dev-debug__hint {
  font-size: var(--ph-font-size-t5); /* T5 — Meta */
  color: var(--ph-color-text-muted);
  margin: var(--ph-space-xs) 0 0;
}

/* --- Parameters Table --- */
.dev-debug__table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ph-font-size-t5); /* T5 — Table data */
}

.dev-debug__table th,
.dev-debug__table td {
  padding: var(--ph-space-2xs) var(--ph-space-xs);
  text-align: left;
  border-bottom: 1px solid var(--ph-border-grid);
}

.dev-debug__table th {
  background: var(--ph-stripe-even);
  font-weight: var(--ph-font-weight-label);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
  color: var(--ph-color-text-muted);
  font-size: 0.65rem;
}

.dev-debug__table tbody tr:nth-child(even) {
  background: var(--ph-stripe-even);
}

.dev-debug__table tbody tr:hover {
  background: var(--ph-stripe-hover);
}

.dev-debug__table code {
  font-family: var(--ph-font-mono);
  font-size: 0.7rem;
  background: var(--ph-color-surface-muted);
  padding: 0.1rem 0.3rem;
  border-radius: var(--ph-radius-xs);
}

/* =============================================================================
 * Batch Print Panel
 * For reports with batchPdf enabled - background PDF generation UI
 * ============================================================================= */

.batch-print-panel {
  background: var(--ph-color-surface);
  border: 1px solid var(--ph-color-border-soft);
  border-radius: var(--ph-radius-md);
  padding: var(--ph-space-md);
  margin-bottom: var(--ph-space-md);
  box-shadow: var(--ph-shadow-card);
}

.batch-print-panel__header {
  display: flex;
  align-items: baseline;
  gap: var(--ph-space-sm);
  margin-bottom: var(--ph-space-sm);
}

.batch-print-panel__title {
  font-size: var(--ph-font-size-t3);
  font-weight: var(--ph-font-weight-label);
  color: var(--ph-color-text-strong);
  margin: 0;
}

.batch-print-panel__title i {
  color: var(--ph-color-danger);
}

.batch-print-panel__hint {
  font-size: var(--ph-font-size-t5);
  color: var(--ph-color-text-muted);
}

.batch-print-panel__actions {
  margin-bottom: var(--ph-space-md);
}

.batch-print-panel__jobs {
  display: flex;
  flex-direction: column;
  gap: var(--ph-space-sm);
}

/* Individual job item */
.batch-print-job {
  background: var(--ph-color-surface-soft);
  border: 1px solid var(--ph-color-border-soft);
  border-radius: var(--ph-radius-sm);
  padding: var(--ph-space-sm);
}

.batch-print-job--empty {
  color: var(--ph-color-text-muted);
  font-style: italic;
  text-align: center;
}

.batch-print-job--pending {
  border-left: 3px solid var(--ph-color-warning);
}

.batch-print-job--generating {
  border-left: 3px solid var(--ph-color-primary);
  background: var(--ph-color-surface-accent);
}

.batch-print-job--complete {
  border-left: 3px solid var(--ph-color-success);
}

.batch-print-job--failed {
  border-left: 3px solid var(--ph-color-danger);
  background: #fef2f2;
}

.batch-print-job__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.25rem;
}

.batch-print-job__status {
  font-size: var(--ph-font-size-t5);
  font-weight: var(--ph-font-weight-label);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
}

.batch-print-job--pending .batch-print-job__status {
  color: var(--ph-color-warning);
}

.batch-print-job--generating .batch-print-job__status {
  color: var(--ph-color-primary);
}

.batch-print-job--complete .batch-print-job__status {
  color: var(--ph-color-success);
}

.batch-print-job--failed .batch-print-job__status {
  color: var(--ph-color-danger);
}

.batch-print-job__time {
  font-size: var(--ph-font-size-t5);
  color: var(--ph-color-text-muted);
  font-family: var(--ph-font-mono);
}

.batch-print-job__progress {
  margin-top: var(--ph-space-xs);
}

.batch-print-job__progress .progress {
  height: 0.5rem;
  border-radius: var(--ph-radius-xs);
  background: var(--ph-color-surface-muted);
  overflow: hidden;
}

.batch-print-job__progress .progress-bar {
  background: var(--ph-color-primary);
  font-size: 0.6rem;
  line-height: 0.5rem;
  transition: width 0.3s ease;
}

.batch-print-job__progress-text {
  display: block;
  font-size: var(--ph-font-size-t5);
  color: var(--ph-color-text-muted);
  margin-top: 0.25rem;
}

.batch-print-job__files {
  margin-top: var(--ph-space-xs);
}

.batch-print-job__file {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--ph-color-primary);
  font-size: var(--ph-font-size-t4);
  font-weight: var(--ph-font-weight-label);
  text-decoration: none;
  padding: 0.25rem 0.5rem;
  background: var(--ph-color-surface);
  border: 1px solid var(--ph-color-primary);
  border-radius: var(--ph-radius-sm);
  transition: background 0.15s ease, color 0.15s ease;
}

.batch-print-job__file:hover {
  background: var(--ph-color-primary);
  color: var(--ph-color-text-inverse);
}

.batch-print-job__file i {
  color: var(--ph-color-danger);
}

.batch-print-job__file:hover i {
  color: inherit;
}

.batch-print-job__error {
  margin-top: var(--ph-space-xs);
  font-size: var(--ph-font-size-t5);
  color: var(--ph-color-danger);
  word-break: break-word;
}
.batch-print-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ph-space-sm);
  margin-top: var(--ph-space-md);
  padding-top: var(--ph-space-sm);
  border-top: 1px solid var(--ph-color-border);
}

.batch-print-pagination__prev,
.batch-print-pagination__next {
  padding: 0.375rem 0.75rem;
  background: var(--ph-color-surface);
  border: 1px solid var(--ph-report-border);
  color: var(--ph-color-text-primary);
  border-radius: var(--ph-radius-sm);
  cursor: pointer;
  font-size: var(--ph-font-size-t5);
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.batch-print-pagination__prev:hover:not(:disabled),
.batch-print-pagination__next:hover:not(:disabled) {
  background: var(--ph-color-primary);
  color: var(--ph-color-text-inverse);
  border-color: var(--ph-color-primary);
}

.batch-print-pagination__prev:disabled,
.batch-print-pagination__next:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.batch-print-pagination__info {
  font-size: var(--ph-font-size-t5);
  color: var(--ph-color-text-muted);
  min-width: 8rem;
  text-align: center;
}

/* =============================================================================
 * Payment Summary Card
 * For Report #10 (Consolidated Sheet) - Shows aggregate totals in card format
 * Matches the verify.php summary styling from grp-pay module
 * ============================================================================= */

.report-payment-summary {
  background: var(--ph-color-surface);
  border: 1px solid var(--ph-color-border-soft);
  border-radius: var(--ph-radius-md);
  box-shadow: var(--ph-shadow-card, 0 8px 14px rgba(30, 64, 175, 0.06));
  margin-bottom: var(--ph-space-md);
  overflow: hidden;
  max-width: 400px;
}

/* Wide variant — activates when metadata panel is present */
.report-payment-summary--wide {
  max-width: 720px;
}

.report-payment-summary__header {
  background: var(--ph-color-surface-accent);
  border-bottom: 2px solid var(--ph-color-primary);
  padding: var(--ph-space-sm) var(--ph-space-md);
  /* Trello #85: align title left, Print action right — keeps the action chip
     inline with the header without disturbing card geometry below. */
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ph-space-md);
}

.report-payment-summary__header-title {
  font-size: var(--ph-font-size-t3);
  font-weight: var(--ph-font-weight-semibold);
  color: var(--ph-color-primary);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
}

/* Trello #85: Print action chip lives in the header right-rail.
   Keeps the standard .view-toolbar__btn--primary appearance, just
   guards against the chip getting squeezed when the title is long. */
.report-payment-summary__action {
  flex: 0 0 auto;
  white-space: nowrap;
}

.report-payment-summary__body {
  padding: var(--ph-space-md);
}

/* Split body: left = totals, right = metadata */
.report-payment-summary__body--split {
  padding: 0;
  display: grid;
  grid-template-columns: auto 1fr;
}

.report-payment-summary__totals {
  padding: var(--ph-space-md);
  border-right: 1px solid var(--ph-color-border-soft);
}

/* Right panel — reporting period, check numbers, attachments */
.report-payment-summary__meta {
  padding: var(--ph-space-md);
  display: flex;
  flex-direction: column;
  gap: var(--ph-space-md);
}

.rps-meta-section {
  display: flex;
  flex-direction: column;
  gap: var(--ph-space-2xs);
}

.rps-meta-label {
  font-size: var(--ph-font-size-t5);
  font-weight: var(--ph-font-weight-label);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
  color: var(--ph-color-text-muted);
}

.rps-meta-count {
  font-weight: var(--ph-font-weight-body);
  color: var(--ph-color-text-soft);
  text-transform: none;
  letter-spacing: normal;
}

.rps-meta-value {
  font-size: var(--ph-font-size-t4);
  font-weight: var(--ph-font-weight-body);
  color: var(--ph-color-text-primary);
}

/* Trello #258 — per-sheet reporting periods. List vertically (one row per
   sheet) because the meta sidebar column is narrow (~30% of card width) and
   a "MM/DD/YYYY – MM/DD/YYYY" period wouldn't pack horizontally there. */
.rps-period-list {
  display: flex;
  flex-direction: column;
  gap: var(--ph-space-2xs);
}

.rps-period-row {
  display: flex;
  align-items: baseline;
  gap: var(--ph-space-xs);
}

.rps-period-tag {
  font-size: var(--ph-font-size-t5);
  font-weight: var(--ph-font-weight-label);
  color: var(--ph-color-text-muted);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
  min-width: 20pt;
}

/* Check number chips */
.rps-meta-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ph-space-xs);
}

.rps-check-chip {
  display: inline-block;
  font-family: var(--ph-font-mono, 'Courier New', Courier, monospace);
  font-size: var(--ph-font-size-t5);
  font-weight: var(--ph-font-weight-label);
  color: var(--ph-color-primary);
  background: var(--ph-color-surface-accent);
  border: 1px solid var(--ph-color-border-soft);
  border-radius: var(--ph-radius-xs);
  padding: var(--ph-space-2xs) var(--ph-space-xs);
  letter-spacing: var(--ph-letter-spacing-tight);
}

/* Attachment rows */
.rps-meta-files {
  display: flex;
  flex-direction: column;
  gap: var(--ph-space-xs);
}

.rps-attachment {
  display: flex;
  align-items: center;
  gap: var(--ph-space-xs);
}

.rps-attachment__icon {
  color: var(--ph-color-text-soft);
  font-size: var(--ph-font-size-t5);
  flex-shrink: 0;
}

.rps-attachment__name {
  font-size: var(--ph-font-size-t4);
  color: var(--ph-color-primary);
  text-decoration: none;
  word-break: break-all;
}

.rps-attachment__name:hover {
  text-decoration: underline;
}

.report-payment-summary__table {
  width: 100%;
  border-collapse: collapse;
}

.report-payment-summary__table tr {
  border-bottom: 1px solid var(--ph-border-grid, #e2e8f0);
}

.report-payment-summary__table tr:last-child {
  border-bottom: none;
}

.report-payment-summary__table tr:nth-child(even) {
  background: var(--ph-stripe-even, #f8fafc);
}

.report-payment-summary__table th {
  text-align: left;
  font-size: var(--ph-font-size-t5);
  font-weight: var(--ph-font-weight-label);
  text-transform: uppercase;
  letter-spacing: var(--ph-letter-spacing-caps);
  color: var(--ph-color-text-muted);
  padding: var(--ph-space-xs) var(--ph-space-sm);
  width: 140px;
  vertical-align: middle;
}

.report-payment-summary__table td {
  font-size: var(--ph-font-size-t4);
  font-weight: var(--ph-font-weight-body);
  color: var(--ph-color-text-primary);
  padding: var(--ph-space-xs) var(--ph-space-sm);
  vertical-align: middle;
}

.report-payment-summary__table td.currency {
  font-family: var(--ph-font-mono, 'Courier New', Courier, monospace);
  text-align: right;
  letter-spacing: var(--ph-letter-spacing-tight);
}

.report-payment-summary__table td.numeric {
  font-family: var(--ph-font-mono, 'Courier New', Courier, monospace);
  text-align: right;
}

/* Total row styling (emphasized) */
.report-payment-summary__table tr.row-total {
  background: var(--ph-color-surface-accent) !important;
  border-top: 2px solid var(--ph-color-primary);
}

.report-payment-summary__table tr.row-total td {
  font-weight: var(--ph-font-weight-semibold);
  color: var(--ph-color-text-strong);
}

/* Section dividers */
.report-payment-summary__table tr.row-section-start {
  border-top: 2px solid var(--ph-color-border-soft);
}
