:root{--ink:#1c2a2b;--paper:#f6f8f7;--accent:#17675c;--line:#bfcac6;--tint:#e3eeea;--muted:#5b6270}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.8 system-ui,-apple-system,"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif;word-break:auto-phrase;overflow-wrap:anywhere}
a{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.4rem .7rem;z-index:9}
header.site{border-bottom:1px solid var(--line);background:#fff}.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;min-height:56px}.logo{font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none}
nav.main{display:flex;flex-wrap:wrap;gap:.2rem .9rem}nav.main a{color:var(--ink);text-decoration:none;padding:.5rem 0;min-height:44px;display:inline-flex;align-items:center}nav.main a[aria-current]{color:var(--accent);font-weight:700}
main{padding:1.2rem 0 3rem}h1{font-size:1.7rem;line-height:1.35;margin:.6rem 0 .8rem}h2{font-size:1.25rem;margin:2rem 0 .8rem}h3{font-size:1.05rem;margin:1.2rem 0 .4rem}
.crumbs{font-size:.85rem;color:var(--muted)}.crumbs a{color:var(--muted)}.crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.3rem}.crumbs li+li::before{content:"›";margin-right:.3rem}
.lede{font-size:1.05rem;max-width:46em}.muted{color:var(--muted);font-size:.9rem}.note{font-size:.85rem;color:var(--muted)}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:.9rem 1rem}.card h3{margin:.1rem 0 .3rem}.card a{text-decoration:none}
.badge{display:inline-block;font-size:.75rem;line-height:1.5;border:1px solid var(--line);border-radius:3px;padding:0 .4rem;margin-right:.3rem;background:var(--tint);color:var(--ink)}.badge.law{border-color:var(--accent)}.badge.check{background:#fff4d6;border-color:#a77b00}
.tbl{width:100%;border-collapse:collapse;background:#fff;font-size:.95rem}.tbl th,.tbl td{border:1px solid var(--line);padding:.45rem .55rem;text-align:left;vertical-align:top}.tbl th{background:var(--tint);font-weight:600}.scroll{overflow-x:auto}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tools{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0 1rem}.tools input,.tools select{font:inherit;padding:.5rem .6rem;border:1px solid var(--line);border-radius:4px;min-height:44px;background:#fff;max-width:100%}
.btn{display:inline-flex;align-items:center;min-height:44px;padding:.4rem .9rem;border:1px solid var(--accent);border-radius:4px;background:#fff;color:var(--accent);font:inherit;cursor:pointer;text-decoration:none}
.src{font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);margin-top:1rem;padding-top:.5rem}
ol.tasks li{margin:.25rem 0}.bar-in{display:inline-block;height:.55rem;background:var(--accent);opacity:.7;vertical-align:middle;margin-left:.4rem}
footer.site{border-top:1px solid var(--line);background:#fff;font-size:.88rem;padding:1.2rem 0 2rem}footer.site a{color:var(--ink);display:inline-block;min-height:32px}
@media (max-width:640px){h1{font-size:1.4rem}.tbl{font-size:.88rem}.bar{padding:.3rem 0}}
.sec>h2{border-left:6px solid var(--accent);padding-left:.6rem;background:linear-gradient(90deg,var(--tint),transparent 70%)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}[hidden]{display:none!important}
.tlist{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.tlist li{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;border-bottom:1px solid var(--line);padding:.35rem 0}.tlist a{font-weight:600;min-height:44px;display:inline-flex;align-items:center}.tlist .muted{flex:1 1 12rem}
.hero{border-left:6px solid var(--accent);background:linear-gradient(90deg,var(--tint),transparent 80%);padding:.8rem 1rem;margin:.4rem 0 1rem}
.tbl td.num{text-align:center}
@media (max-width:640px){.note,.badge,.crumbs,.src,.muted{font-size:.875rem}footer.site a,.crumbs a,.src a,.note a{min-height:44px;display:inline-flex;align-items:center}}