:root{--bg:#f7f9fb;--fg:#1a2b3c;--muted:#5b6b7b;--brand:#0b6b5e;--brand-d:#085044;--accent:#c2410c;--card:#fff;--border:#dde5ec}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;line-height:1.95;font-size:16.5px;color:var(--fg);background:var(--bg)}
a{color:var(--brand-d)}
p{margin:.95em 0}
ul,ol{margin:.6em 0;padding-left:1.4em}
li{margin:.5em 0}
.site-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.2rem;background:var(--brand);color:#fff}
.site-header .brand{color:#fff;font-weight:700;text-decoration:none;font-size:1.1rem}
.site-header .nav-shindan{color:#fff;background:var(--accent);padding:.4rem .9rem;border-radius:6px;text-decoration:none;font-weight:700}
.site-header .site-nav{display:flex;gap:.55rem;align-items:center}
.site-header .nav-fav{color:#fff;text-decoration:none;font-weight:700;padding:.4rem .7rem;border-radius:6px;border:1px solid rgba(255,255,255,.55)}
.site-header .nav-fav:hover{background:rgba(255,255,255,.14)}
main{max-width:820px;margin:0 auto;padding:1.2rem}
h1{font-size:1.5rem;line-height:1.5;margin:.3em 0 .8em}
h2{font-size:1.2rem;margin:2.4rem 0 .9rem;border-left:5px solid var(--brand);padding-left:.6rem;line-height:1.5}
h3{font-size:1.05rem;margin:1.2rem 0 .5rem;line-height:1.5}
.summary-block{background:#eef6f4;border:1px solid #cfe6e0;border-radius:10px;padding:1.3rem 1.5rem;margin:1.2rem 0}
.summary-block .disclaimer{color:var(--muted);font-size:.9rem}
.overview-table{width:100%;border-collapse:collapse;margin:.9rem 0 .2rem;background:#fff}
.overview-table th,.overview-table td{border:1px solid #cfe6e0;padding:.6rem .8rem;text-align:left;vertical-align:top;line-height:1.7;overflow-wrap:anywhere}
.overview-table thead th{background:#dcefe9;font-size:.92rem;white-space:nowrap}
.overview-table tbody th{font-weight:700;background:#f5fbf9;width:11rem}
.overview-table tbody th a{color:var(--brand-d);text-decoration:none}
.overview-table tbody th a:hover{text-decoration:underline}
.program-card,.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.3rem 1.5rem;margin:1.2rem 0;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.program-card h3{margin:.2rem 0 .7rem}
.program-card .card-lead{margin:.4rem 0 .9rem;font-size:1.1rem;font-weight:500;line-height:1.85;color:var(--fg)}
table.facts{width:100%;border-collapse:collapse;margin:.6rem 0 .2rem;line-height:1.75}
.facts th,.facts td{border:1px solid var(--border);padding:.55rem .8rem;text-align:left;vertical-align:top}
.facts th{width:7.5rem;background:#f1f4f7;color:#41505f;font-weight:700}
.facts td{overflow-wrap:anywhere}
@media(max-width:560px){
  .facts tr{display:block;border:1px solid var(--border);border-radius:6px;margin:.55rem 0;overflow:hidden}
  .facts th,.facts td{display:block;width:auto;border:0;padding:.45rem .8rem}
  .facts th{background:#eef6f4;padding-bottom:.15rem}
  .facts td{padding-top:.15rem}
  .overview-table tbody th{width:auto}
  .overview-table th,.overview-table td{padding:.5rem .6rem;font-size:.93rem}
}
.program-card .source a,.card a{display:inline-block;margin-top:.5rem;font-weight:600}
.program-card .source .checked-date{display:block;margin-top:.25rem;color:var(--muted);font-size:.78rem;font-weight:400}
.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0 .2rem;align-items:center}
.card-actions .fav-toggle{display:inline-flex;align-items:center;gap:.3rem;background:#fff;border:1.5px solid var(--border);color:var(--fg);border-radius:999px;padding:.35rem .85rem;font-size:.9rem;font-weight:700;cursor:pointer}
.card-actions .fav-toggle:hover{border-color:var(--brand)}
.card-actions .fav-toggle .fav-star{color:#b9a200;font-size:1.05rem;line-height:1}
.card-actions .fav-toggle.is-faved{background:#fff8e1;border-color:#e6c200}
.card-actions .fav-toggle.is-faved .fav-star{color:#e6a700}
.card-actions .ics-add{display:inline-flex;align-items:center;gap:.3rem;margin:0;background:#eef6f4;border:1.5px solid #cfe6e0;color:var(--brand-d);border-radius:999px;padding:.35rem .85rem;font-size:.9rem;font-weight:700;text-decoration:none}
.card-actions .ics-add:hover{background:#e0efeb;border-color:var(--brand)}
.card-actions .ics-add.ics-start{background:#eef3fb;border-color:#cdddf2;color:#1d4e89}
.card-actions .ics-add.ics-start:hover{background:#e2ecf8;border-color:#1d4e89}
.program-card.is-expired,.card.is-expired{opacity:.72;background:#f4f5f6}
.program-card.is-expired h3,.card.is-expired strong{color:#5b6b7b}
.expired-badge{margin:.2rem 0 .7rem;padding:.45rem .75rem;background:#fde8e8;border:1px solid #f3b4b4;border-radius:6px;color:#9b1c1c;font-size:.88rem;font-weight:700;line-height:1.6}
.last-checked{color:var(--muted);font-size:.85rem;margin:.2rem 0 1rem}
.breadcrumb{margin:.4rem 0 1rem;font-size:.85rem}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0;padding:0;margin:0}
.breadcrumb li{display:inline-flex;align-items:center;color:var(--muted)}
.breadcrumb li+li::before{content:"›";margin:0 .45rem;color:var(--border)}
.breadcrumb a{color:var(--brand);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.breadcrumb [aria-current="page"]{color:var(--muted)}
.index-lead{color:var(--muted);font-size:.92rem;margin:.2rem 0 1rem}
.muni-filter{width:100%;max-width:360px;padding:.6rem .85rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;margin:0 0 1.2rem}
.muni-empty{color:var(--muted)}
.muni-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.9rem;list-style:none;padding:0;margin:0}
.muni-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem}
.muni-card h3{margin:0 0 .5rem;font-size:1.05rem;border-bottom:1px solid var(--border);padding-bottom:.4rem}
.muni-card h3 a{color:var(--fg);text-decoration:none}
.muni-card h3 a:hover{color:var(--brand);text-decoration:underline}
.cat-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.15rem}
.cat-links a{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:var(--brand);font-size:.92rem;padding:.2rem .1rem;border-radius:5px}
.cat-links a:hover{background:var(--bg)}
.cat-name{display:inline-flex;align-items:center;gap:.4rem}
.cat-links a:hover .cat-name{text-decoration:underline}
.cat-ico{width:1.1em;height:1.1em;flex:none}
.cat-links .count{background:var(--bg);color:var(--muted);border-radius:10px;padding:.05rem .55rem;font-size:.78rem;font-weight:700;margin-left:.5rem}
.cat-links a:hover .count{background:#fff}
.hub-grid,.hub-links{list-style:none;padding:0;margin:.4rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.5rem}
.hub-grid a,.hub-links a{display:flex;justify-content:space-between;align-items:center;text-decoration:none;color:var(--brand);background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.55rem .8rem;font-size:.95rem}
.hub-grid a:hover,.hub-links a:hover{background:#eef6f4}
.hub-grid .count,.hub-links .count{background:var(--bg);color:var(--muted);border-radius:10px;padding:.05rem .55rem;font-size:.78rem;font-weight:700;margin-left:.5rem}
.about h2{margin:1.4rem 0 .5rem;font-size:1.15rem}
.about p{line-height:1.85}
.amount{color:var(--accent);font-weight:600}
.phase-filter{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.4rem 0 .8rem}
.phase-filter-label{font-size:.85rem;color:var(--muted);margin-right:.2rem}
.chip{font:inherit;font-size:.9rem;padding:.32rem .8rem;border:1px solid #9cc7bd;background:#fff;color:var(--brand-d);border-radius:999px;cursor:pointer;line-height:1.4}
.chip:hover{background:#eef6f4}
.chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.chip.is-active{background:var(--brand);color:#fff;border-color:var(--brand)}
.facts tr.fact-amount th{color:var(--accent)}
.facts tr.fact-amount td{font-weight:600}
.facts tr.fact-deadline th,.facts tr.fact-window th{color:var(--brand-d);border-left:3px solid var(--brand)}
.facts tr.fact-deadline td,.facts tr.fact-window td{background:#f3faf8}
.comparison-table tr.is-current td,.comparison-table tr.is-current th{background:#fff4e5;font-weight:700}
.term{position:relative;border-bottom:1px dotted var(--brand-d);cursor:help}
.term>.tip{display:none;position:absolute;left:0;top:1.7em;z-index:20;width:max-content;max-width:min(20rem,calc(100vw - 1.5rem));background:#1a2b3c;color:#fff;font-size:.85rem;font-weight:400;line-height:1.65;text-align:left;padding:.5rem .75rem;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.25);white-space:normal}
.term:hover>.tip,.term:focus>.tip,.term:focus-visible>.tip,.term.is-open>.tip{display:block}
.term:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.term.is-open{background:#eef6f4;border-bottom-style:solid}
details.cmp{margin:1.4rem 0}
details.cmp>summary{cursor:pointer;font-weight:700;color:var(--brand-d);padding:.6rem .2rem;list-style-position:inside}
details.cmp[open]>summary{margin-bottom:.4rem}
table.comparison-table{width:100%;border-collapse:collapse;margin:1rem 0}
.comparison-table caption{text-align:left;font-weight:700;margin-bottom:.4rem}
.comparison-table th,.comparison-table td{border:1px solid var(--border);padding:.5rem .7rem;text-align:left}
.comparison-table thead{background:#eef6f4}
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.6rem 1rem;margin:.5rem 0}
.faq-item summary{cursor:pointer;font-weight:600}
.diagnosis-cta{background:linear-gradient(135deg,#0b6b5e,#085044);color:#fff;border-radius:12px;padding:1.4rem;margin:2rem 0;text-align:center}
.diagnosis-cta h2{border:0;color:#fff;margin-top:0}
.cta-button{display:inline-block;background:var(--accent);color:#fff;padding:.7rem 1.6rem;border-radius:8px;text-decoration:none;font-weight:700;font-size:1.05rem}
.legal-disclaimer{font-size:.85rem;color:var(--muted);border-top:1px solid var(--border);margin-top:2rem;padding-top:1rem}
form#shindan-form{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem}
form#shindan-form fieldset{border:1px solid var(--border);border-radius:8px}
form#shindan-form label{display:inline-block;margin:.2rem .8rem .2rem 0}
#muni{padding:.4rem;font-size:1rem;max-width:100%}
#run{background:var(--brand);color:#fff;border:0;padding:.7rem 1.6rem;border-radius:8px;font-size:1.05rem;font-weight:700;cursor:pointer}
.result-cat{margin:2rem 0}
.index-list li{margin:.6em 0;line-height:1.85}
.faq-item summary{padding:.2rem 0}
.faq-item p{margin:.6em 0}
.cta,.page-link{display:inline-block;margin:.5rem .5rem 0 0;padding:.5rem 1rem;border-radius:8px;text-decoration:none;font-weight:600}
.cta{background:var(--accent);color:#fff}
.page-link{background:#eef6f4;color:var(--brand-d);border:1px solid #cfe6e0}
.general-cta{margin-top:2rem;padding-top:1rem;border-top:1px dashed var(--border)}
.site-footer{max-width:820px;margin:2rem auto 0;padding:1.2rem;color:var(--muted);font-size:.85rem;border-top:1px solid var(--border)}
.beta-banner{background:#fff4e5;color:#7a3e00;border-bottom:1px solid #f0d9b5;padding:.6rem 1.2rem;font-size:.85rem;text-align:center}
