:root{color-scheme:light dark;--bg:#fff;--fg:#1d2330;--muted:#5b6474;--line:#d9dee6;--accent:#0b6e4f;--warn-bg:#fff4e5;--warn-line:#f0b45b;--hl:#e8f5ef;--up:#0b6e4f;--down:#b3402a}
@media (prefers-color-scheme: dark){:root{--bg:#14171c;--fg:#e6e9ee;--muted:#a3abb8;--line:#2e3540;--accent:#4fc39a;--warn-bg:#2a2214;--warn-line:#8a6420;--hl:#1c3329;--up:#4fc39a;--down:#f08a74}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;line-height:1.7}
a{color:var(--accent)}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.site-header{border-bottom:1px solid var(--line);padding:10px 16px}
.site-name{font-weight:700;text-decoration:none;color:var(--fg)}
.site-footer{border-top:1px solid var(--line);padding:16px;font-size:.85rem;color:var(--muted);max-width:1080px;margin:24px auto 0}
h1{font-size:1.5rem;line-height:1.4;margin:.6em 0}
h1 .sub{display:block;font-size:.95rem;font-weight:400;color:var(--muted)}
h2{font-size:1.2rem;margin-top:1.8em;border-left:4px solid var(--accent);padding-left:8px}
.crumb{font-size:.85rem;color:var(--muted);margin-top:12px}
.lead{font-size:1.02rem}
.emergency{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;padding:8px 14px;margin:14px 0;font-size:.9rem}
.small{font-size:.85rem;color:var(--muted)}
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{border:1px solid var(--line);padding:6px 8px;vertical-align:top;text-align:left;white-space:nowrap}
th{background:color-mix(in srgb,var(--line) 35%,transparent)}
table.sortable th{cursor:pointer;user-select:none}
table.sortable th.asc::after{content:" ▲";font-size:.7em}
table.sortable th.desc::after{content:" ▼";font-size:.7em}
.num{text-align:right;font-variant-numeric:tabular-nums}
.up{color:var(--up)}.down{color:var(--down)}
.kind{display:block;font-size:.75rem;color:var(--muted)}
.ad-slot{border:1px dashed var(--line);color:var(--muted);text-align:center;padding:24px 8px;margin:18px 0;font-size:.8rem}
.btn{display:inline-block;border:1px solid var(--accent);border-radius:6px;padding:8px 14px;text-decoration:none}
.pref-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 16px}
.filters{margin:10px 0;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
select{font:inherit;padding:2px 4px}
tr:target td{background:var(--hl)}
tr[id]{scroll-margin-top:12px}
.hero{display:flex;align-items:center;gap:16px;margin:14px 0 6px;padding:20px 24px;border-radius:10px;background:#fef8ea}
.hero h1{flex:1 1 auto;min-width:0;margin:0;color:#1d2330;font-size:clamp(1.3rem,2.6vw,2rem)}
.hero h1 .sub{color:#5b6474;margin-top:.3em}
.hero img{flex:0 0 auto;display:block;width:min(36%,300px);height:auto}
@media (max-width:640px){.hero{flex-direction:column;align-items:stretch;padding:16px}.hero img{width:72%;max-width:260px;align-self:flex-end}}
.nb{display:inline-block}
/* スマホで横スクロールしても団体名が見えるように */
th.name,td.name{position:sticky;left:0;z-index:1;background:var(--bg)}
tr:target td.name{background:var(--hl)}
