/* ===========================================
   債務整理シミュレーター 印刷用スタイル
   A4サイズ (210mm x 297mm) に最適化
   =========================================== */

/* --- 画面表示用（プレビュー） --- */
.document-page {
  background: #fff;
  width: 210mm;
  min-height: 297mm;
  margin: 20px auto;
  padding: 20mm 20mm 25mm 20mm;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  font-family: 'Hiragino Mincho ProN', 'Yu Mincho', 'MS PMincho', serif;
  font-size: 10.5pt;
  line-height: 1.8;
  color: #000;
  position: relative;
}

.document-page .doc-title {
  text-align: center;
  font-size: 16pt;
  font-weight: bold;
  margin-bottom: 20pt;
  letter-spacing: 4pt;
}

.document-page .doc-subtitle {
  text-align: center;
  font-size: 12pt;
  margin-bottom: 16pt;
}

.document-page .doc-date {
  text-align: right;
  margin-bottom: 12pt;
}

.document-page .doc-court {
  margin-bottom: 8pt;
  font-size: 11pt;
}

.document-page .doc-right {
  text-align: right;
}

.document-page .doc-indent {
  padding-left: 2em;
}

.document-page .doc-section {
  margin-top: 16pt;
  margin-bottom: 8pt;
  font-weight: bold;
  font-size: 11pt;
  border-bottom: 1px solid #000;
  padding-bottom: 2pt;
}

.document-page .doc-subsection {
  margin-top: 10pt;
  margin-bottom: 4pt;
  font-weight: bold;
}

/* 表 */
.document-page table {
  width: 100%;
  border-collapse: collapse;
  margin: 8pt 0;
  font-size: 9.5pt;
}

.document-page table th,
.document-page table td {
  border: 1px solid #000;
  padding: 4pt 6pt;
  vertical-align: top;
}

.document-page table th {
  background: #f5f5f5;
  font-weight: bold;
  text-align: center;
  white-space: nowrap;
}

.document-page table td.right {
  text-align: right;
}

.document-page table td.center {
  text-align: center;
}

.document-page table .total-row {
  font-weight: bold;
  background: #f9f9f9;
}

/* 署名欄 */
.document-page .signature-area {
  margin-top: 30pt;
}

.document-page .signature-line {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  margin: 8pt 0;
}

.document-page .signature-label {
  margin-right: 12pt;
}

.document-page .signature-box {
  border-bottom: 1px solid #000;
  min-width: 200pt;
  display: inline-block;
  padding: 2pt 4pt;
}

/* 印鑑欄 */
.document-page .seal-area {
  display: inline-block;
  width: 30pt;
  height: 30pt;
  border: 1px solid #ccc;
  margin-left: 8pt;
  vertical-align: middle;
  text-align: center;
  font-size: 7pt;
  color: #ccc;
  line-height: 30pt;
}

/* 注意書き（画面表示のみ） */
.doc-warning {
  background: #fff3cd;
  border: 1px solid #ffc107;
  border-radius: 4px;
  padding: 8px 12px;
  margin-bottom: 16px;
  font-family: sans-serif;
  font-size: 12px;
  color: #856404;
  text-align: center;
}

/* 印刷ボタン（画面表示のみ） */
.print-btn {
  display: inline-block;
  padding: 8px 20px;
  background: #2563eb;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 14px;
  cursor: pointer;
  font-family: sans-serif;
  margin: 4px;
}

.print-btn:hover {
  background: #1d4ed8;
}

.print-controls {
  text-align: center;
  margin: 12px 0;
  font-family: sans-serif;
}

/* 空欄（記入用下線） */
.blank-line {
  border-bottom: 1px solid #000;
  min-width: 100pt;
  display: inline-block;
  padding: 0 4pt;
}

.blank-line.long {
  min-width: 250pt;
}

.blank-line.short {
  min-width: 50pt;
}

/* 家計表用レイアウト */
.household-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12pt;
}

/* チェックボックス風 */
.checkbox-mark {
  display: inline-block;
  width: 12pt;
  height: 12pt;
  border: 1px solid #000;
  text-align: center;
  line-height: 12pt;
  font-size: 10pt;
  margin-right: 4pt;
  vertical-align: middle;
}

.checkbox-mark.checked::after {
  content: '✓';
}

/* ================================================
   印刷時のスタイル
   ================================================ */
@media print {
  /* 基本リセット */
  body {
    margin: 0;
    padding: 0;
    background: #fff;
  }

  /* 印刷不要な要素を非表示 */
  .no-print,
  .print-controls,
  .doc-warning,
  .print-btn,
  header,
  nav,
  .nav-bar,
  .tab-bar,
  .disclaimer,
  #inputSection {
    display: none !important;
  }

  /* 個別印刷モード */
  .print-hidden {
    display: none !important;
  }

  .print-target {
    display: block !important;
  }

  /* ドキュメントページ */
  .document-page {
    box-shadow: none;
    margin: 0;
    padding: 15mm 20mm 20mm 20mm;
    width: auto;
    min-height: auto;
    page-break-after: always;
    page-break-inside: avoid;
  }

  .document-page:last-child {
    page-break-after: avoid;
  }

  /* テーブルのページ跨ぎ */
  .document-page table {
    page-break-inside: auto;
  }

  .document-page table tr {
    page-break-inside: avoid;
  }

  .document-page table thead {
    display: table-header-group;
  }

  /* ページ設定 */
  @page {
    size: A4;
    margin: 0;
  }
}
