/* ===============================
   Base readability & light-weight helpers
   =============================== */

/* 本文フォント（日本語も自然なサンセリフ） */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
               "Hiragino Kaku Gothic ProN", "Hiragino Sans",
               "Noto Sans JP", "Yu Gothic UI", "YuGothic", "Meiryo", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.7;
}

/* -------------------------------
   Mermaid：中央寄せ＋横幅ガード
   ------------------------------- */
.mermaid {
  display: block;
  margin: 1.5em auto;
  text-align: center;
  max-width: 960px;   /* ある程度の読み幅で止める */
  width: 100%;
}

/* -------------------------------
   表：薄いテーマでも読める罫線
   ------------------------------- */
table {
  border-collapse: collapse;
  width: 100%;
  margin: 1rem 0;
}
th, td {
  border: 1px solid #d0d7de;
  padding: .5em .8em;
  vertical-align: top;
}
th {
  background: #f6f8fa;
  font-weight: 700;
  text-align: left;
}

/* 交互色（視線誘導。不要なら削除可） */
tbody tr:nth-child(even) td { background: #fbfcfd; }

/* モバイル横スクロール崩れ防止（テーブルが画面より広いとき） */
@media (max-width: 720px) {
  table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* -------------------------------
   章ヘッダー（任意：軽いバッジ群）
   ------------------------------- */
.section-hero { margin: 1.2rem 0 1.6rem; }
.section-hero .badges {
  display: inline-flex;
  gap: .4rem;
  flex-wrap: wrap;
  align-items: center;
}
.section-hero .badge {
  padding: .22rem .6rem;
  border: 1px solid #d0d7de;
  border-radius: 999px;
  background: #f6f8fa;
  font-size: .9em;
  line-height: 1.4;
  white-space: nowrap;
}

/* バッジの色バリエーション（必要に応じて） */
.badge--info  { background:#eef6ff; border-color:#9ec4ff; color:#20334d; }
.badge--warn  { background:#fff7e6; border-color:#f0b429; color:#3b2f2f; }
.badge--ok    { background:#eefaf2; border-color:#a7e2be; color:#20452f; }

/* ===============================
   Portal統一トーンを使う場合（theme-sepia）
   =============================== */
body.theme-sepia {
  background: #fdf6e3;
  color: #3b2f2f;
  line-height: 1.9;
  font-size: 1.05em;
}

body.theme-sepia h1,
body.theme-sepia h2,
body.theme-sepia h3 {
  color: #003366;
  font-weight: 700;
  border-bottom: none;
}

body.theme-sepia a {
  color: #0066cc;
  font-weight: 600;
  text-decoration: underline;
}
body.theme-sepia a:hover { color: #004c99; }

body.theme-sepia th { background: #e9ddc9; }
body.theme-sepia table { border: 2px solid #999; }
body.theme-sepia th { border: 2px solid #999; }
body.theme-sepia td { border: 1.5px solid #bbb; }
body.theme-sepia tbody tr:nth-child(even) td { background: #f3efe6; }

/* ===============================
   Print（余分な背景を抑制）
   =============================== */
@media print {
  a { color: #000; text-decoration: underline; }
  th { background: #fff; }
  .badge { border-color:#aaa; background:#fff; }
}
