@media print {

  .no-print,
  .header {
    display: none !important;
  }

  /* Force background colors to print - applies to all elements */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  /* Ensure color tabs/flags print correctly */
  .ed-itemTab,
  .ed-itemTab--fairEvent,
  .ed-detail__fairEvents,
  .ed-detail__fairEvent,
  .fp-category_box,
  .flag_theme__color {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    color-adjust: exact !important;
  }

  .ed-item {
    border-right-width: 2px !important;
    border-top-width: 2px !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Ensure date/time layout - hours on one line, date on another */
  .fp-date_item {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start;
  }

  .fp-date_time,
  .fp-text__title {
    white-space: nowrap !important;
  }

  .fp-date_item .ed-text__small {
    white-space: nowrap !important;
  }

  /* Adjust grid for better print layout */
  .ed-grid__item--1.fp-grid__item,
  .ed-grid__item--1.fp-grid__item__mobile {
    min-width: 120px;
    flex-shrink: 0;
  }

  /* Keep date headers together with their first program item */
  .ed-characterGroup h2 {
    page-break-after: avoid;
    break-after: avoid;
  }

  /* First item after date header must stay with it */
  .ed-characterGroup__item .ed-item:first-child {
    page-break-before: avoid;
    break-before: avoid;
  }
}