@page { size: A4; margin: 16mm 15mm; }
* { box-sizing: border-box; }
body {
  font-family: "Apple SD Gothic Neo", "AppleSDGothicNeo", -apple-system, sans-serif;
  font-size: 10.4pt;
  line-height: 1.55;
  color: #1a1a1a;
  max-width: 100%;
  margin: 0;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
h1 {
  font-size: 19pt; color: #0b3d63; border-bottom: 3px solid #0b3d63;
  padding-bottom: 6px; margin: 26px 0 14px; page-break-after: avoid;
}
h1:first-of-type { margin-top: 0; }
h2 {
  font-size: 14pt; color: #0b3d63; margin: 22px 0 8px;
  border-bottom: 1px solid #cfd8e0; padding-bottom: 4px; page-break-after: avoid;
}
h3 { font-size: 11.5pt; color: #1f4e79; margin: 14px 0 6px; page-break-after: avoid; }
p { margin: 6px 0; }
strong { color: #0b2c47; }
em { color: #555; }
a { color: #1a5f9e; text-decoration: none; }
hr { border: 0; border-top: 1px solid #dde3e8; margin: 16px 0; }
blockquote {
  margin: 6px 0 12px; padding: 8px 14px; border-left: 4px solid #4a90c2;
  background: #f3f8fc; border-radius: 0 5px 5px 0; page-break-inside: avoid;
}
blockquote p { margin: 4px 0; }
code {
  font-family: "SFMono-Regular", "Menlo", monospace; font-size: 9pt;
  background: #eef2f6; padding: 1px 5px; border-radius: 3px; color: #b02a5b;
}
pre {
  background: #1e2a36; color: #e6edf3; padding: 12px 14px; border-radius: 6px;
  overflow-x: auto; font-size: 8.8pt; line-height: 1.4; page-break-inside: avoid;
}
pre code { background: none; color: inherit; padding: 0; }
ul, ol { margin: 6px 0; padding-left: 22px; }
li { margin: 3px 0; }
table { border-collapse: collapse; width: 100%; margin: 10px 0; font-size: 9.6pt; page-break-inside: avoid; }
th, td { border: 1px solid #c4cdd5; padding: 6px 9px; text-align: left; }
th { background: #0b3d63; color: #fff; }
tr:nth-child(even) td { background: #f5f8fa; }
/* callout markers */
h2 + p, h2 + blockquote { page-break-before: avoid; }
