:root {
  --fg:#1f2421; --bg:#f7f6f1; --bg-card:#ffffff; --muted:#5f6b64; --faint:#8a948d;
  --green:#1f5138; --green-soft:#2f6b4d; --navy:#1f3a5f; --gold:#9a7220; --gold-soft:#b8923a;
  --border:#e2e0d6; --border-strong:#cfccbe; --shade:rgba(31,81,56,0.05);
  --impl-bg:rgba(31,81,56,0.07);
}
@media (prefers-color-scheme: dark){:root{
  --fg:#e4e6e1; --bg:#141715; --bg-card:#1d211e; --muted:#9aa49c; --faint:#76817a;
  --green:#6cc398; --green-soft:#4f9e76; --navy:#7fa9d8; --gold:#d2ab5f; --gold-soft:#b8923a;
  --border:#2c322e; --border-strong:#3a423c; --shade:rgba(108,195,152,0.06);
  --impl-bg:rgba(108,195,152,0.08);
}}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Noto Sans JP","Helvetica Neue",sans-serif;
  color:var(--fg);background:var(--bg);line-height:1.85;margin:0;font-size:16.5px;
  font-feature-settings:"palt";letter-spacing:0.01em;
}
.container{max-width:820px;margin:0 auto;padding:0 1.3rem;}
a{color:var(--green-soft);text-underline-offset:2px;}
strong{font-weight:700;}
/* topbar */
.topbar{border-bottom:1px solid var(--border);background:var(--bg-card);}
.topbar .container{display:flex;align-items:center;gap:0.6rem;padding-top:0.9rem;padding-bottom:0.9rem;font-size:0.86rem;}
.topbar a{text-decoration:none;font-weight:700;color:var(--green);}
.topbar a:hover{text-decoration:underline;}
.topbar .sep{color:var(--faint);}
.topbar .cur{color:var(--muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* header card */
header.doc{padding:2.2rem 0 0.5rem;}
.badge{display:inline-block;font-size:0.74rem;font-weight:800;letter-spacing:0.05em;color:#fff;background:var(--green);padding:0.2rem 0.65rem;border-radius:5px;margin-bottom:0.9rem;}
@media (prefers-color-scheme: dark){.badge{color:#141715;}}
.badge.origin{background:var(--navy);margin-left:0.4rem;}
h1{font-size:clamp(1.5rem,3.6vw,2.05rem);line-height:1.32;margin:0 0 0.6rem;font-weight:800;letter-spacing:-0.01em;}
.docmeta{color:var(--muted);font-size:0.92rem;margin:0 0 1rem;}
.docmeta b{color:var(--fg);font-weight:700;}
.chips{display:flex;flex-wrap:wrap;gap:0.4rem;margin:0.6rem 0 0.2rem;}
.chip{font-size:0.74rem;color:var(--muted);background:var(--shade);border:1px solid var(--border);border-radius:999px;padding:0.2rem 0.6rem;font-feature-settings:normal;}
.srcline{font-size:0.85rem;color:var(--faint);margin:0.9rem 0 0;}
.srcline a{font-weight:700;}
hr.rule{border:none;border-top:2px solid var(--border-strong);margin:1.4rem 0 0.4rem;}
/* content */
main.content{padding:0.5rem 0 3rem;}
.lede{font-size:1.04rem;color:var(--muted);border-left:3px solid var(--gold-soft);padding:0.2rem 0 0.2rem 1.05rem;margin:1.4rem 0 1.6rem;}
.content h3{font-size:1.16rem;margin:2.1rem 0 0.6rem;font-weight:700;line-height:1.45;padding-bottom:0.3rem;border-bottom:1px solid var(--border);}
.content h4{font-size:1rem;margin:1.4rem 0 0.3rem;font-weight:700;}
.content p{margin:0.85em 0;}
.content ul,.content ol{padding-left:1.4rem;margin:0.7rem 0;}
.content li{margin:0.4rem 0;}
.tbl-scroll{overflow-x:auto;margin:1.5rem 0;-webkit-overflow-scrolling:touch;}
table{border-collapse:collapse;width:100%;font-size:0.9rem;min-width:440px;}
caption{text-align:left;font-size:0.82rem;color:var(--faint);margin-bottom:0.5rem;}
th,td{text-align:left;padding:0.55rem 0.8rem;border-bottom:1px solid var(--border);vertical-align:top;}
thead th{font-weight:700;background:var(--shade);border-bottom:2px solid var(--border-strong);white-space:nowrap;}
tr:last-child td{border-bottom:none;}
.implication{background:var(--impl-bg);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:9px;padding:1.1rem 1.3rem;margin:1.8rem 0 1rem;}
.implication .label{display:block;font-size:0.78rem;font-weight:800;letter-spacing:0.05em;color:var(--green);margin-bottom:0.5rem;}
.implication ul{margin:0.3rem 0;padding-left:1.2rem;}
.implication li{margin:0.4rem 0;}
/* footer */
footer{border-top:1px solid var(--border);color:var(--faint);font-size:0.82rem;padding:1.6rem 0 3rem;}
footer a{font-weight:700;}
/* index */
.hero{padding:2.6rem 0 1rem;}
.hero .eyebrow{font-size:0.8rem;font-weight:700;letter-spacing:0.14em;color:var(--gold);text-transform:uppercase;margin-bottom:0.7rem;}
.hero p.intro{color:var(--muted);font-size:1rem;margin:0.8rem 0 0;}
.idx-group{margin:2.6rem 0 0;}
.idx-group h2{font-size:1.25rem;font-weight:800;margin:0 0 0.2rem;padding-bottom:0.4rem;border-bottom:2px solid var(--border-strong);}
.idx-group .gd{color:var(--muted);font-size:0.9rem;margin:0.5rem 0 1.2rem;}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:1rem;}
a.card{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--green);border-radius:10px;padding:1.1rem 1.2rem;transition:border-color .15s,transform .12s,box-shadow .15s;}
a.card:hover{border-left-color:var(--gold-soft);transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.07);}
a.card .ctop{display:flex;flex-wrap:wrap;gap:0.4rem;align-items:center;margin-bottom:0.55rem;}
a.card .cat{font-size:0.7rem;font-weight:800;letter-spacing:0.04em;color:var(--green);background:var(--shade);border:1px solid var(--border);border-radius:999px;padding:0.15rem 0.55rem;}
a.card .org{font-size:0.7rem;font-weight:700;color:var(--navy);}
a.card .ct{font-size:1.02rem;font-weight:800;line-height:1.4;margin:0 0 0.1rem;color:var(--fg);}
a.card .cmeta{font-size:0.78rem;color:var(--faint);margin-bottom:0.5rem;}
a.card .cdesc{font-size:0.88rem;color:var(--muted);margin:0;flex:1;}
a.card .cgo{font-size:0.8rem;font-weight:700;color:var(--green-soft);margin-top:0.7rem;}
.related{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem;margin:2.8rem 0 0;}
.related .rt{font-weight:800;font-size:0.9rem;color:var(--gold);margin-bottom:0.3rem;}
@media (max-width:560px){.cards{grid-template-columns:1fr;}}
