:root{--ink:#1c2533;--sub:#5b6775;--line:#dde3ea;--bg:#f6f8fa;--card:#fff;--navy:#1f3a5f;--teal:#0f766e;--teal-bg:#e6f4f1;--amber:#b45309;--amber-bg:#fff4e0;--red:#b91c1c;--red-bg:#fde8e8;--blue-bg:#e8f0fb;--gray-bg:#eef1f4}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;line-height:1.8;font-size:16px}
.wrap{max-width:900px;margin:0 auto;padding:24px 16px 64px}
header.top{background:var(--navy);color:#fff}
header.top .wrap{padding:28px 16px}
header.top .kicker{font-size:13px;opacity:.85;margin:0 0 6px}
header.top h1{font-size:clamp(20px,4.6vw,30px);line-height:1.4;margin:0 0 10px}
header.top p{margin:0;opacity:.92;font-size:15px}
nav.crumb{font-size:13px;margin-bottom:16px}
nav.crumb a{color:var(--teal)}
h2{font-size:clamp(18px,4vw,22px);margin:40px 0 12px;padding-left:12px;border-left:5px solid var(--teal);line-height:1.4}
h3{font-size:17px;margin:24px 0 8px}
p{margin:0 0 12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 18px;margin:12px 0}
.summary{background:var(--teal-bg);border-color:#bfe3dc}
.summary ol{margin:8px 0 0 0;padding-left:1.3em}
.summary li{margin-bottom:6px}
.note{background:var(--amber-bg);border-color:#f3d9a4}
.warn{background:var(--red-bg);border-color:#f1c0c0}
.small{font-size:13.5px;color:var(--sub)}
table{width:100%;border-collapse:collapse;background:#fff;font-size:14.5px}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
th,td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
th{background:var(--gray-bg);font-weight:600;white-space:nowrap}
tr:last-child td{border-bottom:none}
.tag{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--gray-bg);color:var(--sub);margin-right:4px}
.tag.ok{background:var(--teal-bg);color:var(--teal)}
.tag.ng{background:var(--red-bg);color:var(--red)}
.tag.now{background:var(--blue-bg);color:var(--navy)}
.flow{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.flow .box{flex:1 1 180px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}
.flow .box b{display:block;margin-bottom:4px}
.flow .arrow{align-self:center;color:var(--sub);font-size:22px;flex:0 0 auto}
.tiers{display:grid;gap:10px}
.tier{border-radius:10px;padding:14px 16px;border:1px solid var(--line);background:#fff;display:grid;grid-template-columns:1fr;gap:4px}
.tier .lv{font-size:12.5px;color:var(--sub)}
.tier .who{font-weight:600}
.tier.t1{border-left:8px solid #7f1d1d}
.tier.t2{border-left:8px solid #b45309}
.tier.t3{border-left:8px solid #0f766e}
.tier.t4{border-left:8px solid #1f3a5f}
.tier.t5{border-left:8px solid #94a3b8}
.timeline{display:grid;gap:10px}
.timeline .step{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.timeline .step .when{font-size:12.5px;color:var(--sub)}
.timeline .step.now{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-bg)}
ul{padding-left:1.3em;margin:6px 0 12px}
li{margin:3px 0}
.check li{list-style:none;position:relative;padding-left:1.6em}
.check li::before{content:"☐";position:absolute;left:0;top:0;color:var(--teal)}
.matrix td{text-align:center}
.matrix td:first-child{text-align:left;font-weight:600;white-space:nowrap}
.m-full{background:#fde8e8}
.m-part{background:#fff4e0}
.m-use{background:#e6f4f1}
.m-view{background:#e8f0fb}
.m-none{background:#f3f4f6;color:#9aa3ad}
.legend span{display:inline-block;padding:2px 10px;border-radius:6px;margin:2px 6px 2px 0;font-size:13px}
svg.diagram{width:100%;height:auto;display:block}
footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--sub)}
a{color:var(--teal);word-break:break-all}
.two{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:720px){.two{grid-template-columns:1fr 1fr}.tier{grid-template-columns:150px 1fr}}
.prompt{background:#1c2533;color:#e6edf3;border-radius:10px;padding:12px 14px;font-size:14.5px;white-space:pre-wrap;word-break:break-word;margin:8px 0 14px}
.toc{display:grid;gap:8px;grid-template-columns:1fr}
.toc a{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;text-decoration:none;color:var(--ink)}
.toc a b{display:block;color:var(--navy)}
.toc a span{font-size:13.5px;color:var(--sub)}
@media(min-width:720px){.toc{grid-template-columns:1fr 1fr}}
