
:root{--paper:#F7F8F9;--ink:#131E28;--sub:#66727C;--rule:#D5DCE1;--panel:#EEF1F4;
--stop:#B5372B;--stop-bg:#F6E9E7;--keep:#2C5F7C;--keep-bg:#E7EEF3;--amber:#9A6B14;--amber-bg:#F4EDDD;
--serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
--sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.85;-webkit-font-smoothing:antialiased}
a{color:var(--keep);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1000px;margin:0 auto;padding:0 20px}
.masthead{border-bottom:3px double var(--ink);padding:30px 0 14px;text-align:center}
.masthead .title{font-family:var(--serif);font-weight:700;font-size:clamp(24px,4vw,34px);letter-spacing:.14em}
.masthead .title a{color:var(--ink);display:inline-flex;align-items:center;gap:14px}
.mast-mark{width:.95em;height:.95em;flex:none}
.masthead .sub{font-size:11px;letter-spacing:.32em;color:var(--sub);margin-top:4px;text-transform:uppercase}
nav.gnav{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:9}
nav.gnav ul{display:flex;gap:4px;list-style:none;justify-content:center;flex-wrap:wrap;padding:8px 0}
nav.gnav a{display:block;padding:4px 12px;font-size:13px;letter-spacing:.06em;color:var(--ink);border-radius:2px}
nav.gnav a:hover{background:var(--panel);text-decoration:none}
nav.gnav a.act{background:var(--ink);color:#fff}
main{padding:36px 0 72px}
h1.page{font-family:var(--serif);font-size:24px;letter-spacing:.08em;border-bottom:1px solid var(--ink);padding-bottom:10px;margin-bottom:8px}
.pagenote{font-size:12.5px;color:var(--sub);margin-bottom:24px}
h2.sec{font-family:var(--serif);font-size:18px;letter-spacing:.06em;margin:36px 0 14px;padding-left:12px;border-left:4px solid var(--keep)}
.strip-box{border:1px solid var(--rule);background:#fff;padding:18px 22px;margin:26px 0}
.strip-label{font-size:12px;letter-spacing:.18em;color:var(--sub);margin-bottom:8px}
.strip-label b{color:var(--stop);font-size:20px;font-family:var(--serif);letter-spacing:.04em;margin-right:6px}
.strip{display:flex;gap:5px;flex-wrap:wrap;align-items:flex-end;min-height:34px}
.tick{width:7px;height:30px;background:var(--stop);opacity:.92;border-radius:1px}
.tick.part{height:18px;background:var(--amber)}
.strip-cap{font-size:11.5px;color:var(--sub);margin-top:8px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}
.stat{background:var(--panel);padding:14px 16px;border-top:2px solid var(--keep)}
.stat.neg{border-top-color:var(--stop)}
.stat .n{font-family:var(--serif);font-size:26px;line-height:1.2}
.stat .l{font-size:11.5px;color:var(--sub);letter-spacing:.06em}
table.log{width:100%;border-collapse:collapse;background:#fff;font-size:13px}
table.log th{background:var(--ink);color:#fff;text-align:left;padding:8px 10px;font-size:11.5px;letter-spacing:.08em;white-space:nowrap}
table.log td{padding:9px 10px;border-bottom:1px solid var(--rule);vertical-align:top}
table.log tr:hover td{background:var(--panel)}
.rid{font-family:var(--mono);font-size:11.5px;color:var(--sub);white-space:nowrap}
.rdate{font-family:var(--mono);font-size:12px;white-space:nowrap}
.badge{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:2px;letter-spacing:.04em;white-space:nowrap}
.st-on{background:var(--stop-bg);color:var(--stop)}
.st-off{background:var(--keep-bg);color:var(--keep)}
.st-part{background:var(--amber-bg);color:var(--amber)}
.st-unk{background:var(--panel);color:var(--sub)}
.b-neg{background:var(--stop-bg);color:var(--stop)}
.b-pos{background:var(--keep-bg);color:var(--keep)}
.b-t{background:var(--panel);color:var(--sub)}
.b-track{background:var(--amber-bg);color:var(--amber)}
.brand{display:inline-block;font-size:11px;border:1px solid var(--rule);padding:0 6px;border-radius:2px;margin:1px 2px 1px 0;background:#fff;white-space:nowrap}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0;align-items:center}
.filters select,.filters input{font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--rule);border-radius:2px;background:#fff;color:var(--ink)}
.filters input{min-width:220px}
.fcount{font-size:12px;color:var(--sub)}
.detail-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px}
.detail-head h1{font-family:var(--serif);font-size:26px;letter-spacing:.04em}
dl.kv{display:grid;grid-template-columns:160px 1fr;border-top:1px solid var(--rule);margin:18px 0;background:#fff}
dl.kv dt{padding:10px 14px;border-bottom:1px solid var(--rule);background:var(--panel);font-size:12px;letter-spacing:.06em;color:var(--sub)}
dl.kv dd{padding:10px 14px;border-bottom:1px solid var(--rule);font-size:13.5px}
.factbox{background:#fff;border:1px solid var(--rule);border-left:4px solid var(--keep);padding:14px 18px;margin:14px 0}
.factbox .fb-l{font-size:11px;letter-spacing:.14em;color:var(--keep);font-weight:700;margin-bottom:4px}
.factbox.guess{border-left-color:var(--amber)}
.factbox.guess .fb-l{color:var(--amber)}
.factbox p{font-size:13.5px}
.tl-year{font-family:var(--serif);font-size:22px;letter-spacing:.1em;margin:34px 0 10px;border-bottom:1px solid var(--ink);padding-bottom:6px}
.tl{list-style:none;border-left:2px solid var(--ink);margin-left:6px;padding-left:22px}
.tl li{position:relative;margin-bottom:16px;background:#fff;border:1px solid var(--rule);padding:10px 14px}
.tl li::before{content:"";position:absolute;left:-28px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--paper);border:3px solid var(--stop)}
.tl li.pos::before{border-color:var(--keep)}
.tl .tl-d{font-family:var(--mono);font-size:12px;color:var(--sub)}
.tl .tl-t{font-weight:700;font-size:14px}
.tl .tl-t a{color:var(--ink)}
.tl .tl-b{font-size:12.5px;color:var(--sub)}
.mx-cell{text-align:center;font-weight:700}
.mx-stop{color:var(--stop)}.mx-ok{color:var(--keep)}.mx-add{color:var(--keep)}.mx-na{color:var(--rule)}
.legend{font-size:12px;color:var(--sub);margin:10px 0}
/* 文庫 */
.lib-card{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--keep);padding:18px 22px;margin-bottom:14px}
.lib-card .lc-meta{font-size:11.5px;color:var(--sub);margin-bottom:4px}
.lib-card h3{font-family:var(--serif);font-size:17px;letter-spacing:.04em;margin-bottom:6px}
.lib-card h3 a{color:var(--ink)}
.lib-card .lc-sum{font-size:13px;color:var(--sub)}
.p-pill{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:2px;background:var(--keep-bg);color:var(--keep);letter-spacing:.04em;margin-right:6px}
.p-pill.p実務{background:var(--stop-bg);color:var(--stop)}
.p-pill.p制度{background:var(--panel);color:var(--sub)}
.p-pill.p代替{background:var(--amber-bg);color:var(--amber)}
article.article{background:#fff;border:1px solid var(--rule);padding:34px 38px;max-width:820px}
article.article h1{font-family:var(--serif);font-size:26px;letter-spacing:.04em;line-height:1.5;margin-bottom:6px}
.art-meta{font-size:12px;color:var(--sub);border-bottom:1px solid var(--rule);padding-bottom:14px;margin-bottom:22px}
.art-body h2{font-family:var(--serif);font-size:19px;letter-spacing:.05em;margin:30px 0 10px;padding-left:12px;border-left:4px solid var(--keep)}
.art-body h3{font-size:15.5px;font-weight:700;margin:22px 0 8px}
.art-body p{margin-bottom:14px;text-align:justify;font-size:14.5px}
.art-body ul,.art-body ol{margin:0 0 14px 24px;font-size:14.5px}
.art-body li{margin-bottom:6px}
.art-body blockquote{border-left:3px solid var(--rule);padding:4px 16px;color:var(--sub);margin:14px 0;font-size:13.5px}
.art-body table{width:100%;border-collapse:collapse;font-size:13px;margin:14px 0}
.art-body th{background:var(--ink);color:#fff;padding:7px 10px;text-align:left;font-size:12px}
.art-body td{padding:8px 10px;border-bottom:1px solid var(--rule)}
.art-foot{border-top:1px solid var(--rule);margin-top:26px;padding-top:12px;font-size:12px;color:var(--sub)}
.art-body figure{margin:20px 0;border:1px solid var(--rule);background:var(--paper);padding:16px}
.art-body figure svg{max-width:100%;height:auto;display:block;margin:0 auto}
.art-body figcaption{font-size:11.5px;color:var(--sub);margin-top:8px;text-align:center}
.nl-box{border:1px solid var(--ink);background:#fff;padding:20px 24px;margin:26px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.nl-box .nl-t{font-family:var(--serif);font-size:16px;letter-spacing:.06em;font-weight:700}
.nl-box .nl-d{font-size:12.5px;color:var(--sub);margin-top:2px}
.notebox{background:var(--amber-bg);border-left:4px solid var(--amber);padding:12px 16px;font-size:12.5px;margin:16px 0}
.policy-list{background:#fff;border:1px solid var(--ink);padding:22px 28px;margin:18px 0}
.policy-list ol{margin-left:22px}.policy-list li{margin-bottom:10px;font-size:13.5px}
.btn{display:inline-block;background:var(--ink);color:#fff;padding:8px 18px;border-radius:2px;font-size:13px;letter-spacing:.06em}
.btn:hover{opacity:.85;text-decoration:none}
footer{border-top:3px double var(--ink);padding:20px 0 40px;font-size:11.5px;color:var(--sub)}
footer .frow{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
@media(max-width:640px){dl.kv{grid-template-columns:1fr}dl.kv dt{border-bottom:none;padding-bottom:2px}article.article{padding:22px 18px}}
