@media print {
  @page {
    size: A4 landscape;
    margin: 5mm;
  }

  html,
  body {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 8.5px !important;
    line-height: 1.15 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .sidebar,
  .no-print,
  .action-row,
  .button,
  button,
  form,
  .page-header p,
  .sidebar__footer,
  .flash,
  .customer-search-box,
  .customer-selected-box {
    display: none !important;
  }

  .layout-with-sidebar {
    margin-left: 0 !important;
    min-height: auto !important;
  }

  .content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .page-header {
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
  }

  .page-header h1 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    line-height: 1.1 !important;
    color: #000 !important;
  }

  /* 対象の日・月・期間を見出しの横に出す（.page-header p は上で紙から消しているため） */
  .page-header h1 .page-header__print-date {
    display: inline !important;
    margin-left: 1em !important;
  }

  .summary-grid {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 2px !important;
    margin: 0 0 4px 0 !important;
  }

  .summary-card {
    min-height: auto !important;
    margin: 0 !important;
    padding: 3px 4px !important;
    border: 1px solid #888 !important;
    border-radius: 0 !important;
    background: #fff !important;
  }

  .summary-card__label {
    margin: 0 0 1px 0 !important;
    font-size: 7px !important;
    line-height: 1.1 !important;
    color: #000 !important;
  }

  .summary-card__value {
    margin: 0 !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    color: #000 !important;
  }

  .panel {
    margin: 0 0 4px 0 !important;
    padding: 0 !important;
    border: 1px solid #888 !important;
    border-radius: 0 !important;
    background: #fff !important;
    overflow: visible !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .panel__header {
    margin: 0 !important;
    padding: 3px 4px !important;
    border-bottom: 1px solid #888 !important;
    background: #fff !important;
  }

  .panel__header h2,
  h2,
  h3 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    color: #000 !important;
  }

  .table-wrap,
  .table-wrap--timeline {
    width: 100% !important;
    overflow: visible !important;
  }

  table,
  .data-table,
  .data-table--timeline {
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    font-size: 7.5px !important;
    line-height: 1.12 !important;
    background: #fff !important;
  }

  th,
  td,
  .data-table th,
  .data-table td,
  .data-table--timeline th,
  .data-table--timeline td {
    padding: 2px 3px !important;
    border: 1px solid #777 !important;
    vertical-align: top !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    color: #000 !important;
    background: #fff !important;
  }

  .data-table th,
  .data-table thead th,
  .data-table--timeline th {
    font-weight: 700 !important;
    background: #f5f5f5 !important;
  }

  .timeline-time-col {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
  }

  .timeline-cell {
    min-width: 0 !important;
    width: auto !important;
  }

  .timeline-booking {
    margin: 0 0 2px 0 !important;
    padding: 0 !important;
    line-height: 1.12 !important;
  }

  .timeline-booking:last-child {
    margin-bottom: 0 !important;
  }

  .badge {
    display: inline !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #000 !important;
    font-size: 7px !important;
    line-height: 1.1 !important;
  }

  .text-muted {
    color: #000 !important;
  }

  a {
    color: #000 !important;
    text-decoration: none !important;
  }

  .empty-message {
    margin: 0 !important;
    padding: 4px !important;
    font-size: 8px !important;
    color: #000 !important;
  }

  .customer-note-grid,
  .daily-report-notes {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .customer-note-card {
    margin: 0 0 3px 0 !important;
    padding: 3px 4px !important;
    border: 1px solid #888 !important;
    border-radius: 0 !important;
    background: #fff !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .customer-note-card h3 {
    margin: 0 0 2px 0 !important;
    font-size: 8.5px !important;
    line-height: 1.1 !important;
    color: #000 !important;
  }

  .customer-note-card p {
    margin: 0 0 2px 0 !important;
    font-size: 7.5px !important;
    line-height: 1.15 !important;
    color: #000 !important;
  }

  .customer-note-card p:last-child {
    margin-bottom: 0 !important;
  }

  .table-actions {
    display: none !important;
  }

  .print-only {
    display: block !important;
    visibility: visible !important;
  }

  body.reservation-print-calendar .reservation-list-screen-content,
  body.reservation-print-calendar .reservation-list-screen--hide-on-print,
  body.reservation-print-timeline .reservation-list-screen-content,
  body.reservation-print-timeline .reservation-list-screen--hide-on-print,
  body.reservation-print-calendar .summary-grid,
  body.reservation-print-timeline .summary-grid {
    display: none !important;
  }

  body.reservation-print-calendar .print-only,
  body.reservation-print-timeline .print-only {
    display: block !important;
    page-break-before: auto !important;
  }

  body.reservation-print-calendar .page-header,
  body.reservation-print-timeline .page-header {
    margin-bottom: 4px !important;
  }

  /* 時間順の表（予約タイムスケジュール）は1枚に収まらない長さになるので、紙をまたいでよい（2026-11-06）。
     .panel の「途中で分けない」のままだと、表がまるごと2枚目へ送られ、1枚目が見出しだけになっていた。行の途中では切らない */
  body.reservation-print-timeline .print-only {
    page-break-inside: auto !important;
    break-inside: auto !important;
  }

  body.reservation-print-timeline .print-only tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* 予約一覧の1日：「画面の形」で印刷するときは、時間順の表（.print-only）を出さない（2026-11-06 本日の予約と統合） */
  body.reservation-print-screen .print-only {
    display: none !important;
  }

  .reservation-calendar {
    font-size: 6.5px !important;
  }

  .reservation-calendar__cell {
    min-height: 42px !important;
    padding: 2px !important;
  }

  .reservation-calendar__day {
    font-size: 8px !important;
    font-weight: 700 !important;
  }

  .reservation-calendar__summary {
    font-size: 6.5px !important;
    font-weight: 700 !important;
  }

  .reservation-calendar__booking {
    font-size: 6px !important;
    line-height: 1.15 !important;
  }

  .print-calendar-month-block {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    margin-bottom: 6px !important;
  }

  .print-calendar-month,
  .print-timeline-section {
    margin: 4px 0 2px 0 !important;
    font-size: 9px !important;
  }

  .print-range-label {
    margin: 0 0 4px 0 !important;
    padding: 0 4px !important;
    font-size: 7.5px !important;
    color: #000 !important;
  }

  .data-table--timeline-print th,
  .data-table--timeline-print td {
    font-size: 7px !important;
  }

  tr.is-cancelled td {
    color: #666 !important;
  }

  tr.reservation-row--cancelled,
  tr.reservation-row--cancelled + tr.customer-detail-row,
  tr.reservation-row--cancelled + tr.reservation-row--cancelled,
  .summary-card--cancelled-status,
  .reservation-calendar__booking.is-cancelled,
  .badge--cancelled,
  .badge--no_show {
    display: none !important;
    visibility: hidden !important;
  }

  tr.reservation-row--cancelled td,
  tr.reservation-row--cancelled th {
    border: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
  }
}

@media print and (orientation: portrait) {
  @page {
    size: A4 landscape;
    margin: 5mm;
  }
}
/* 2026-07 厨房・日報印刷の視認性調整 */
@media print {
    .kitchen-food-summary,
    .summary-grid,
    .panel {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .kitchen-food-summary__table,
    .data-table {
        font-size: 10.5pt;
    }

    .kitchen-food-summary__quantity strong {
        font-size: 16pt;
    }

    .reservation-step-nav,
    .reservation-step-actions,
    .no-print {
        display: none !important;
    }

    .reservation-step-section {
        display: block !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }
}
