:root{--bg:#fbfaf7;--fg:#1d2327;--muted:#5d6670;--line:#e3e0d8;--card:#fff;--accent:#1f78b4;--warm:#d95f02;--me:#2b2b2b;--bar:#9fb7c9}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.75 -apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif}
a{color:var(--accent)}
.wrap{max-width:980px;margin:0 auto;padding:0 16px}
header.top{background:#fff;border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.logo{font-weight:700;font-size:1.15rem;color:var(--fg);text-decoration:none}
header nav a{margin-left:14px;color:var(--muted);text-decoration:none;font-size:.92rem}
.bc{font-size:.85rem;color:var(--muted);margin:14px 0 4px}
.bc a{color:var(--muted)}
h1{font-size:1.6rem;line-height:1.35;margin:.4em 0 .5em}
h1 .gun{font-size:.9rem;color:var(--muted);font-weight:400}
h2{font-size:1.2rem;border-left:4px solid var(--accent);padding-left:10px;margin:2em 0 .6em}
h3{font-size:1rem;margin:1.4em 0 .4em}
section{margin-bottom:1.2em}
.lead{font-size:1.05rem}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.kpis div{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.kpis span{display:block;font-size:.8rem;color:var(--muted)}
.kpis b{font-size:1.45rem;font-variant-numeric:tabular-nums}
.kpis small{display:block;font-size:.75rem;color:var(--muted)}
b.neg{color:var(--warm)} b.pos{color:var(--accent)}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0}
table{border-collapse:collapse;width:100%;background:var(--card);font-size:.9rem}
th,td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;white-space:nowrap}
thead th{background:#f3f1ec;font-size:.8rem;color:var(--muted);font-weight:600}
td.num{text-align:right;font-variant-numeric:tabular-nums}
td small,th small{color:var(--muted)}
caption{text-align:left;font-size:.85rem;color:var(--muted);padding:4px 0}
tr.me{background:#fff6dd}
table.sortable thead th{cursor:pointer;user-select:none}
table.sortable thead th:after{content:" ⇅";opacity:.35}
.pctl{min-width:110px}
.track{display:block;position:relative;height:6px;background:linear-gradient(90deg,#e7eef4,#9fb7c9);border-radius:3px;margin:0 6px}
.dot{position:absolute;top:-4px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--me);border:2px solid #fff}
.note,.def{font-size:.85rem;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips a{display:inline-block;padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;text-decoration:none;font-size:.88rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 20px}
.grid3 ol{padding-left:1.3em;margin:0;font-size:.92rem}
svg.chart{width:100%;height:auto;display:block;margin:6px 0;font-size:12px}
svg .bm{fill:#7aa6c8} svg .bf{fill:#e3a07a}
svg .ref{fill:none;stroke:#333;stroke-width:1.2;stroke-dasharray:3 2}
svg .lab{fill:var(--fg);font-size:12px} svg .lab.b{font-weight:700}
svg .ax{fill:var(--muted);font-size:11px}
svg .val{fill:var(--fg);font-size:11.5px}
svg .bar{fill:var(--bar)} svg .bar.me{fill:#2b4b63}
svg .bar.pos{fill:#7fb0d6} svg .bar.neg{fill:#ecaa7c} svg .bar.me.pos{fill:#1f78b4} svg .bar.me.neg{fill:#d95f02}
svg .zero{stroke:#999;stroke-width:1}
.mapwrap{background:#eef3f6;border:1px solid var(--line);border-radius:8px;padding:8px}
svg.map{width:100%;height:auto;max-height:560px;display:block}
svg.map path{stroke:#fff;stroke-width:.8;stroke-linejoin:round}
svg.map path.me{stroke:#111;stroke-width:2.2}
svg.map a path:hover{stroke:#111;stroke-width:1.5}
svg.map .ml{font-size:11px;fill:#222;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}
svg.map .ml.me{font-weight:700;font-size:13px}
.legend{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--muted);margin-top:6px;flex-wrap:wrap}
.legend span{display:inline-block;width:22px;height:10px;border:1px solid #ccc}
.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cards a{display:block;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-decoration:none;color:var(--fg);height:100%}
.cards small{display:block;color:var(--muted)}
.search{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0;position:relative}
.search label{font-weight:600;display:block;margin-bottom:4px}
.search input{width:100%;font-size:1rem;padding:8px 10px;border:1px solid #bbb;border-radius:6px}
#qr{list-style:none;padding:0;margin:6px 0 0}
#qr li a{display:block;padding:4px 6px;text-decoration:none}
.src{border-top:1px solid var(--line);margin-top:2.5em;font-size:.82rem;color:var(--muted)}
.src h2{font-size:.95rem;border:0;padding:0}
.src a{word-break:break-all}
dl dt{font-weight:700;margin-top:.6em} dl dd{margin-left:0;color:var(--muted)}
footer.foot{margin-top:40px;border-top:1px solid var(--line);background:#fff;font-size:.82rem;color:var(--muted);padding:12px 0}
@media (max-width:700px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .grid3,.cards{grid-template-columns:1fr}
  h1{font-size:1.35rem}
  header nav a{margin-left:0;margin-right:12px}
}
