@media print {
  /* Hide navigation and interactive elements */
  .sidebar,
  .sidebar-overlay,
  .top-bar,
  .bottom-nav,
  .admin-btn-primary,
  .admin-btn-secondary,
  .filter-bar,
  .admin-filter-bar,
  .hamburger-btn,
  .toast-container,
  .modal,
  [data-bs-toggle],
  .kpi-action,
  .dash-filter-wrap,
  .week-nav-btns,
  .sidebar-favorites,
  .task-add-row,
  .task-delete-btn,
  /* R6：月曆翻月箭頭與「今天」鈕。它們是 <a> 不是 .admin-btn-*，原本沒被上面的
     隱藏清單涵蓋，課表印出來會多一排導覽箭頭。注意只匹配容器 .cal-nav，
     單獨使用的 .cal-nav-btn（訂餐頁／菜單頁的「今天」「本月」）不受影響。
     容器內含月份標題，改用 .cal-nav 的頁面請自備列印抬頭（見 .print-only）。 */
  .cal-nav,
  .add-btn-overlay,
  .schedule-add-btn,
  .session-panel,
  .offcanvas,
  .no-print {
    display: none !important;
  }

  /* Schedule calendar cells: prevent text cutoff in print */
  .schedule-cell,
  .calendar-cell,
  .sched-cell {
    overflow: visible !important;
    white-space: normal !important;
    word-break: break-word;
    break-inside: avoid;
  }
  .sub-item,
  .session-time-pill,
  .session-grade-tag {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  /* Reset layout */
  .main-content {
    margin-left: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }

  body {
    background: white !important;
    color: black !important;
    font-size: 12pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Table improvements */
  .admin-table {
    border-collapse: collapse;
    width: 100%;
    font-size: 10pt;
  }

  .admin-table th,
  .admin-table td {
    border: 1px solid #ccc !important;
    padding: 4pt 8pt;
  }

  .admin-table thead {
    background: #f0f0f0 !important;
  }

  /* Cards */
  .dash-card,
  .dash-card-v2,
  .admin-table-card {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
    break-inside: avoid;
  }

  /* KPI cards inline */
  .kpi-strip {
    display: flex !important;
    gap: 8pt;
    flex-wrap: wrap;
  }

  .kpi-card-v2 {
    flex: 1;
    min-width: 120pt;
    border: 1px solid #ccc !important;
    box-shadow: none !important;
  }

  /* Page title */
  .admin-page-header {
    border-bottom: 2pt solid #000;
    margin-bottom: 12pt;
    padding-bottom: 8pt;
  }

  /* Remove decorative backgrounds for ink saving */
  .status-badge,
  .pill,
  .session-time-pill,
  .session-grade-tag {
    border: 1px solid #999 !important;
    background: transparent !important;
  }

  /* Page breaks */
  .dash-grid {
    break-inside: avoid;
  }

  h1, h2, h3 {
    break-after: avoid;
  }

  /* Collapse expanded sections */
  .collapse:not(.show) {
    display: none !important;
  }

  .collapse.show {
    display: block !important;
  }
}
