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

  html,
  body {
    margin: 0 !important;
    padding: 0 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body {
    background: #fff !important;
    color: #111827 !important;
  }

  /* 신규 base 기준 화면 레이아웃 리셋 */
  .min-h-screen.bg-white.min-\[1920px\]\:pl-60.flex.flex-col,
  main.min-w-0.flex-1,
  main.min-w-0.flex-1 > div,
  .schedule-page,
  #schedule-grid-area {
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    max-width: none !important;
    width: auto !important;
  }

  main.min-w-0.flex-1 {
    padding-top: 0 !important;
  }

  /* 핵심: schedule_grid.css의 화면 기본값을 인쇄에서 덮어씀 */
  .schedule-page {
    --wtm-dept-w: 52px;
    --wtm-name-w: 54px;
    --wtm-day-w: 27px;
    --wtm-week-gap-w: 4px;
    --wtm-sign-w: 120px;
  }

  /* 인쇄 불필요 UI 숨김 - 신규 base / 신규 work_schedule 기준 */
  nav,
  header,
  footer,
  .app-footer,
  .schedule-page-header,
  #page-errors,
  #toast-root,
  .toast-container,
  [role="dialog"],
  .htmx-indicator,
  #global-htmx-indicator,
  [data-action="print"] {
    display: none !important;
  }

  /* 신규 base의 고정 page header wrapper */
  body > .min-h-screen.bg-white.min-\[1920px\]\:pl-60.flex.flex-col > .fixed {
    display: none !important;
  }

  /* 출력 헤더 */
  .print-header {
    display: block !important;
    margin: 0 0 4mm 0 !important;
    padding: 0 !important;
  }

  .print-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    color: #111827 !important;
  }

  .print-sub {
    margin-top: 1mm !important;
    font-size: 12px !important;
    color: #4b5563 !important;
    line-height: 1.2 !important;
  }

  /* 그리드 본체 - 단순/평면/가독성 위주 */
  .schedule-grid {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    background: #fff !important;
    font-size: 10px !important;
  }

  .schedule-grid,
  .schedule-grid-body {
    background: #fff !important;
  }

  /* sticky 완전 해제 */
  .schedule-grid-header,
  .schedule-grid-cell.left1,
  .schedule-grid-cell.left2,
  .schedule-grid-row-head .schedule-grid-cell.left1,
  .schedule-grid-row-head .schedule-grid-cell.left2,
  .schedule-grid-row-head .schedule-grid-cell.head.left1,
  .schedule-grid-row-head .schedule-grid-cell.head.left2 {
    position: static !important;
    top: auto !important;
    left: auto !important;
    z-index: auto !important;
    box-shadow: none !important;
  }

  /* 화면 인터랙션 제거 */
  .schedule-grid-row-data:hover .schedule-grid-cell,
  .schedule-grid-row-data:hover .schedule-grid-cell.left1,
  .schedule-grid-row-data:hover .schedule-grid-cell.left2,
  .schedule-grid .schedule-grid-cell.day.is-hover,
  .schedule-grid .schedule-grid-cell.head.day.is-hover,
  .schedule-grid-cell.day.is-today {
    background: transparent !important;
  }

  .roundtext {
    background: transparent !important;
    border-radius: 0 !important;
    font-weight: 600 !important;
  }

  /* 셀 기본 */
  .schedule-grid-cell {
    padding: 2px 1px !important;
    text-align: center !important;
    vertical-align: middle !important;
    border: 0 !important;
  }

  .schedule-grid-row-head .schedule-grid-cell {
    background: #fff !important;
    color: #111827 !important;
    font-weight: 600 !important;
  }

  .schedule-grid .schedule-grid-cell.week-gap {
    background: #fff !important;
  }

  /* 좌측 텍스트 컬럼 */
  .schedule-grid-cell.left1,
  .schedule-grid-cell.left2 {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    background: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* sign column: 구조 반영 */
  .schedule-grid-cell.signcol {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .schedule-grid-row {
    grid-template-columns: var(--wtm-sign-w) var(--wtm-print-cols) !important;
    align-items: stretch !important;
  }

  /* 서명칸 - 레거시처럼 분명하게 */
  .signature-box {
    width: calc(100% - 12px) !important;
    height: 24px !important;
    border: 1px solid #111 !important;
    background: #fff !important;
    box-sizing: border-box !important;
  }

  /* 모듈 박스 - 너무 작지 않게 복원 */
  .tw-module-simple,
  .tw-module-disabled,
  .module_box,
  .module_box-disabled {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
    font-size: 7px !important;
    line-height: 1.05 !important;
    border: 0.5px solid #777 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }

  /* 혹시 module_simple 내부 span/font가 있더라도 너무 커지지 않게 */
  .tw-module-simple *,
  .tw-module-disabled *,
  .module_box *,
  .module_box-disabled * {
    line-height: 1.05 !important;
  }

  /* 부서 구분선 / 간격 */
  .schedule-grid-divider-row .schedule-grid-divider {
    grid-column: 1 / -1 !important;
    height: 6px !important;
    border: 0 !important;
    background:
      linear-gradient(
        to bottom,
        transparent 0,
        transparent 2px,
        #d6dde6 2px,
        #d6dde6 3px,
        transparent 3px,
        transparent 100%
      ) !important;
    margin: 0 !important;
  }

  .schedule-grid-spacer-row .schedule-grid-spacer {
    height: 4px !important;
  }

  /* 페이지 분할 안정화 */
  .schedule-grid-row-data,
  .schedule-grid-divider-row,
  .schedule-grid-spacer-row {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* 다음달은 제거 */
  .schedule-grid-cell.is-next-month {
    display: none !important;
  }
}
