@page {
  size: A4;
  margin: 1cm;
}

@layer modules {
  @media print {
    .report__inner { padding-block-end: 0; }

    .report-table-scroll { overflow: visible; }
    .report-table { min-width: 0; font-size: 0.8125rem; }
    .report-table :is(th, td):not(:first-child) { padding-left: var(--space-sm); }
    .report-table :is(th, td):not(:last-child) { padding-right: var(--space-sm); }
    .report-table__company [data-field="legal_name"] { font-size: 0.75rem; }
    .report-table [data-field="period"] { white-space: normal; }

    .stat__value { font-size: 1.75rem; overflow-wrap: normal; }

    .card { box-decoration-break: clone; }

    .report-verdict,
    .report-score__factor,
    .report-attention__item,
    .report-numbers,
    .report-table tr,
    .report-identity__item,
    .report-debts__entity,
    .web-finding,
    .timeline__item,
    .carrier-card,
    .report-summary,
    .report-audit__body,
    .card__header,
    .report-web-findings__disclaimer { break-inside: avoid; }

    .card__header,
    .report-signals__title,
    .report-identity__title,
    .report-web-findings__group-title,
    .report-web-findings__disclaimer { break-after: avoid; }

    /* NOTE: Chrome may break a page right before the first item of a column flexbox, which leaves a block title alone with an empty strip. These blocks print in block flow, with margins in place of the gap. */
    .report-debts__body,
    .report-web-findings__body,
    .report-identity,
    .timeline { display: block; }
    .report-debts__body > * + * { margin-top: var(--space-md); }
    .report-web-findings__body > * + * { margin-top: var(--space-xl); }
    .report-identity > * + *,
    .timeline > * + * { margin-top: var(--space-lg); }
  }
}
