@media print {
  /* General reset and page layout */
  html, body {
    margin: 0;
    padding: 2rem;
    width: 100%;
    font-size: 11pt;
  }

  /* Hide all non-printable UI components */
  nav,
  footer,
  .navbar,
  .button,
  .print-hidden,
  .column.is-one-fifth,
  #context-help {
    display: none !important;
  }

  .info-zone {
    border: 1px solid grey !important;
  }

  /* Show and format print-only elements */
  .print-only {
    display: block !important;
    visibility: visible;
    max-width: 600px;
    margin: 0 auto 2rem auto;
    text-align: center;
  }

  .print-only h1 {
    font-size: 24pt;
    font-weight: bold;
    margin-bottom: 1rem;
  }

  .print-only .content {
    font-size: 12pt;
    margin-bottom: 2rem;
    text-align: left;
  }

  .screen-only {
    display: none !important;
  }

  /* Allow section content to fill width now that columns are hidden */
  .section {
    padding: 2rem;
    margin: 0 auto;
    width: 100%;
  }

  /* Recovery codes box layout */
  .recovery-codes {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
    page-break-inside: avoid;
  }

  .recovery-codes .columns {
    display: flex !important;
    justify-content: center !important;
    gap: 2rem;
    margin: 0 auto;
  }

  .recovery-codes .column {
    display: inline-block !important;
    text-align: left;
    width: auto !important;
  }

  /* Hide used codes */
  .recovery-codes .used {
    display: none !important;
  }

  /* Ensure content inside is visible */
  .recovery-codes,
  .recovery-codes * {
    visibility: visible;
  }
}
