/* ============================================================
   report.css — レポート画面・プレビュー・印刷
   レポート：画面 / プレビュー / 印刷 の責務分離
   ------------------------------------------------------------
   1) SCREEN   … アプリ内の日別一覧（#rp-screen-list）
   2) PREVIEW  … 画面上の印刷プレビュー（#rp-print-pages @media screen）
   3) PRINT    … 実印刷（#rp-print-pages @media print）
   4) SHARED   … プレビューと印刷が共有する紙面構造（.rp-page など）
   PDF は js/pdf.js が canvas で独自描画（この CSS は使わない）
   ============================================================ */

/* ---------- 0. 共通トグル・表示切替 ---------- */
#reportPages{display:block}
#rp-print-pages{display:none} /* 通常は画面一覧のみ。プレビュー／印刷で表示 */

/* 印刷では絶対に出さない UI（タブ・操作部品など） */
.no-print{/* マーカー。実印刷ルールは @media print で一括非表示 */}

/* 印刷プレビュー切替ボタン：画面右上固定（印刷対象外） */
.rp-floating-toggle{
 position:fixed;top:calc(env(safe-area-inset-top, 0px) + 8px);right:12px;z-index:1000;
 display:none;border:1px solid var(--border);border-radius:10px;
 background:var(--card-bg);color:var(--text);font:inherit;font-size:.82rem;font-weight:700;
 padding:9px 12px;min-height:40px;white-space:nowrap;cursor:pointer;
 box-shadow:0 2px 8px rgba(0,0,0,.28);max-width:calc(100vw - 24px)
}
.rp-floating-toggle.is-visible{display:block}
/* 「カラー表示」ボタン：印刷プレビューのボタンの下（白黒・ダークのとき、先生に見せるため一時的にソフトにする。js/theme.js の rpSoftToggle） */
.rp-soft-toggle{top:calc(env(safe-area-inset-top, 0px) + 56px)}

/* プレビューモード：一覧を隠し、印刷用ページを画面に出す */
#reportTab.rp-preview-mode #rp-screen-list{display:none}
#reportTab.rp-preview-mode #rp-print-pages{display:block}

/* ============================================================
   1) SCREEN — アプリ内 日別一覧（v148：日・曜の2列、青グレーの罫線、朝・夜は黄・青の見出し、土日は日・曜のマスに色）
   ============================================================ */
.rp-top{margin-bottom:12px}
.rp-screen-page{width:100%;max-width:800px;margin:0 auto;box-sizing:border-box}
.rp-screen-table{font-size:.9rem}
.rp-screen-table th,.rp-screen-table td{height:36px;padding:3px 1px;line-height:1.1;box-sizing:border-box}
.rp-screen-table td{font-variant-numeric:tabular-nums}
.rp-screen-table .rp-day,.rp-screen-table .rp-weekday{font-weight:700}
/* 数字は3桁ぶんの枠に右そろえ（2桁も3桁も一の位がそろう。白黒も同じ枠。v212で mono.css の別の枠幅の上書きをやめた）。印刷・PDFには効かせない。枠幅は v221 で 3.3ch→3.1ch に詰めた（余りが左に寄って数字の塊がマスの中心から右へずれていたため。太字の3桁が窮屈にならない余裕 0.1ch だけ残す） */
#rp-screen-list .bv{display:inline-flex;justify-content:flex-end;width:3.1ch}
/* v222：脈拍と「–」（.dsh）は枠の中でも中央に置く（拡大側は ZOOM の節に同じ指定あり） */
#rp-screen-list .bv.dsh{justify-content:center}
.rp-screen-table thead tr:first-child th{position:sticky;top:env(safe-area-inset-top,0px);z-index:3}
.rp-screen-table thead tr:nth-child(2) th{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--rp-h1,26px));z-index:2}
/* 罫線：マスの右と下に青グレーの線（固定した見出しにも線がついてくるよう、境界は分けて描く）。外わくは少し太く。
   下の SHARED .rp-table に負けないよう #reportTab を付ける */
