/* web/css/print.css - Precision A4 Print Stylesheet */
@media print {
  @page {
    size: A4 portrait;
    margin: 12mm 15mm;
  }

  html, body {
    background: #ffffff !important;
    color: #000000 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    font-size: 11pt;
  }

  /* 非印刷要素の絶対非表示（ヘッダー、フッター、入力フォーム、サイドバー、操作バー、モーダル、下部ナビ） */
  header,
  footer,
  nav,
  .bottom-nav,
  #bottomNav,
  .sidebar,
  #editorSidebar,
  .sidebar-top-bar,
  #sidebarTopBar,
  .preview-zoom-bar,
  #previewZoomBar,
  #archiveZoomBar,
  .mobile-editor-switcher,
  #mobileEditorSwitcher,
  .nav-tabs,
  .btn,
  button,
  .modal-overlay,
  .badge-wasm,
  #viewDashboard,
  .dashboard-container,
  #outdatedWarningBanner,
  #dateMismatchAlert,
  #shieldAlertBanner,
  #termsModalOverlay,
  #rcpModalOverlay,
  #issuerModalOverlay,
  #historyTimestampModalOverlay,
  #settingsModalOverlay,
  #versionModalOverlay,
  #manualModalOverlay,
  #limitModalOverlay {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  /* 入力フォーム（form, input, select, textarea, label, .form-group 等）の完全印刷排除 */
  form,
  .form-group,
  .form-row,
  .form-row-3,
  .item-row,
  input,
  select,
  textarea,
  label {
    display: none !important;
  }

  /* デフォルトでコンテナ・プレビュー用紙は非表示 */
  #viewEditor,
  #viewArchive,
  .preview-stage,
  .sheet-a4,
  #invoiceSheet,
  #archiveSheet {
    display: none !important;
  }

  /* 編集画面（in-editor-mode）印刷時のスタイル */
  body.in-editor-mode #viewEditor {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body.in-editor-mode .preview-stage,
  body.in-editor-mode .preview-viewport {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body.in-editor-mode .sheet-a4,
  body.in-editor-mode #invoiceSheet {
    display: block !important;
    box-shadow: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-height: auto !important;
    transform: none !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  /* 原本閲覧画面（in-archive-mode）印刷時のスタイル */
  body.in-archive-mode #viewArchive {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body.in-archive-mode .archive-stage,
  body.in-archive-mode .archive-viewport {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body.in-archive-mode .sheet-a4,
  body.in-archive-mode #archiveSheet {
    display: block !important;
    box-shadow: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-height: auto !important;
    transform: none !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  /* テーブルの印字調整 */
  .invoice-table th {
    background-color: #f1f5f9 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .grand-total-box {
    background-color: #f8fafc !important;
    border: 2px solid #000000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .tax-summary-table th {
    background-color: #f8fafc !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
