
:root { --ink:#222; --sub:#666; --line:#e3e6ea; --brand:#222d32; --link:#2a6fb0; --bg:#f6f7f9; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:var(--bg); line-height:1.75;
  font-family: "Hiragino Kaku Gothic ProN","Noto Sans JP","Noto Sans CJK JP","Yu Gothic",Meiryo,sans-serif; }
a { color:var(--link); text-decoration:none; } a:hover { text-decoration:underline; }
.wrap { max-width: 900px; margin: 0 auto; padding: 0 16px; }
header.top { background:var(--brand); color:#fff; }
header.top .wrap { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; flex-wrap:wrap; }
header.top .brand { color:#fff; font-size:18px; font-weight:700; }
header.top nav a { color:#d6dde1; margin-left:14px; font-size:14px; }
header.top nav a.btn-sm { color:#fff; border:1px solid #8a9ba5; border-radius:4px; padding:3px 10px; }
main.wrap { background:#fff; margin:18px auto; padding:18px 22px 26px; border-radius:6px; box-shadow:0 1px 3px rgba(0,0,0,.06); }
h1 { font-size:24px; line-height:1.45; margin:6px 0 10px; }
h2 { font-size:19px; margin:30px 0 10px; padding-left:10px; border-left:4px solid var(--link); }
.lead { color:var(--sub); margin:0 0 14px; }
.crumbs { list-style:none; padding:0; margin:0 0 6px; font-size:13px; color:var(--sub); }
.crumbs li { display:inline; } .crumbs li+li:before { content:" › "; color:#aaa; }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:14px 0; }
.stat { border:1px solid var(--line); border-radius:6px; padding:10px 14px; }
.stat .v { font-size:26px; font-weight:700; } .stat .k { color:var(--sub); font-size:13px; }
.summary { font-size:16px; }
figure { margin:16px 0; } figure img { width:100%; height:auto; border:1px solid var(--line); border-radius:4px; }
figcaption { color:var(--sub); font-size:13px; }
.tbl { overflow-x:auto; }
table { border-collapse:collapse; width:100%; font-size:15px; }
th, td { padding:7px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { background:#fafbfc; font-weight:600; white-space:nowrap; }
td.r, th.r { text-align:right; white-space:nowrap; } td.b { font-weight:700; }
.tag { display:inline-block; margin-right:6px; padding:0 8px; border-radius:3px; color:#fff; font-size:12px; vertical-align:2px; }
.tag-above { background:#c0392b; } .tag-rising { background:#d35400; } .tag-rare { background:#7d3c98; }
.cta { display:inline-block; margin:16px 0 4px; padding:10px 18px; background:var(--link); color:#fff; border-radius:5px; font-weight:600; }
.cta:hover { text-decoration:none; opacity:.9; }
.note { color:var(--sub); font-size:14px; }
.di-box { font-size:15px; }
.di-summary { font-size:16px; margin:0 0 12px; }
.di-vector { display:inline-block; background:#fff3e0; color:#8d4b00; border:1px solid #f5c27a; border-radius:3px; padding:0 8px; margin-right:8px; font-size:13px; font-weight:600; }
.di-item { display:flex; gap:14px; padding:9px 0; border-top:1px solid var(--line); }
.di-lbl { flex:0 0 8.5em; font-weight:700; color:#444; } .di-txt { flex:1; }
.di-doctor { display:flex; gap:14px; padding:12px 14px; margin-bottom:6px; background:#fdecea; border-left:5px solid #c0392b; border-radius:4px; }
.di-doctor .di-lbl { color:#b03a2e; }
.di-note { margin-top:12px; font-size:13px; color:var(--sub); }
.di-draft { background:#fff8e1; border:1px solid #f0d58c; color:#6d5200; border-radius:4px; padding:6px 12px; font-size:13px; }
@media (max-width:600px) { .di-item, .di-doctor { display:block; } .di-lbl { margin-bottom:2px; } }
.cols { columns: 2 260px; column-gap: 28px; } .cols li { break-inside: avoid; }
ul.plain { padding-left:18px; }
footer.foot { color:var(--sub); font-size:13px; padding:4px 0 30px; }

