/* What the application's own pages drop on paper.
 *
 * `report.css` carries the printed *document*'s rules (its page box, its
 * type, the requirement it refuses to split) and only pages that link it get
 * them. This file is the other half: every signed-in page under `base.html`
 * is a screen that a reader sometimes prints, and the shell around its
 * content is furniture. A hamburger, a sidebar, a language picker and a
 * "Download CSV" button are things to press; on paper they are ink.
 *
 * The rule is narrow on purpose: chrome and page-level actions go, and
 * nothing that carries information does. A form the reader filled in is
 * content, so only the controls that act on it are hidden, never the fields
 * or their values.
 */

@media print {
  /* Named navigation, never the bare `nav` element. `nav` also carries the
     tab strips (`.tabs`: which assessment phase, which bill of materials)
     and a policy preview's contents list, and on a printed sheet those are
     the only thing saying which slice of the workspace the table below
     belongs to. The sidebar's own `.nav` and the breadcrumb need no entry of
     their own: they sit inside `.side` and `.topbar`. */
  .skip-link,
  .site-header,
  .topbar,
  .side,
  .app-footer,
  .page-header__action,
  .filter-bar,
  .pager,
  .table__menu,
  .report-links,
  .audit-pack-form,
  .export-form,
  nav:has(.rail__anchors) {
    display: none !important;
  }

  /* The shell is two columns held by a grid on the body itself
     (`shell.css`, `body.page-app`), and the first track is the sidebar's.
     Hiding the sidebar is not enough: the content would slide into that
     track and print at its width. The grid goes, and the content takes the
     sheet. */
  body,
  body.page-app {
    display: block;
    background: #fff;
  }
  .shell__main {
    display: block;
  }
}
