/* Branded report screen and print layout. @page uses literal physical paper
   settings for print-engine interoperability; element dimensions use tokens. */
/* The report is a document inside the product, with its own print surface. */
.report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--np-space-3);
  margin-top: var(--np-space-5-5);
}
.report-help {
  color: var(--np-color-text-muted);
  font-size: var(--np-text-body);
  line-height: var(--np-leading-relaxed);
  margin: var(--np-space-3-5) 0 0;
  max-width: var(--np-report-help-width);
}
.report-notes h3 {
  font-size: var(--np-text-body);
  margin: 0 0 calc(var(--np-space-1-5) + var(--np-border-hairline));
  letter-spacing: var(--np-tracking-normal);
}
.report-preview {
  min-width: 0;
  margin: 0 0 var(--np-space-6);
  padding: var(--np-space-6);
  border: var(--np-border-hairline) solid var(--np-color-border);
  border-radius: var(--np-radius-summary);
  background: var(--np-color-surface-muted);
}
.report-document {
  max-width: var(--np-report-width);
  min-width: 0;
  margin: 0 auto;
  padding: var(--np-space-9) var(--np-space-10) var(--np-space-7);
  border: var(--np-border-hairline) solid var(--np-color-border);
  border-radius: var(--np-radius-md);
  background: var(--np-color-surface);
  color: var(--np-color-text);
  font-family: var(--np-font-body);
  font-size: var(--np-text-body-lg);
  line-height: var(--np-leading-body);
  font-variant-numeric: tabular-nums;
  box-shadow: var(--np-shadow-report);
}
.report-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--np-space-5);
  padding-bottom: var(--np-space-6);
  border-bottom: var(--np-border-emphasis) solid var(--np-color-brand);
}
.report-logo {
  display: block;
  width: var(--np-report-brand-width);
  max-width: 48%;
  height: auto;
}
.report-tag {
  max-width: 50%;
  padding: calc(var(--np-space-1) + var(--np-border-hairline)) calc(var(--np-space-2) + var(--np-border-hairline));
  border: var(--np-border-hairline) solid var(--np-color-success-border);
  border-radius: var(--np-radius-tag);
  color: var(--np-color-text-muted);
  background: var(--np-color-surface-subtle);
  font-size: var(--np-text-sm);
  font-weight: var(--np-weight-book);
  text-align: right;
}
.report-heading {
  margin: calc(var(--np-space-6-5) + var(--np-border-hairline)) 0 var(--np-space-5-5);
}
.report-heading h2 {
  margin: 0 0 var(--np-space-1-5);
  color: var(--np-color-text);
  font-size: var(--np-text-4xl);
  line-height: var(--np-leading-title);
  font-weight: var(--np-weight-medium);
  letter-spacing: var(--np-tracking-heading);
}
.report-heading p {
  margin: 0;
  color: var(--np-color-text-muted);
  font-size: var(--np-text-body-lg);
}
.report-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: calc(var(--np-space-3-5) + var(--np-border-hairline)) var(--np-space-7);
  margin: 0 0 var(--np-space-6);
}
.report-meta > div {
  min-width: 0;
}
.report-meta dt {
  color: var(--np-color-text-muted);
  font-size: var(--np-text-sm);
}
.report-meta dd {
  margin: calc(var(--np-space-0-5) + var(--np-border-hairline)) 0 0;
  color: var(--np-color-text);
  font-size: var(--np-text-body-lg);
  font-weight: var(--np-weight-book);
  overflow-wrap: anywhere;
}
.report-summary {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  margin: 0 0 var(--np-space-7);
  padding: calc(var(--np-space-4) + var(--np-border-hairline)) 0;
  border-top: var(--np-border-hairline) solid var(--np-color-border);
  border-bottom: var(--np-border-hairline) solid var(--np-color-border);
}
.report-stat {
  min-width: 0;
  padding: 0 var(--np-space-4-5);
}
.report-stat:first-child {
  padding-left: 0;
}
.report-stat:last-child {
  padding-right: 0;
}
.report-stat + .report-stat {
  border-left: var(--np-border-hairline) solid var(--np-color-border-subtle);
}
.report-stat > span {
  display: block;
  color: var(--np-color-text-muted);
  font-size: var(--np-text-sm);
}
.report-stat > strong {
  display: block;
  margin-top: calc(var(--np-space-1) + var(--np-border-hairline));
  color: var(--np-color-text);
  font-size: var(--np-text-report-stat);
  line-height: var(--np-leading-compact);
  font-weight: var(--np-weight-medium);
  letter-spacing: var(--np-tracking-stat);
}
.report-table-wrap {
  position: relative;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.report-table-wrap:focus-visible {
  outline: var(--np-border-emphasis) solid var(--np-color-success);
  outline-offset: var(--np-focus-offset);
}
.report-table {
  width: 100%;
  min-width: var(--np-report-table-min-width);
  margin: 0;
  border-collapse: collapse;
  color: var(--np-color-text);
  font-size: var(--np-text-body);
  line-height: var(--np-leading-table);
}
.report-table caption {
  padding: 0 0 var(--np-space-3);
  color: var(--np-color-text);
  font-size: var(--np-text-body-lg);
  font-weight: var(--np-weight-medium);
  text-align: left;
}
.report-table th {
  padding: calc(var(--np-space-2-5) + var(--np-border-hairline)) var(--np-space-2-5);
  border-top: var(--np-border-hairline) solid var(--np-color-border);
  border-bottom: var(--np-border-hairline) solid var(--np-color-border);
  background: var(--np-color-surface-subtle);
  color: var(--np-color-text-muted);
  font-size: var(--np-text-sm);
  line-height: var(--np-leading-compact);
  font-weight: var(--np-weight-medium);
  letter-spacing: var(--np-tracking-normal);
  text-align: left;
  text-transform: none;
}
.report-table td {
  padding: calc(var(--np-space-3) + var(--np-border-hairline)) var(--np-space-2-5);
  border-bottom: var(--np-border-hairline) solid var(--np-color-border-subtle);
  color: var(--np-color-text);
  font-size: var(--np-text-body);
  vertical-align: top;
}
.report-table td small {
  display: block;
  margin-top: calc(var(--np-space-0-5) + var(--np-border-hairline));
  color: var(--np-color-text-muted);
  font-size: var(--np-text-sm);
}
.report-table .report-number {
  text-align: right;
}
.report-table .report-number small {
  text-align: inherit;
}
.report-table tr:hover {
  background: var(--np-color-transparent);
}
.report-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--np-space-4-5);
  padding: calc(var(--np-space-3-5) + var(--np-border-hairline)) var(--np-space-2-5);
  border-bottom: var(--np-border-hairline) solid var(--np-color-success-border);
  color: var(--np-color-text);
  font-size: var(--np-text-body-lg);
  font-weight: var(--np-weight-medium);
}
.report-total > strong {
  font-size: var(--np-text-lg);
  font-weight: var(--np-weight-semibold);
}
.report-amount {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.report-amount .report-decimals {
  font-size: var(--np-report-fraction);
  font-weight: inherit;
}
.report-notes {
  margin-top: calc(var(--np-space-5-5) + var(--np-border-hairline));
  padding: var(--np-space-4) var(--np-space-4-5);
  border: var(--np-border-hairline) solid var(--np-color-border);
  border-radius: var(--np-radius-lg);
  background: var(--np-color-surface-subtle);
  color: var(--np-color-text-muted);
  font-size: var(--np-text-sm);
  line-height: var(--np-leading-relaxed);
}
.report-notes p {
  margin: 0 0 calc(var(--np-space-1-5) + var(--np-border-hairline));
}
.report-notes p:last-child {
  margin-bottom: 0;
}
.report-notes strong {
  color: var(--np-color-text-muted);
  font-weight: var(--np-weight-medium);
}
.report-footer {
  display: flex;
  justify-content: space-between;
  gap: var(--np-space-2-5) var(--np-space-5-5);
  flex-wrap: wrap;
  margin-top: var(--np-space-7);
  padding-top: var(--np-space-4);
  border-top: var(--np-border-hairline) solid var(--np-color-border);
  color: var(--np-color-text-muted);
  font-size: var(--np-text-sm);
}
.report-footer p {
  margin: 0;
}
.report-empty {
  padding: var(--np-space-8) var(--np-space-5);
  border-block: var(--np-border-hairline) solid var(--np-color-border);
  color: var(--np-color-text-muted);
  font-size: var(--np-text-body-lg);
  text-align: center;
}
@media screen and (max-width: 1050px) {
  .report-preview {
    padding: var(--np-space-4);
  }
  .report-document {
    padding: var(--np-space-7) var(--np-space-6) var(--np-space-6);
  }
  .report-stat {
    padding-inline: var(--np-space-3);
  }
}
@media screen and (max-width: 600px) {
  .report-preview {
    padding: 0;
    border: 0;
    background: none;
  }
  .report-document {
    padding: var(--np-space-6) var(--np-space-4-5);
    border-radius: var(--np-radius-lg);
    box-shadow: none;
  }
  .report-brand-row {
    gap: var(--np-space-2-5);
    padding-bottom: var(--np-space-5);
  }
  .report-logo {
    width: var(--np-brand-width-small);
  }
  .report-heading {
    margin-top: calc(var(--np-space-5-5) + var(--np-border-hairline));
  }
  .report-heading h2 {
    font-size: var(--np-text-2xl);
  }
  .report-meta {
    grid-template-columns: 1fr;
    gap: var(--np-space-3);
  }
  .report-summary {
    grid-template-columns: 1fr;
    gap: calc(var(--np-space-3) + var(--np-border-hairline));
    padding-block: calc(var(--np-space-3-5) + var(--np-border-hairline));
  }
  .report-stat, .report-stat:first-child, .report-stat:last-child {
    padding: 0;
  }
  .report-stat + .report-stat {
    padding-top: var(--np-space-3);
    border-left: 0;
    border-top: var(--np-border-hairline) solid var(--np-color-border-subtle);
  }
  .report-stat > strong {
    margin-top: calc(var(--np-space-0-5) + var(--np-border-hairline));
    font-size: var(--np-text-lg);
  }
  .report-total {
    padding-inline: 0;
    flex-wrap: wrap;
  }
}
/* A named page keeps report paper settings separate from other product views. */
@page nerapay-report {
  size: A4 portrait;
  margin: 14mm;
}
@media print {
  body[data-route="reports"] {
    background: var(--np-color-surface);
    color: var(--np-color-text);
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  body[data-route="reports"] .sidebar,
  body[data-route="reports"] .topbar,
  body[data-route="reports"] .design-bar,
  body[data-route="reports"] .app-footer,
  body[data-route="reports"] .page-heading,
  body[data-route="reports"] .skip-link,
  body[data-route="reports"] #drawer-backdrop,
  body[data-route="reports"] #modal,
  body[data-route="reports"] #toast,
  body[data-route="reports"] > noscript,
  body[data-route="reports"] main > :not(.report-preview) {
    display: none !important;
  }
  body[data-route="reports"] .app-shell,
  body[data-route="reports"] .workspace,
  body[data-route="reports"] main {
    display: block;
    width: auto;
    max-width: none;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0;
  }
  body[data-route="reports"] .report-preview {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--np-color-surface);
  }
  body[data-route="reports"] .report-document {
    page: nerapay-report;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    font-size: var(--np-print-text-body);
  }
  body[data-route="reports"] .report-brand-row {
    padding-bottom: var(--np-print-space-6);
  }
  body[data-route="reports"] .report-logo {
    width: var(--np-print-logo-width);
  }
  body[data-route="reports"] .report-heading {
    margin: var(--np-print-space-6) 0 var(--np-print-space-5);
  }
  body[data-route="reports"] .report-heading h2 {
    font-size: var(--np-print-text-title);
  }
  body[data-route="reports"] .report-heading p,
  body[data-route="reports"] .report-meta dd {
    font-size: var(--np-print-text-body);
  }
  body[data-route="reports"] .report-meta {
    margin-bottom: var(--np-print-space-6);
    gap: var(--np-print-space-3) var(--np-print-space-8);
  }
  body[data-route="reports"] .report-summary {
    margin-bottom: var(--np-print-space-6);
    padding-block: var(--np-print-space-4);
  }
  body[data-route="reports"] .report-stat > strong {
    font-size: var(--np-print-text-stat);
  }
  body[data-route="reports"] .report-table-wrap {
    overflow: visible;
  }
  body[data-route="reports"] .report-table {
    min-width: 0;
    table-layout: fixed;
  }
  body[data-route="reports"] .report-table thead {
    display: table-header-group;
  }
  body[data-route="reports"] .report-table tfoot {
    display: table-footer-group;
  }
  body[data-route="reports"] .report-table th,
  body[data-route="reports"] .report-table td {
    padding: var(--np-print-space-3) var(--np-print-space-2);
    font-size: var(--np-print-text-table);
    white-space: normal;
    overflow-wrap: anywhere;
  }
  body[data-route="reports"] .report-table th {
    font-size: var(--np-print-text-small);
  }
  body[data-route="reports"] .report-table td small,
  body[data-route="reports"] .report-meta dt,
  body[data-route="reports"] .report-stat > span,
  body[data-route="reports"] .report-notes,
  body[data-route="reports"] .report-footer,
  body[data-route="reports"] .report-tag {
    font-size: var(--np-print-text-small);
  }
  body[data-route="reports"] .report-table .report-amount {
    white-space: normal;
  }
  body[data-route="reports"] .report-table .report-decimals {
    white-space: nowrap;
  }
  body[data-route="reports"] .report-total {
    padding: var(--np-print-space-4) var(--np-print-space-2);
    font-size: var(--np-print-text-body);
  }
  body[data-route="reports"] .report-total > strong {
    font-size: var(--np-print-text-total);
  }
  body[data-route="reports"] .report-notes {
    margin-top: var(--np-print-space-6);
    padding: var(--np-print-space-4) var(--np-print-space-5);
  }
  body[data-route="reports"] .report-footer {
    margin-top: var(--np-print-space-7);
    padding-top: var(--np-print-space-4);
  }
  body[data-route="reports"] .report-brand-row,
  body[data-route="reports"] .report-heading,
  body[data-route="reports"] .report-meta,
  body[data-route="reports"] .report-summary,
  body[data-route="reports"] .report-table tr,
  body[data-route="reports"] .report-total,
  body[data-route="reports"] .report-notes,
  body[data-route="reports"] .report-footer,
  body[data-route="reports"] .report-empty {
    break-inside: avoid;
  }
  body[data-route="reports"] .report-heading,
  body[data-route="reports"] .report-table caption {
    break-after: avoid;
  }
}
/* Connected reports never print a stale or partially loaded snapshot. */
.report-print-unavailable {
  display: none;
}
@media print {
  body[data-merchant="connected"][data-route="reports"] .report-preview[data-report-ready="false"] .report-document {
    display: none!important;
  }
  body[data-merchant="connected"][data-route="reports"] .report-preview[data-report-ready="false"] .report-print-unavailable {
    display: block;
    margin: 0;
    padding: var(--np-print-space-15) 0;
    font-family: var(--np-font-body);
    color: var(--np-color-text);
  }
}

/* Timestamp typography follows the document's print scale rather than screen
   pixels; the same helper remains readable in the branded paper document. */
@media print {
  body[data-route="reports"] .report-document .np-datetime .np-datetime-label,
  body[data-route="reports"] .report-document .np-datetime--compact .np-datetime-clock {
    font-size: var(--np-print-text-small);
  }
}
