:root{--green:#8EC21F;--green-d:#5a8a00;--fg:#333;--muted:#666;--line:#e5e5e5;--link:#0066cc}
*{box-sizing:border-box}
body{margin:0;color:var(--fg);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.85;font-size:16px}
.topbar{background:var(--green);height:40px;display:flex;align-items:center}
.topbar .inner{max-width:880px;margin:0 auto;width:100%;padding:0 20px;color:#fff;font-size:12.5px}
header.site{border-bottom:1px solid var(--line);padding:16px 20px}
header.site .inner{max-width:880px;margin:0 auto}
header.site a.home{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--fg)}
header.site img{height:32px;display:block}
header.site .doc{color:var(--muted);font-size:14px;border-left:1px solid var(--line);padding-left:14px}
main{max-width:820px;margin:0 auto;padding:32px 20px 72px}
a{color:var(--link)}
h1{font-size:27px;line-height:1.45;margin:0 0 22px}
h1 .adr-no{display:block;font-size:12.5px;color:var(--green-d);font-weight:700;margin-top:8px;letter-spacing:.05em}
.lead{color:var(--muted);margin:0 0 30px}
article h2{font-size:21px;border-left:5px solid var(--green);padding-left:12px;margin:40px 0 14px;line-height:1.5}
article h3{font-size:18px;margin:28px 0 10px}
article p{margin:15px 0}
article ul,article ol{padding-left:1.5em}article li{margin:6px 0}
article img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;margin:18px 0}
article pre{background:#f6f8fa;border:1px solid var(--line);border-radius:8px;padding:14px 16px;overflow:auto;font-size:13.5px;line-height:1.6}
article code{background:#f0f2ec;padding:2px 5px;border-radius:4px;font-size:13.5px}
article pre code{background:none;padding:0}
article table{border-collapse:collapse;width:100%;font-size:14px;margin:18px 0}
article th,article td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
article th{background:#f5f7f2}
.back{display:inline-block;margin-bottom:22px;color:var(--green-d);font-weight:600;text-decoration:none;font-size:14px}
.back:hover{text-decoration:underline}
.toc{list-style:none;padding:0;margin:0}
.toc li{border-bottom:1px solid var(--line)}
.toc a{display:block;padding:14px 4px;color:var(--fg);text-decoration:none}
.toc a:hover{color:var(--green-d)}
.techstack{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0 0 34px;padding:14px 16px;background:#f7faf0;border:1px solid #e4eecb;border-radius:8px}
.techstack .ts-label{font-size:12px;font-weight:700;color:var(--green-d);letter-spacing:.05em}
.techstack ul{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:0;padding:0}
.techstack li{display:flex;flex-direction:column;line-height:1.3}
.techstack li strong{font-size:14px}
.techstack li span{font-size:11.5px;color:var(--muted)}
.group{margin:34px 0}
.group h2{font-size:19px;color:var(--green-d);border-bottom:2px solid var(--green);padding-bottom:6px;margin:0 0 4px}
.group-desc{color:var(--muted);font-size:13.5px;margin:0 0 8px}
footer.site{border-top:3px solid var(--green);margin-top:56px;background:#fafafa}
footer.site .inner{max-width:880px;margin:0 auto;padding:20px;color:var(--muted);font-size:13px}
/* 会社名リンク(topbar/footer)を周囲テキスト色になじませる。partial 側の inline style="color:inherit" は
   公開 CSP style-src 'self' で無視されるため、CSP クリーンな stylesheet 側で inherit を効かせる */
.topbar .inner a,footer.site .inner a{color:inherit}

/* --- home hero (index.html) --- */
.hero-title{font-size:27px;line-height:1.45;margin:0 0 14px}
.hero{margin:6px 0 36px}
.hl-card{border:1.5px solid #c5dd8a;background:#f5faea;border-radius:12px;padding:20px;margin-bottom:13px}
.hl-row{display:flex;align-items:flex-start;gap:15px}
.hl-icon{flex:none;width:44px;height:44px;border-radius:10px;background:var(--green);display:flex;align-items:center;justify-content:center}
.hl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.hl-title{font-size:18px;margin:0;color:var(--fg);font-weight:700;border:0;padding:0}
.hl-desc{font-size:13.5px;color:#555;margin:0;line-height:1.85}
.hl-em{color:var(--fg);font-weight:700}
.badge{font-size:11.5px;font-weight:700;color:var(--green-d);background:#e7f1cf;padding:3px 10px;border-radius:20px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:13px}
.feat-card{border:1px solid var(--line);border-radius:10px;padding:17px 17px 15px;background:#fff}
.feat-icon{width:34px;height:34px;border-radius:8px;background:#f0f6e2;display:flex;align-items:center;justify-content:center;margin-bottom:11px}
.feat-title{font-size:15px;margin:0 0 5px;color:var(--fg);font-weight:700;border:0;padding:0;line-height:1.5}
.feat-desc{font-size:12.5px;color:var(--muted);margin:0;line-height:1.7}

/* --- article content (doc pages) --- */
.content table{border-collapse:collapse;width:100%;margin:16px 0;font-size:.92em}
.content th,.content td{border:1px solid #d0d7de;padding:6px 10px}
.content th{text-align:left}
.content th.c,.content td.c{text-align:center}
.content figure img{border-color:#e2e8f0}
.content figcaption{font-size:.88em;color:#57606a;margin-top:6px;text-align:center}
.content pre{border-color:#d0d7de;border-radius:6px;padding:14px;line-height:1.5;font-size:.85em}
.callout{border-left:4px solid;padding:12px 16px;margin:18px 0;border-radius:4px}
.callout-info{border-color:#2b6cb0;background:#eef5ff}
.callout-ok{border-color:#5a8a00;background:#f7faf0}
.callout-warn{border-color:#b45309;background:#fffbeb}
.callout-tip{border-color:#c2741c;background:#fff7ed}
.notebox{border:1px solid #d0d7de;background:#f6f8fa;border-radius:6px;padding:12px 16px;margin:18px 0}
.content p.mb8{margin:0 0 8px}
.content p.m0{margin:0}
.content ul.ul-tight{margin:0;padding-left:1.2em}

/* r5b0378 */
