
:root{--bg:#fff;--fg:#1d2330;--muted:#5b6474;--line:#d9dee6;--accent:#0b6e4f;--warn-bg:#fff4e5;--warn-line:#f0b45b;--hl:#e8f5ef;--warn-fg:#a35200;--ye:#6a4bb3}
@media (prefers-color-scheme: dark){:root{--bg:#14171c;--fg:#e6e9ee;--muted:#a3abb8;--line:#2e3540;--accent:#4fc39a;--warn-bg:#2a2214;--warn-line:#8a6420;--hl:#1c3329;--warn-fg:#f0a85a;--ye:#b9a3f0}}
*{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}
main{max-width:980px;margin:0 auto;padding:16px}
a{color:var(--accent)}
.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:980px;margin:24px auto 0}
h1{font-size:1.5rem;line-height:1.4;margin:.6em 0}
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)}
.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:.92rem}
.emergency ul{margin:4px 0;padding-left:1.2em}
.note{font-size:.9rem;color:var(--muted)}
.small{font-size:.85rem;color:var(--muted)}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th,td{border:1px solid var(--line);padding:6px 8px;vertical-align:top;text-align:left}
th{background:color-mix(in srgb,var(--line) 35%,transparent)}
.week td,.week th{text-align:center;white-space:nowrap}
.week th:first-child{text-align:left;white-space:normal;min-width:6em}
.today{background:var(--hl);font-weight:700}
.kind{display:block;font-size:.75rem;color:var(--muted)}
.warn{display:block;font-size:.72rem;color:var(--warn-fg)}
.ye{display:block;font-size:.72rem;color:var(--ye)}
.wk{display:block;font-size:.72rem;color:var(--accent);font-weight:700}
.tag{display:inline-block;border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:0 10px;margin:0 6px 6px 0;font-size:.82rem}
.tag-kind{border-color:var(--line);color:var(--muted)}
.tag-ye{border-color:var(--ye);color:var(--ye)}
.kana{color:var(--muted);margin-top:-.6em;font-size:.85rem}
.toc a{margin-right:12px;font-size:.9rem}
.links{padding-left:1.2em}
.map{height:380px;border:1px solid var(--line);border-radius:6px;margin:10px 0}
.ad-slot{border:1px dashed var(--line);color:var(--muted);text-align:center;font-size:.8rem;padding:18px;margin:18px 0}
.ad{margin:18px 0;min-height:100px}
.empty{color:var(--muted)}
details{margin:14px 0}
.num{text-align:right;white-space:nowrap}
.code{font-size:.8rem;color:var(--muted);font-weight:400}
.pref-table th{white-space:nowrap;width:7em}
.prefs a,.prefs span{display:inline-block;margin:0 10px 4px 0;white-space:nowrap}
.filter{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.filter button{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;padding:2px 12px;font-size:.82rem;cursor:pointer}
.filter button.on{border-color:var(--accent);background:var(--hl);color:var(--accent);font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.co{border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.co h3{font-size:1rem;margin:0 0 4px}
.co p{margin:2px 0;font-size:.88rem}
.co .addr{color:var(--muted);font-size:.82rem}
.mk{display:inline-block;border-radius:4px;padding:0 6px;font-size:.75rem;color:#fff;background:#5b6474;margin-right:4px}
.mk-0{background:#0b6e4f}.mk-1{background:#2f5fa7}.mk-2{background:#a35200}
.mm{background:var(--hl);border-radius:6px;padding:8px 12px}
.near a{margin-right:10px;white-space:nowrap}
.map{height:420px}
.mk-3{background:#7a4b9c}
.topmap{height:480px}
.pin{background:#2f5fa7;border:2px solid #fff;border-radius:50%;box-shadow:0 0 2px rgba(0,0,0,.5)}
.pop div{font-size:.85rem;margin-top:2px}
.co:target{border-color:var(--accent);background:var(--hl)}
@media (max-width:600px){.map{height:340px}.topmap{height:400px}}