#reportTab .rp-screen-table{border-collapse:separate;border-spacing:0;border-top:3px solid var(--rp-grid);border-left:3px solid var(--rp-grid)}
#reportTab .rp-screen-table th,#reportTab .rp-screen-table td{border:0;border-right:2px solid var(--rp-grid);border-bottom:2px solid var(--rp-grid);background:var(--card-bg)}
#reportTab .rp-screen-table th:last-child,#reportTab .rp-screen-table td:last-child{border-right-width:3px}
#reportTab .rp-screen-table tbody tr:last-child td{border-bottom-width:3px}
/* 見出し：朝は黄、夜は青（2段とも）。日・曜は地の色 */
#reportTab .rp-screen-table thead th{font-size:.9rem;font-weight:700;color:var(--sheet-text)}
#reportTab .rp-screen-table thead th.am{background:var(--rp-am-head)}
#reportTab .rp-screen-table thead th.pm{background:var(--rp-pm-head)}
/* 高め（赤）・低め（青）の数字は、グラフの線と同じように浮かせる（v149）。印刷・PDF・印刷プレビューには効かせない */
#reportTab .rp-screen-table td.bp-high,#reportTab .rp-screen-table td.bp-low{text-shadow:var(--num-shadow)}
/* 土日は日と曜のマスだけ色をつける */
#reportTab .rp-screen-table td.rp-sat{background:var(--rp-sat-bg);color:var(--sat)}
#reportTab .rp-screen-table td.rp-sun{background:var(--rp-sun-bg);color:var(--sun)}
/* v180：数字のマスも、朝（3〜5列目）は薄い黄、夜（6〜8列目）は薄い青（記録入力の朝・夜の色に合わせる。白黒は変数が白なので変わらない） */
#reportTab .rp-screen-table tbody td:nth-child(n+3):nth-child(-n+5){background:var(--rp-am-cell)}
#reportTab .rp-screen-table tbody td:nth-child(n+6){background:var(--rp-pm-cell)}

/* ============================================================
   4) SHARED — プレビューと印刷が共有する紙面構造
   （見た目の数値は PREVIEW / PRINT で上書きする）
   ============================================================ */
