:root{--bg:#f7f8fa;--surface:#fff;--text:#1f2933;--muted:#5b6774;--line:#d9dee5;--primary:#0b5ed7;--primary-ink:#fff;--accent:#e8590c;--ok:#1b7f4c;--warn-bg:#fff4e5;--warn-ink:#8a4b00;--closed:#8d99a6;--radius:10px;--max:1080px;color-scheme:light}*{box-sizing:border-box}html{font-size:16px}body{background:var(--bg);color:var(--text);margin:0;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Meiryo,system-ui,sans-serif;line-height:1.7}a{color:var(--primary)}a:hover{text-decoration-thickness:2px}.container{max-width:var(--max);margin:0 auto;padding:0 16px}.site-header{background:var(--surface);border-bottom:1px solid var(--line)}.site-header .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.brand{color:var(--text);font-size:1.15rem;font-weight:700;text-decoration:none}.brand small{color:var(--muted);font-size:.8rem;font-weight:400;display:block}.site-nav a{margin-left:16px;font-weight:600;text-decoration:none}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:48px;padding:24px 0;font-size:.85rem}main{padding:24px 0 8px}h1{margin:0 0 8px;font-size:1.6rem;line-height:1.35}h2{margin:28px 0 8px;font-size:1.2rem}.lead{color:var(--muted);margin:0 0 16px}.notice{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--radius);border:1px solid #f3d3a8;margin:12px 0;padding:10px 14px;font-size:.9rem}.notice p{margin:4px 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:12px 0;padding:16px}.card h3{margin:0 0 6px;font-size:1.05rem;line-height:1.4}.card h3 a{color:var(--text);text-decoration:none}.card h3 a:hover{color:var(--primary);text-decoration:underline}.meta{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:6px 0;font-size:.85rem;display:flex}.badges{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.badge{border:1px solid var(--line);color:var(--muted);background:#f1f3f5;border-radius:999px;padding:2px 8px;font-size:.75rem;display:inline-block}.badge.open{color:var(--ok);background:#e6f4ec;border-color:#bfe3cd}.badge.upcoming,.badge.year_round{color:var(--primary);background:#e8f0fe;border-color:#c5d6fb}.badge.closed{color:var(--closed);background:#eceff2}.badge.soon{color:var(--accent);background:#fdebe3;border-color:#f8c6ae;font-weight:700}.badge.scope-national{color:#7a5a00;background:#fff7db;border-color:#f0dc95;font-weight:700}.badge.scope-prefecture,.badge.scope-municipality,.badge.scope-local{color:#3b4a8c;background:#eef2ff;border-color:#cfd8f7;font-weight:700}.badge.stale{background:var(--warn-bg);color:var(--warn-ink);border-color:#f3d3a8}.summary{margin:8px 0}.links{flex-wrap:wrap;gap:8px 16px;font-size:.9rem;display:flex}.btn{border:1px solid var(--primary);color:var(--primary);background:var(--surface);border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;display:inline-block}.btn.primary{background:var(--primary);color:var(--primary-ink)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.filters{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:10px;padding:12px 16px;display:grid}.filters label{color:var(--muted);font-size:.8rem;display:block}.filters select,.filters input{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;padding:7px 8px;font-size:.95rem}.filters .actions{gap:8px;display:flex}.pager{justify-content:center;align-items:center;gap:12px;margin:20px 0;display:flex}.kv{grid-template-columns:9em 1fr;gap:6px 12px;margin:12px 0;display:grid}.kv dt{color:var(--muted);font-size:.9rem}.kv dd{margin:0}.pre{white-space:pre-wrap}.services{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.service{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px}.service small{color:var(--muted);display:block}.fallback{background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted);padding:24px}.pitch{border-left:4px solid var(--primary);background:#eef6ff;border-radius:6px;margin:12px 0;padding:10px 14px}@media (width<=600px){.kv{grid-template-columns:1fr}h1{font-size:1.35rem}}
