@media print {
  /* ページ設定（最初に記述） */
  @page {
    size: A4 landscape;
    margin: 10mm;
  }

  /* すべての要素を非表示 */
  body * {
    visibility: hidden;
    position: static !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* シフトカレンダーコンテナとその子要素のみ表示 */
  #shift-calendar-print,
  #shift-calendar-print * {
    visibility: visible !important;
    position: static !important;
    height: auto !important;
  }
  
  /* シフトカレンダーを全画面に配置 */
  #shift-calendar-print {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 15px !important;
  }
  
  /* body, html の高さを制限 */
  html, body {
    height: auto !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* ルート要素の高さを制限 */
  #root {
    height: auto !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* Ant Design Layout の高さを制限 */
  .ant-layout {
    height: auto !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  /* 色彩保持 */
  body {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  
  /* カレンダーグリッドの最適化 */
  #shift-calendar-print .grid {
    gap: 1px !important;
  }
  
  /* 日付セルの最適化 */
  #shift-calendar-print .min-h-\[100px\] {
    min-height: 80px !important;
    padding: 4px !important;
    font-size: 8pt !important;
  }
  
  /* スタッフ名のフォントサイズ */
  #shift-calendar-print .font-medium {
    font-size: 8pt !important;
    line-height: 1.2 !important;
  }
  
  /* 時間表示のフォントサイズ */
  #shift-calendar-print .shift-time {
    font-size: 7pt !important;
    line-height: 1.2 !important;
  }
  
  /* シフトアイテムの間隔調整 */
  #shift-calendar-print .space-y-1 > * + * {
    margin-top: 2px !important;
  }
  
  /* 時給ルールアイコンを非表示（印刷では不要） */
  #shift-calendar-print .h-3.w-3 {
    display: none !important;
  }
  
  /* 不要な要素を完全削除 */
  button,
  .ant-modal,
  .ant-layout-sider,
  .ant-layout-header,
  nav,
  header,
  .no-print {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}
