/* 帳票（A4）の見本と印刷。画面では入力欄の下に紙のように出し、印刷では帳票だけを出す */
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.field { display: block; margin-top: 6px; }
.field > span { display: block; font-size: 13px; color: var(--muted); margin-bottom: 2px; }
select { font: inherit; width: 100%; padding: 10px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); }
.line { display: grid; grid-template-columns: 1.1fr 1.3fr 1fr 1.2fr 36px; gap: 6px; margin-bottom: 6px; }
.line input, .line select { padding: 8px; }
.line .l-amount { text-align: right; }
.l-del { background: transparent; color: var(--muted); border: 1px solid var(--line); border-radius: 4px; padding: 0; cursor: pointer; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 8px; }
header.site nav a + a { margin-left: 12px; }
@media (max-width: 600px) {
  .row2 { grid-template-columns: 1fr; }
  .line { grid-template-columns: 1fr 1fr; }
  .line .l-del { grid-column: 2; justify-self: end; width: 36px; height: 32px; }
}

.sheet-wrap { overflow: hidden; padding: 0 16px 24px; }
.sheet {
  width: 210mm; min-height: 297mm; margin: 0 auto; background: #fff; color: #111;
  padding: 18mm 18mm 16mm; box-shadow: 0 2px 20px rgba(31, 31, 31, 0.08); border: 1px solid var(--line);
  font-family: 'Zen Kaku Gothic New', "Hiragino Sans", sans-serif; font-size: 10.5pt; line-height: 1.6;
}
.s-head { position: relative; text-align: center; margin-bottom: 10mm; }
.s-title { font-family: 'Shippori Mincho', serif; font-size: 22pt; letter-spacing: .3em; margin: 0; border-bottom: 3px double #111; display: inline-block; padding: 0 1em 2mm; }
.s-meta { position: absolute; right: 0; top: 0; text-align: right; font-size: 9.5pt; }
.s-to { font-size: 14pt; margin-bottom: 8mm; }
.s-to span { display: inline-block; min-width: 70mm; border-bottom: 1px solid #111; padding: 0 2mm; }
.s-amount-row { display: flex; gap: 8mm; align-items: flex-start; margin-bottom: 8mm; }
.s-amount { flex: 1; }
.s-amount-label { font-size: 9.5pt; }
.s-amount-val { font-size: 22pt; font-weight: 700; border: 2px solid #111; padding: 2mm 6mm; display: inline-block; min-width: 90mm; text-align: center; }
.s-amount-val small { font-size: 14pt; }
.s-tadashi { margin-top: 3mm; }
.s-ack { margin-top: 1mm; }
.s-card { margin-top: 2mm; display: inline-block; border: 1px solid #111; padding: 0 3mm; font-weight: 700; }
.s-stamp { width: 26mm; height: 32mm; border: 1px dashed #777; color: #777; font-size: 9pt; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; }
.s-prop { margin-bottom: 3mm; }
.s-table { width: 100%; border-collapse: collapse; margin-bottom: 3mm; }
.s-table th, .s-table td { border: 1px solid #999; padding: 1.5mm 2.5mm; }
.s-table th { background: #f2f0eb; font-weight: 500; font-size: 9.5pt; text-align: left; }
.s-table .r { text-align: right; }
.s-table .c { text-align: center; }
.s-table tfoot td { font-weight: 700; }
.s-table .empty { color: #999; text-align: center; }
.s-breakdown { font-size: 9.5pt; margin-bottom: 4mm; }
.s-pay { margin-bottom: 4mm; }
.s-bank { margin-top: 3mm; border: 1px solid #999; padding: 2mm 3mm; display: inline-block; min-width: 90mm; }
.s-memo { margin-bottom: 4mm; font-size: 9.5pt; border-top: 1px solid #ddd; padding-top: 2mm; }
.s-from { margin-left: auto; width: 80mm; margin-top: 10mm; font-size: 10pt; }
.s-from-name { font-size: 12pt; font-weight: 700; }

@media print {
  @page { size: A4 portrait; margin: 0; }
  body { background: #fff; }
  .no-print { display: none !important; }
  /* 配信事業者などが後から差し込む表示（バッジ等）も印刷に出さない */
  body > *:not(.sheet-wrap) { display: none !important; }
  .sheet-wrap { padding: 0; overflow: visible; }
  .sheet { box-shadow: none; border: 0; margin: 0; width: 210mm; min-height: auto; }
}

/* 手紙の形の書面（督促状・賃料改定） */
.line.due { grid-template-columns: 2fr 1.1fr 1.3fr 36px; }
.kaitei-grid { display: grid; grid-template-columns: 4em 1fr 1fr; gap: 6px 8px; align-items: center; }
.kaitei-grid input { text-align: right; }
.s-to.letter { margin-bottom: 2mm; }
.s-from-top { text-align: right; margin-bottom: 8mm; }
.s-title.letter-title { display: block; text-align: center; border: 0; letter-spacing: .15em; font-size: 18pt; margin: 0 0 8mm; padding: 0; }
.s-body p { margin: 0 0 3mm; text-indent: 1em; }
.s-body p.r, .sheet p.r { text-align: right; text-indent: 0; }
.s-ki { text-align: center; margin: 4mm 0; }
@media (max-width: 600px) {
  .line.due { grid-template-columns: 1fr 1fr; }
}
.line.part { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 8px; border-bottom: 1px dashed var(--line); }
.line.part > * { flex: 1 1 150px; }
.line.part > .p-since { flex-basis: 260px; }
.line.part > .l-del { flex: 0 0 36px; }
.line.other { grid-template-columns: 2fr 1fr 36px; }
.s-table small { font-size: 8.5pt; color: #444; }
.s-table.seisan td:first-child { width: 70%; }
@media (max-width: 600px) {
  .line.other { grid-template-columns: 1fr 1fr; }
}
.line.pay { grid-template-columns: 1.2fr 1fr 1.6fr 36px; align-items: center; }
.p-special { font-size: 13px; color: var(--muted); }
@media (max-width: 600px) { .line.pay { grid-template-columns: 1fr 1fr; } }
.line.part > .p-warn { flex: 1 1 100%; margin: 0; }
