/* 日程表の印刷（ブラウザの「印刷」→ PDF で保存）。
   media="print" で読み込むため、画面表示には一切影響しない。

   方針: 1日=1ページ。日ごとの板（.day-board）を刷り範囲に収まる倍率で縮小し、
   ページ送りする。倍率の計算は eps-schedule.js（beforeprint）が実寸を測って行い、
   ここは「何を出す／出さない」と、縮小の土台になる指定だけを持つ。
   @page の用紙指定は設定（EPS_Display::OPT_PRINT_PAPER）から PHP が別途出力する。 */

@media print {

	/* テーマの外枠（ヘッダ・サイドバー・フッタ）を版面から外す。
	   テーマの構造は分からないので、いったん全部隠してから日程表だけ見せる。
	   display ではなく visibility で消すのは、途中の祖先を display:none にすると
	   中の日程表まで消えてしまうため（visibility は子で打ち消せる）。 */
	body * { visibility: hidden !important; }
	.eps-schedule, .eps-schedule * { visibility: visible !important; }

	/* テーマの左右余白・最大幅から抜けて、刷り範囲の左上を原点にする。 */
	.eps-schedule.eps-root {
		position: absolute !important;
		left: 0 !important;
		top: 0 !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		background: #fff !important;
	}
	.eps-schedule .wrap {
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* 画面でしか意味のないもの（操作系・案内文）は刷らない。
	   凡例も出さない: 枠の中に区分名がそのまま書かれているので色の対応表は要らず、
	   1日1ページの縦を目一杯セッションに使えるほうが読みやすい。 */
	.eps-schedule .hint,
	.eps-schedule .day-tabs,
	.eps-schedule .venue-filter,
	.eps-schedule .legend,
	.eps-schedule .eps-print-btn,
	.eps-abs-bar { display: none !important; }

	/* タブで隠れている日も全部出す（1日1ページ）。 */
	.eps-schedule .day-board { display: block !important; }

	/* 縮小の土台。実際の倍率と幅は beforeprint でスクリプトが入れる。 */
	.eps-schedule .day-board {
		transform-origin: top left;
		margin: 0 !important;
	}

	/* スクリプトが印刷時だけ板を包む箱。刷り範囲ちょうどの大きさで、日ごとにページを送る。
	   transform はレイアウト箱を変えないため、包まずに縮小すると「はみ出した分」で
	   1日が2ページに割れる（実測）。ここで切り落とす＝見た目は倍率で収まっている。 */
	.eps-schedule .eps-print-fit {
		position: relative; /* 注記を最後のページの下端へ置くための基準。 */
		overflow: hidden;
		break-after: page;
		page-break-after: always;
		break-inside: avoid;
		page-break-inside: avoid;
	}

	/* 注記は最後のページの下端へスクリプトが移す。余白が付いたままだと
	   その分だけ板の高さを取り違えるので落とす。 */
	.eps-schedule .note { margin: 0 !important; }

	/* 動きは刷れないので止める。影も紙では滲むだけなので落とす。 */
	.eps-schedule *,
	.eps-schedule *::before,
	.eps-schedule *::after {
		transition: none !important;
		animation: none !important;
	}
	.eps-schedule .board,
	.eps-schedule .sess-blk,
	.eps-schedule .legend { box-shadow: none !important; }

	/* 会場名は画面では sticky。紙では位置が動くと列とずれるので固定を外す。
	   クリックできることを示す ⤢ も紙では意味が無い。 */
	.eps-schedule .venue-col-head { position: static !important; }
	.eps-schedule .venue-col-head::after { content: none !important; }

	/* 区分の色はこの日程表の情報そのもの（どの枠が何か）なので、
	   ブラウザの「背景を印刷しない」既定に負けないよう明示する。 */
	.eps-schedule .board,
	.eps-schedule .sess-blk,
	.eps-schedule .venue-col-head,
	.eps-schedule .hour-col {
		-webkit-print-color-adjust: exact !important;
		print-color-adjust: exact !important;
	}

	/* 展開した演題詳細は「プログラム」の中身。日程表の紙面には載せない
	   （載せると1日1ページに収まらない）。 */
	.eps-schedule .blk-detail { display: none !important; }

	/* 枠を開いたまま印刷しても、紙は開く前と同じ形にする。
	   開いた枠は JS が幅・位置をインラインで書き換え（列幅に閉じ込めず盤面いっぱいに広げる）、
	   収まらなければ列の min-height も伸ばす。そのまま刷ると1枠だけ会場をまたいで広がり、
	   伸ばした列のぶん盤面が高くなって全体が余計に縮む。どの枠をクリックしていたかで
	   紙が変わってしまうので、印刷では開く前の幾何へ戻す。
	   インラインの指定に勝つ必要があるため !important を付ける。 */
	.eps-schedule .sess-blk.expanded {
		position: absolute !important;
		left: 5px !important;
		right: 5px !important;
		width: auto !important;
		height: var(--blk-h, auto) !important;
		min-height: 0 !important;
		z-index: auto !important;
	}
	.eps-schedule .venue-col-body { min-height: 0 !important; }

	/* 枠の右肩の「›」は「押すと開く」の目印。紙では押せないので出さない。 */
	.eps-schedule .sess-blk.expandable .blk-main::after { content: none !important; }

	/* 時刻の目盛り列は画面では 46px 固定。印刷では字を大きくする（縮小のぶんを先に足す）ため、
	   固定幅のままだと「10時」が2行に折り返す。字に連動する em で持たせて折り返さないようにする。
	   3.4em は既定の 14px なら 47.6px で、画面の 46px とほぼ同じ＝縮小しない日は見た目が変わらない。 */
	.eps-schedule .hour-col { width: 3.4em !important; }
	.eps-schedule .hour-mark { width: 3.4em !important; white-space: nowrap !important; }
	.eps-schedule .hour-line { left: 3.4em !important; }

	/* 先頭の時刻（会期の開始時）は、目盛りを線に合わせる translateY(-7px) のぶんだけ
	   盤面の上辺からはみ出し、overflow:hidden で半分に切れる（画面でも実測 6px 切れている）。
	   紙は読み返せないので、先頭だけずらさずに全部見せる。 */
	.eps-schedule .hour-col .hour-mark:first-child { transform: none !important; }

	/* 会場・区分の絞り込みは画面のまま刷る（見えているものが出る）。
	   会場名クリックでの拡大も、絞り込みのプルダウンも同じ .focus/.focused を付けるので
	   両者は区別できない。「1会場だけ紙に出したい」を絞り込みで実現できるほうを採る。 */

	/* 展開詳細の抄録は紙に出さないが、地色の指定だけは揃えておく（プログラムと同じ扱い）。 */
	.eps-schedule .pres-abstract-body {
		background: none !important;
	}

	/* ── 白黒で刷る（設定 → 表示 →「印刷の色」＝白黒。既定） ──────────────
	   区分ごとの色は失われるが、枠の中に区分名が文字で入っているので読み取れる。
	   grayscale フィルタは使わない（紙面が画像に落ちて文字が選べなくなるため。実測）。 */
	.eps-schedule.eps-print-mono,
	.eps-schedule.eps-print-mono * {
		color: #000 !important;
		background-color: #fff !important;
		background-image: none !important;
		border-color: #000 !important;
	}
	/* 色の面で見分けていた枠・見出しは、白黒では細い罫で見分ける。 */
	.eps-schedule.eps-print-mono .sess-blk {
		border: 1px solid #000 !important;
	}
	.eps-schedule.eps-print-mono .venue-col-head {
		border-bottom: 1px solid #000 !important;
	}


	/* 一覧・日程表のようにページ数が決まらないものは、`fixed` で**ページごとに繰り返す**
	   （Chromium で実測: 6ページ中6ページに出た）。抄録の面付けは面ごとに入れてあるので対象外。 */
	.eps-print-note-fixed{
		position:fixed !important; left:0; right:0; bottom:0;
		background:#fff; z-index:2;
	}
	.eps-print-mark-fixed{ position:fixed !important; }
	/* 透かしと脚注は「刷った紙に残すもの」なので、背景を出さない設定でも消えないようにする。 */
	.eps-print-note, .eps-print-mark span{
		-webkit-print-color-adjust:exact !important;
		print-color-adjust:exact !important;
	}
	/* 白黒の打ち消し（色を全部 #000／地を #fff にする指定）から透かしを外す。
	   巻き込むと、重ねものが**不透明な白**になって紙面を覆い、字も真っ黒になる（実測）。 */
	.eps-schedule.eps-print-mono .eps-print-mark,
	.eps-schedule.eps-print-mono .eps-print-mark span{
		background:none !important;
	}
	.eps-schedule.eps-print-mono .eps-print-mark span{
		color:rgba(0,0,0,.08) !important;
	}
	/* 別ページの抄録集へ飛ばす釦は、紙の上では押せない＝ただの黒い箱になる（0.1.95）。
	   まとめて開くほうの釦も同じ理由で出さない。 */
	.eps-schedule .pres-abs-link-row, .eps-schedule .sess-abs-link-row,
	.eps-schedule .blk-abs-open{ display:none !important; }

}
