/* ---------- 印刷プレビュー画面 ---------- */
body.print-mode { background: #7b8490; }
.print-bar { position: sticky; top: 0; z-index: 5; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 10px 14px; background: #16325c; color: #fff; font-size: 13px; }
.print-bar .btn.ghost { color: #fff; border-color: rgba(255,255,255,.4); }
.chkline { display: inline-flex; gap: 4px; align-items: center; }
.print-root { padding: 16px; overflow-x: auto; }

.page { width: 420mm; height: 297mm; padding: 7mm 8mm; background: #fff; margin: 0 auto 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 9mm;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic", sans-serif; font-size: 9.5pt; color: #000; line-height: 1.3; overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.3); }
.half { display: flex; flex-direction: column; gap: 2mm; min-width: 0; }
.ttl { display: flex; align-items: baseline; gap: 6mm; font-weight: 700; font-size: 11pt; margin-bottom: 1mm; }
.ttl .tag { background: #bcd9f3; font-size: 19pt; padding: 1mm 3mm; font-weight: 800; }
.ttl .tag.gray { background: #cfd3d8; } .ttl .tag.beige { background: #f1e3c8; font-size: 16pt; } .ttl .tag.green { background: #cfe8dd; font-size: 14pt; }
.circ { border: 1.3px solid #000; border-radius: 50%; padding: 0 1.5mm; }
.t { width: 100%; border-collapse: collapse; border: 1.6px solid #000; table-layout: fixed; }
.t td, .t th { border: .6px solid #000; padding: .8mm 1.4mm; vertical-align: top; overflow: hidden; }
.t tr.h th { background: #d6e8f7; font-weight: 700; font-size: 8.5pt; text-align: center; vertical-align: middle; }
.t small { font-size: 7pt; display: inline-block; background: #d6e8f7; padding: 0 1mm; }
.t small.pk, small.pk { background: #f6d4dc; }
.t small.red, .red { color: #d00; background: none; }
.t .v { min-height: 5.5mm; font-size: 10.5pt; }
.t .v.sm { font-size: 9pt; }
.t .v.big { font-size: 14pt; padding-top: 1mm; }
.pre { white-space: pre-wrap; }
.c { text-align: center; } .r { text-align: right; } .b { font-weight: 700; }
.w4 { width: 9mm; } .w3 { width: 5mm; } .w8 { width: 14mm; } .w10 { width: 17mm; } .w15 { width: 26mm; } .w25 { width: 25%; } .w35 { width: 32%; } .w75 { width: 75%; }
.hdrt td { height: 13mm; }
.km { position: relative; border: 2px solid #000 !important; }
.km small.r { position: absolute; right: 1mm; bottom: .5mm; background: none; font-size: 9pt; }

.blk2 { display: grid; grid-template-columns: 38% 1fr; gap: 2mm; }
.blk2 .rt { display: flex; flex-direction: column; gap: 2mm; }
.workers td { height: 7.6mm; font-size: 10.5pt; }
.workers small.no { background: none; width: 7mm; }
.times td { height: 13.5mm; }
.out td { font-size: 7.4pt; line-height: 1.6; height: 30mm; }
.out .ln { }
.grpm { display: inline-block; width: 3.5mm; }
.work td { height: 22mm; }
.note { margin: 0; font-size: 8pt; text-align: center; }
.veh td { height: 11mm; vertical-align: middle; font-size: 10pt; }
.blk3 { display: grid; grid-template-columns: 38% 1fr; gap: 2mm; }
.park td { height: 8.2mm; vertical-align: middle; }
.cards td { height: 9mm; }
.sign td { height: 15mm; }
.stampc { text-align: center; vertical-align: middle !important; }
.stamp { display: inline-block; border: 1.4px solid #d00; color: #d00; border-radius: 50%; padding: 1.5mm 1mm; font-size: 7pt; line-height: 1.1; max-width: 17mm; }

.blk4 { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; align-items: end; }
.meet { border-bottom: .8px solid #000; padding-bottom: 1mm; }
.plan td { height: 43mm; }
.planhead { display: grid; grid-template-columns: 1.2fr 1fr 1.3fr 1.3fr; gap: 2mm; margin-bottom: 1mm; font-size: 9pt; }
.legend { display: flex; gap: 5mm; font-size: 8pt; margin-top: 1mm; }
.legend i { display: inline-block; width: 7mm; height: 1.2mm; margin-right: 1mm; vertical-align: middle; }
.tools-p td { height: 7.3mm; font-size: 9pt; vertical-align: middle; }
.tools-p th.gray { background: #cfd3d8; } .tools-p th.pk { background: #f6d4dc; }
.tools-p th.boxes { background: #fff; font-size: 11pt; letter-spacing: 1mm; }
.tools-p td.ok { width: 5mm; text-align: center; color: #d00; font-weight: 700; padding: 0; }
.tools-p td.cn { width: 32mm; font-size: 8.5pt; }
.cq { float: right; }
.waste { display: grid; grid-template-columns: 1fr 1.2fr; gap: 4mm; font-size: 9pt; }
.tagsm { background: #cfd3d8 !important; font-size: 8.5pt; padding: .5mm 2mm; }
.wt { border-bottom: .6px solid #000; padding: .8mm 0; }

.kyhead { display: flex; gap: 8mm; font-size: 9.5pt; border-bottom: .8px solid #000; padding-bottom: .5mm; }
.kyt th { background: #f1e3c8 !important; font-size: 7.5pt !important; }
.kyt td { font-size: 8.3pt; height: 6.2mm; vertical-align: middle; }
.kyt td.arr { text-align: center; padding: 0; }
.kyt td.sub { font-weight: 700; border-left: 0; border-right: 0; }
.kyb { grid-template-columns: 1fr 1fr; }
.tasks td { height: 5.4mm; font-size: 8.5pt; }
.crit td, .crit th { font-size: 7.3pt; }
.crit tr.h th { background: #f1e3c8; }
.ck { grid-template-columns: 1fr 1fr; gap: 4mm; }
.chk-p td { height: 7mm; font-size: 9pt; vertical-align: middle; }
.chk-p tr.h th { background: #fff; }
.heatbox { border-top: 1px solid #000; padding-top: 2mm; display: flex; flex-direction: column; gap: 1.5mm; }
.hy { background: #ffef00; border: 1.4px solid #000; text-align: center; font-weight: 800; font-size: 12pt; padding: .8mm; }
.heat-p tr.danger td { background: #d32f2f; color: #fff; } .heat-p tr.warn td { background: #f2b227; }
.heat-p td, .heat-p th { font-size: 8.5pt; vertical-align: middle; }
.heat-p tr.h th { background: #fff; }
.meas td { height: 6mm; vertical-align: middle; } .meas tr.h th { background: #fff; }
.man { margin: 0; padding-left: 5mm; font-size: 8pt; }
.hinfo { border: 0; } .hinfo td { border: 0; color: #1d4ed8; font-size: 9pt; }
.hinfo td.bl { background: #dcebf9; color: #000; border-bottom: .6px solid #888; width: 45%; }
.page .sev div { padding: 1mm 2mm; margin: .6mm 0; font-size: 7.8pt; border-radius: 1mm; }
.page .sev .s1 { background: #fff5b8; } .page .sev .s2 { background: #f7c677; } .page .sev .s3 { background: #e8904d; }

/* ---------- 実際の印刷 ---------- */
@page { size: A3 landscape; margin: 0; }
@media print {
  body, body.print-mode { background: #fff; }
  .noprint, .toast, .print-bar, .top, .actbar, .tabs { display: none !important; }
  .print-root { padding: 0; overflow: visible; }
  .page { margin: 0; box-shadow: none; page-break-after: always; break-after: page; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .page:last-child { page-break-after: auto; break-after: auto; }
}

.workers col.n { width: auto; } .workers col.e { width: 17mm; } .workers col.o { width: 11mm; }
.tools-p col.tc { width: auto; } .tools-p col.ok { width: 5mm; } .tools-p col.cn { width: 34mm; }
