/*!
 * セイキュー (Seikyu) — print.css
 * 印刷（A4請求書）専用スタイル。<link media="print"> でのみ読み込まれる。
 * 紙面自体の見た目（フォント・罫線・テーブル等）は styles.css 側の
 * .sheet-page 系クラスが screen/print 共通の土台を提供しており、
 * このファイルは「ページ設定」「UIチェスの非表示」「画面用スケールの解除」
 * のみを担当する（＝ 印刷対象は screen プレビューと同一DOM）。
 *
 * 実装方針: 「対象以外の兄弟要素を display:none にして、印刷対象を
 * 通常のドキュメントフロー内で自然にページ先頭へ流す」方式を採る
 * （visibility:hidden + position:absolute で全体を隠してから1要素だけ
 * 可視化する手法は、実際のページ分割を伴う印刷レンダリングパスでは
 * 意図通りに描画されないことがあるため採用しない）。
 */

@page {
  size: A4;
  margin: 15mm;
}

html,
body {
  background: #ffffff !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  height: auto !important;
}

/* ---------------------------------------------------------------------- */
/* 印刷対象(#invoice-sheet-root)以外の兄弟要素を非表示にする                */
/* ---------------------------------------------------------------------- */

.skip-link,
.app-header,
.form-pane,
.preview-toolbar,
.app-footer,
.toast,
.modal-overlay {
  display: none !important;
}

/* ---------------------------------------------------------------------- */
/* #invoice-sheet-root までの祖先チェーンを「装飾なしのブロック」に還元し、  */
/* 通常のフローでページ先頭から自然に出力されるようにする                   */
/* ---------------------------------------------------------------------- */

.app-shell,
.preview-pane,
.preview-pane-inner,
.preview-frame,
.invoice-sheet-root {
  display: block !important;
  position: static !important;
  overflow: visible !important;
  max-height: none !important;
  min-height: 0 !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  gap: 0 !important;
}

/* ---------------------------------------------------------------------- */
/* 画面プレビュー用の縮小表示（transform/box-shadow等）を解除し、           */
/* @page の余白をそのまま活かした等倍出力にする                            */
/* ---------------------------------------------------------------------- */

.sheet-page-frame {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  box-shadow: none !important;
  margin: 0 !important;
  background: transparent !important;
}

.sheet-page-frame + .sheet-page-frame {
  page-break-before: always;
  break-before: page;
}

.sheet-page {
  width: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  position: relative !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  color-adjust: exact !important;
}

.sheet-copy-badge {
  top: 0;
  left: 0;
}

/* ---------------------------------------------------------------------- */
/* 改ページ制御：表・主要ブロックが途中で分断されないようにする             */
/* ---------------------------------------------------------------------- */

.sheet-parties,
.sheet-total-banner,
.sheet-summary,
.sheet-bottom {
  page-break-inside: avoid;
  break-inside: avoid;
}

table.sheet-items {
  page-break-inside: auto;
}

table.sheet-items thead {
  display: table-header-group;
}

table.sheet-items tbody tr {
  page-break-inside: avoid;
  break-inside: avoid;
}