.rp-page{width:100%;max-width:800px;box-sizing:border-box;background:var(--sheet-bg);color:var(--sheet-text);border:1px solid var(--border);border-radius:14px;padding:14px 10px}
.rp-head{margin-bottom:10px}
.rp-period{width:max-content;max-width:100%;box-sizing:border-box;margin:0 auto;border:2px solid var(--sheet-text);padding:6px 22px;text-align:center;line-height:1.35}
.rp-period small{display:block;font-size:.75rem}
.rp-period b{display:block;font-size:1.1rem}
.rp-period span{font-size:.8rem}
.rp-printed{text-align:right;font-size:.75rem;color:var(--sub);margin-top:4px}
.rp-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.9rem}
.rp-table th,.rp-table td{border:1px solid var(--table-line);padding:3px 1px;text-align:center;height:28px}
.rp-table th{background:var(--th-bg);font-weight:bold;font-size:.8rem}
.rp-table th.am{background:var(--am-bg)}
.rp-table th.pm{background:var(--pm-bg)}
.rp-table .sep{border-left:2px solid var(--sep-line)}
.rp-table td.memo-cell{text-align:left;padding:2px 4px;font-size:.75rem;line-height:1.2;white-space:pre-line;overflow-wrap:anywhere}
.rp-note{margin:6px 0 0;font-size:.75rem;color:var(--sub)}
.rp-sum{border:2px solid var(--sheet-text);margin-top:12px;padding:8px 10px}
.rp-sum-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:2px solid var(--sheet-text);padding-bottom:4px;font-size:.8rem}
.rp-sum-h b{font-size:.95rem}
.rp-sumt{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:4px}
.rp-sumt th{font-size:.75rem;color:var(--sub);font-weight:normal;text-align:center;padding:2px}
.rp-sumt tbody th{color:var(--sheet-text);font-weight:bold;font-size:.9rem;width:12%}
.rp-sumt td{text-align:center;padding:4px 2px;line-height:1.2}
.rp-sumt td b{display:block;font-size:1.05rem}
.rp-sumt td small{display:block;font-size:.7rem;color:var(--sub)}
.rp-doc{border:2px solid var(--sheet-text);margin-top:12px;padding:8px 10px;min-height:60px}
.rp-doc.big{display:flex;flex-direction:column}
.rp-doc b{display:block;font-size:.9rem;margin-bottom:4px}
.rp-doc i{display:block;border-bottom:1px solid #bbb;flex:1;min-height:16px}
.rp-foot{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:.7rem;color:var(--sub)}

/* ============================================================
   2) PREVIEW — 画面上の印刷プレビュー専用
   （印刷・PDF には効かせない。白地固定でテーマの影響を受けない）
   ============================================================ */
@media screen{
/* レポート画面：上のすきま（ステータスバーの下）を塗りつぶして、表の見出しの上を流れる数字が見えないようにする */
#reportTab.active::before{content:"";position:fixed;left:0;right:0;top:0;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:4;pointer-events:none}
/* プレビュー紙面はライト固定（アプリのダーク／配色を引き継がない） */
#rp-print-pages{color-scheme:light;--text:#000;--sub:#555;--border:#d3d8e2;--card-bg:#fff;--sheet-bg:#fff;--sheet-text:#000;--table-line:#333;--th-bg:#f0f0f0;--sat:#00f;--sun:red;--high:#d70015;--low:#0040dd;--am-bg:#ececec;--pm-bg:#d0d0d0;--sep-line:#000}
#rp-print-pages .rp-page{margin:0 auto 14px;background:var(--sheet-bg);color:var(--sheet-text);border:1px solid var(--border);border-radius:10px;padding:10px 7px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
#rp-print-pages .rp-period{padding:5px 12px}
#rp-print-pages .rp-period b{font-size:.95rem}
#rp-print-pages .rp-table{font-size:.68rem}
#rp-print-pages .rp-table th,#rp-print-pages .rp-table td{height:25px;padding:2px 0;line-height:1.1;overflow-wrap:anywhere}
#rp-print-pages .rp-table th{font-size:.62rem}
#rp-print-pages .rp-table td.memo-cell{font-size:.6rem;padding:2px}
#rp-print-pages .rp-note{font-size:.65rem}
#rp-print-pages .rp-sum{margin-top:8px;padding:5px 6px}
#rp-print-pages .rp-sum-h{font-size:.65rem}
#rp-print-pages .rp-sum-h b{font-size:.75rem}
#rp-print-pages .rp-sumt th{font-size:.62rem}
#rp-print-pages .rp-sumt tbody th{font-size:.7rem}
#rp-print-pages .rp-sumt td{padding:3px 1px}
#rp-print-pages .rp-sumt td b{font-size:.8rem}
#rp-print-pages .rp-sumt td small{font-size:.58rem}
#rp-print-pages .rp-doc{margin-top:8px;min-height:45px;padding:5px 6px}
#rp-print-pages .rp-doc i{height:13px}
#rp-print-pages .rp-foot{font-size:.6rem;margin-top:7px}
@media(max-width:390px){
 #rp-print-pages .rp-page{padding:8px 4px}
 #rp-print-pages .rp-table{font-size:.62rem}
 #rp-print-pages .rp-table th{font-size:.57rem}
}
}

/* ============================================================
   3) PRINT — 実印刷専用
   ・アプリ UI はすべて非表示（.no-print / タブ / 操作部品）
   ・#rp-print-pages だけを A4 で出す
   ・テーマに依存せず白地固定
   ============================================================ */
@media print{
:root,:root[data-theme=dark],:root[data-theme=mono]{color-scheme:light;--bg:#fff;--text:#000;--sub:#555;--border:#999;--sheet-bg:#fff;--sheet-text:#000;--table-line:#333;--th-bg:#f0f0f0;--sat:#00f;--sun:red;--high:#d70015;--low:#0040dd;--am-bg:#ececec;--pm-bg:#d0d0d0;--sep-line:#000}
@page{size:A4 portrait;margin:8mm}
body::before{display:none!important}
html,body{margin:0!important;padding:0!important;background:#fff!important;width:100%;height:auto!important}
/* 印刷で無視する UI */
.no-print,
.rp-floating-toggle,
.tab-bar,
#inputTab,#graphTab,#backupTab,
#reportTab>.card{display:none!important}
#reportTab{display:block!important;width:100%!important;margin:0!important;padding:0!important}
.container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
#reportPages{display:block}
#rp-screen-list{display:none!important}
#rp-print-pages{display:block!important}
.rp-page{max-width:none;border:0;border-radius:0;padding:0;margin:0;break-after:page;page-break-after:always}
.rp-page:last-child{break-after:auto;page-break-after:auto}
.rp-head{margin-bottom:4mm}
.rp-period{padding:1.5mm 8mm}.rp-period small,.rp-period span{font-size:8.5pt}.rp-period b{font-size:12.5pt}
.rp-printed{font-size:8pt}
.rp-table{font-size:9.5pt}
.rp-table th,.rp-table td{height:7.2mm;padding:.3mm .5mm;line-height:1.1;box-sizing:border-box}
.rp-table th{font-size:8.5pt}
.rp-table td.memo-cell{font-size:7.5pt;padding:.3mm 1.5mm}
.rp-table tr{break-inside:avoid;page-break-inside:avoid}
.rp-table .sep{border-left-width:.5mm}
.rp-note{margin-top:1.5mm;font-size:8pt}
.rp-sum{margin-top:4mm;padding:2mm 3mm;break-inside:avoid}
.rp-sum-h{font-size:8.5pt;padding-bottom:1mm}.rp-sum-h b{font-size:10.5pt}
.rp-sumt th{font-size:8pt}.rp-sumt tbody th{font-size:9.5pt}
.rp-sumt td{padding:1mm 0}.rp-sumt td b{font-size:11.5pt}.rp-sumt td small{font-size:7.5pt}
.rp-doc{margin-top:4mm;padding:2mm 3mm;min-height:22mm;break-inside:avoid}
.rp-doc i{height:6.5mm}
.rp-foot{margin-top:3mm;font-size:7.5pt}
}

/* ============================================================
   5) ZOOM — 一覧全体の拡大表示（v201で見出し表＋本体表の2段構え、v202で画面いっぱいの全面表示に）
   列は 日＋朝＋夜（曜日は外す）。見出しは固定の別表、本体だけがスクロールする。
   v200 の sticky 見出しは iOS で朝・夜の文字が切れたため廃止した。
   置き場所は #rp-screen-list の中（テーマ変数が効く）。
   数字の枠（.bv）は拡大内では使わない：一覧の固定幅の枠のままだと、
   大きい文字では「–」や数字が枠の右に寄ってしまうため、拡大内だけ
   枠なし・中央そろえにする（v200 の実機確認で判明）。
   その後 v204 でライト／ダークは枠あり・右そろえに戻し、v212 で白黒も
   同じ扱いにそろえた（白黒の先生へは ▲▼ をやめ、強調は太字だけ）。
   ============================================================ */
.rp-zoom{position:fixed;inset:0;z-index:1200;background:rgba(0,0,0,.45);display:flex;padding:0;box-sizing:border-box}
.rp-zoom[hidden]{display:none}
.rp-zoom-card{background:var(--card-bg);color:var(--text);width:100%;height:100%;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}
.rp-zoom-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.rp-zoom-scroll{overflow-y:auto;flex:1 1 auto;min-height:0;position:relative}
.rp-zoom-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:1.28rem}
.rp-zoom-table col.zc-d{width:11%}
.rp-zoom-table col.zc-v{width:14.8333%}
.rp-zoom-table th,.rp-zoom-table td{border:0;border-right:2px solid var(--rp-grid);border-bottom:2px solid var(--rp-grid);background:var(--card-bg);text-align:center;line-height:1.1;box-sizing:border-box}
.rp-zoom-table th:last-child,.rp-zoom-table td:last-child{border-right-width:3px}
/* 見出し表（固定）：上に外枠、本体表：左に外枠と最終行の下枠 */
.rp-zoom-head{flex:none;border-top:3px solid var(--rp-grid);border-left:3px solid var(--rp-grid)}
.rp-zoom-head th{height:38px;padding:3px 1px;font-size:1rem;font-weight:700;color:var(--sheet-text)}
.rp-zoom-head tr:nth-child(2) th{height:34px;font-size:.92rem}
.rp-zoom-head th.am{background:var(--rp-am-head)}
.rp-zoom-head th.pm{background:var(--rp-pm-head)}
.rp-zoom-scroll .rp-zoom-table{border-left:3px solid var(--rp-grid)}
.rp-zoom-scroll .rp-zoom-table td{height:52px;padding:3px 1px;font-variant-numeric:tabular-nums}
.rp-zoom-scroll .rp-zoom-table tbody tr:last-child td{border-bottom-width:3px}
.rp-zoom-table td.rp-day{font-weight:700}
.rp-zoom-table td.rp-sat{background:var(--rp-sat-bg);color:var(--sat)}
.rp-zoom-table td.rp-sun{background:var(--rp-sun-bg);color:var(--sun)}
.rp-zoom-table tbody td:nth-child(n+2):nth-child(-n+4){background:var(--rp-am-cell)}
.rp-zoom-table tbody td:nth-child(n+5){background:var(--rp-pm-cell)}
.rp-zoom-table td.bp-high,.rp-zoom-table td.bp-low{text-shadow:var(--num-shadow)}
/* 拡大内では数字の枠（.bv）を外して中央そろえにする（上の節の説明。下の上書きで全テーマとも枠あり・右そろえに戻す） */
#reportTab #rp-screen-list .rp-zoom .bv{display:inline;width:auto}
/* v204：拡大でも一覧と同じ3桁ぶんの枠（.bv）で右そろえにし、一の位を縦にそろえる。
   枠（inline-flex）はマスの中で中央に置かれるので、v200 の「全体が右に寄る」は再発しない。
   「–」（.dsh・未測定）は数字ではないので中央のまま。
   v212：白黒も同じ扱いにした（白黒の先生へは ▲▼ をなくし、強調は太字だけにしたため、印ぶんの幅も文字の抑制も要らなくなった） */
#reportTab #rp-screen-list .rp-zoom .bv{display:inline-flex;width:3.1ch;justify-content:flex-end}
#reportTab #rp-screen-list .rp-zoom .bv.dsh{justify-content:center}
/* 狭い画面では、大きい文字設定でも3桁がマスに収まるよう少し抑える */
@media (max-width:359px){
 .rp-zoom-table{font-size:min(1.28rem,5.6vw)}
}
