:root{ --fg:#3b3b3b; --muted:#666; --brand:#0b6bf2; }
*{ box-sizing: border-box; }
html,body{ margin:0; padding:0; color:var(--fg); font-family:"Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto; line-height:1.7; }
.container{ max-width:900px; margin:40px auto; padding:0 16px; }
h1,h2,h3{ line-height:1.3; }
label{ display:block; margin:16px 0 6px; font-weight:600; }
input[type=text]{ width:100%; padding:10px 12px; border:1px solid #ddd; border-radius:8px; }
textarea{ width:100%; padding:12px; border:1px solid #ddd; border-radius:8px; font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.actions{ margin-top:16px; }
button,.btn{ background:var(--brand); color:#fff; border:none; padding:10px 14px; border-radius:10px; text-decoration:none; display:inline-block; }
.toolbar{ position:sticky; top:0; background:#fff; border-bottom:1px solid #eee; padding:10px; display:flex; gap:8px; z-index:10; }
.no-print{ }

/* ドキュメント枠 */
.page-header,.page-footer{ position:fixed; left:0; right:0; color:var(--muted); font-size:12px; }
.page-header{ top:0; border-bottom:1px solid #eee; padding:8px 20px; }
.page-footer{ bottom:0; border-top:1px solid #eee; padding:8px 20px; display:flex; justify-content:space-between; }
.page-content{ max-width:800px; margin:80px auto; padding-bottom:60px; padding-top:60px; }
.doc-header{ display:flex; justify-content:space-between; align-items:center; }
.doc-title{ font-weight:700; }

/* Markdown本文 */
.page-content h1{ font-size:28px; margin:28px 0 12px; page-break-after:avoid; }
.page-content h2{ font-size:22px; margin:24px 0 10px; page-break-after:avoid; }
.page-content h3{ font-size:18px; margin:20px 0 8px; page-break-after:avoid; }
.page-content p{ margin:10px 0; page-break-inside:avoid; }
.page-content ul, .page-content ol{ margin:8px 0 8px 24px; page-break-inside:avoid; }
.page-content li{ page-break-inside:avoid; }
.page-content code{ background:#f6f7f9; padding:2px 6px; border-radius:6px; }
.page-content pre{ background:#0b1220; color:#f0f3f8; padding:14px; border-radius:10px; overflow:auto; page-break-inside:avoid; }
.page-content table{ width:100%; border-collapse:collapse; margin:16px 0; page-break-inside:avoid; }
.page-content th, .page-content td{ border:1px solid #e5e7eb; padding:8px 10px; }
.page-content th{ background:#f8fafc; text-align:left; }
.page-content img{ max-width:100%; height:auto; page-break-inside:avoid; }
.page-content blockquote{ 
  margin:16px 0; 
  padding-left:20px; 
  border-left:4px solid #ddd; 
  color:#666; 
  word-wrap:break-word !important; 
  word-break:break-all !important; 
  overflow-wrap:break-word !important; 
  white-space:normal !important; 
  max-width:100% !important; 
  overflow:hidden !important; 
}

/* 印刷最適化 */
@media print{
  .no-print, .toolbar{ display:none !important; }
  a[href]::after{ content:" (" attr(href) ")"; font-size:10pt; color:#444; }
  /* ページ内改ページ制御 */
  h1,h2,h3{ page-break-after:avoid; }
  table, pre, figure{ page-break-inside:avoid; }
}

/* Dompdf向け（CSSカウンタ） */
@page{ counter-increment: page; }
.pageno::after{ content: counter(page); }