/* A4 印刷スタイル
 *
 * 縦向き: 用紙下部が運転席（前方）、上部が最後尾
 * 横向き: 用紙左側が運転席（前方）、右側が最後尾
 *
 * 用紙の向きは名前付きページ（@page 名 + page プロパティ）で切り替える。
 * CSP でインラインスタイルを使えないため、@page を JS で書き換える方法は採らない。
 * 名前付きページに未対応のブラウザでは、印刷ダイアログ側で向きを合わせてください。
 */

@page portraitSheet {
  size: A4 portrait;
  margin: 10mm;
}

@page landscapeSheet {
  size: A4 landscape;
  margin: 10mm;
}

@page {
  size: A4 portrait;
  margin: 10mm;
}

body[data-print="portrait"] .print-sheet { page: portraitSheet; }
body[data-print="landscape"] .print-sheet { page: landscapeSheet; }

/* 印刷対象は座席表シートのみ */
.no-print,
.appbar,
.privacy,
.tabs,
.toolbar,
.stats,
.alert,
.seatmap-wrap,
.table-scroll,
.actions,
.summary,
.cards,
.grid-form {
  display: none !important;
}

html, body {
  background: #fff;
  margin: 0;
  padding: 0;
  font-size: 10pt;
}

.panel {
  border: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

/* 座席表以外のパネルは印刷しない。 */
.panel { display: none !important; }

/* どのタブを開いていても座席表は印刷できるようにする（ID 指定で .hidden を上書き）。 */
#panel-seatmap,
#panel-seatmap.hidden { display: block !important; }

.print-sheet {
  display: block !important;
  border: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  break-inside: avoid;
}

.print-header { border-bottom: 1.5pt solid #000; }
.print-title { font-size: 13pt; }
.print-info { font-size: 9pt; }

/* 申込順位バッジと凡例は印刷では表示しない。 */
.seat__order,
.print-legend {
  display: none !important;
}

/* 座席表は1ページに収める */
.seatmap {
  break-inside: avoid;
  width: 100%;
}

.seatmap__grid {
  background: #fff;
  border: 1.5pt solid #000;
  gap: 2pt;
  padding: 3pt;
}

/* 「後方」ラベルは「前方」帯内の文字（.seatmap__label-text、印刷では10pt相当）と
 * 同じ大きさに揃える。 */
.seatmap__label { color: #000; font-size: 10pt; font-weight: 800; }

/* カラー印刷できない環境でも判別できるよう、枠線は太め・実線／破線の
 * 使い分けを維持する（背景色に頼り切らない）。 */
.seat {
  min-height: 0;
  border: .8pt solid #333;
  font-size: 7.5pt;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.seat__no { font-size: 6pt; }
.seat__kana { font-size: 7.5pt; }

/* ご年配の乗客にも読みやすいよう、氏名はできる限り大きく表示する。 */
.seat__body { font-size: 12pt; font-weight: 900; }

/* 通路の列番号（座席番号の代わり）は印刷でも極力大きく、遠目にも読めるようにする。 */
.seat__no--aisle { font-size: 13pt; }

.seatmap__rownum {
  min-height: 0;
  font-size: 13pt;
  border: .8pt dashed #333;
}

.seatmap__marker {
  font-size: 11pt;
  padding: 3pt 8pt;
  border: 1pt solid #000;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.seatmap__marker-icon { width: 1.4em; height: 1.4em; }

/* 縦向きは行数が多いので1席あたりを詰める。
 * 横向きは見出し（.print-header）の高さも同じページに収める必要があるため、
 * 用紙の余白を除いた高さ(約190mm)よりやや小さめに抑える。 */
body[data-print="portrait"] .print-map .seatmap__grid { min-height: 240mm; }
body[data-print="landscape"] .print-map .seatmap__grid { min-height: 150mm; max-height: 165mm; }

/* 横向き印刷は座席セルが縦長・横幅が狭くなるため、氏名は縦書きにする
 * （横書きのまま折り返すと行の高さが想定より伸び、用紙からはみ出て
 * 縦方向が切れる原因になっていた）。 */
body[data-print="landscape"] .seat__body,
body[data-print="landscape"] .seat__kana {
  writing-mode: vertical-rl;
  margin-top: 0;
}
body[data-print="landscape"] .seat__body {
  align-items: center;
  justify-content: center;
  height: 100%;
}
