/* 沖縄戦跡データベース — 初版β。装飾は最小限、読みやすさと速度を優先する。 */
:root{--ws-fg:#1b1b1b;--ws-muted:#5c5c5c;--ws-line:#e2e0dc;--ws-bg:#fbfaf8;
--ws-accent:#7a2e2e;--ws-accent-soft:#f3ecec;--ws-max:960px}
*{box-sizing:border-box}
body{margin:0;color:var(--ws-fg);background:var(--ws-bg);line-height:1.75;
font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif}
a{color:var(--ws-accent)}
.ws-wrap{max-width:var(--ws-max);margin:0 auto;padding:0 1.1rem}
.ws-header{border-bottom:1px solid var(--ws-line);background:#fff}
.ws-header .ws-wrap{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;align-items:baseline;
padding-top:.9rem;padding-bottom:.9rem}
.ws-brand{margin:0;font-size:1.05rem;font-weight:700}
.ws-brand a{color:var(--ws-fg);text-decoration:none}
.ws-nav{display:flex;gap:1rem;font-size:.92rem}
main.ws-wrap{padding-top:1.8rem;padding-bottom:3rem}
h1{font-size:1.6rem;line-height:1.45;margin:.2rem 0 1rem}
h2{font-size:1.15rem;margin:2rem 0 .8rem;padding-bottom:.35rem;border-bottom:1px solid var(--ws-line)}
.ws-lead{color:var(--ws-muted);margin:.2rem 0 1rem}
.ws-hero{padding:.4rem 0 1.2rem;border-bottom:1px solid var(--ws-line)}
.ws-stats{font-size:1.05rem}
.ws-stats strong{font-size:1.5rem;color:var(--ws-accent)}
.ws-block{margin-top:1.6rem}

/* 検索 */
.ws-search{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end;
background:#fff;border:1px solid var(--ws-line);border-radius:8px;padding:.9rem 1rem;margin:0 0 1.1rem}
.ws-search__field{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:var(--ws-muted)}
.ws-search input,.ws-search select{font:inherit;padding:.45rem .6rem;
border:1px solid var(--ws-line);border-radius:5px;background:#fff;min-width:13rem}
.ws-search button{font:inherit;padding:.5rem 1.3rem;border:0;border-radius:5px;
background:var(--ws-accent);color:#fff;cursor:pointer}
.ws-search__reset{font-size:.85rem;align-self:center}
.ws-summary{color:var(--ws-muted);font-size:.9rem;margin:.2rem 0 .9rem}
.ws-summary strong{color:var(--ws-fg);font-size:1.05rem}

/* 一覧 */
.ws-cards{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.ws-card{background:#fff;border:1px solid var(--ws-line);border-radius:7px;padding:.75rem .95rem}
.ws-card__name{margin:0;font-size:1.02rem;line-height:1.5}
.ws-card__name a{text-decoration:none}
.ws-card__name a:hover{text-decoration:underline}
.ws-card__meta{margin:.3rem 0 0;font-size:.85rem;color:var(--ws-muted);
display:flex;flex-wrap:wrap;gap:.4rem .9rem}
.ws-muni{background:var(--ws-accent-soft);border-radius:3px;padding:.05rem .5rem;text-decoration:none}
.ws-empty{background:#fff;border:1px dashed var(--ws-line);border-radius:7px;
padding:1.5rem;text-align:center;color:var(--ws-muted)}

/* 市町村 */
.ws-munis{list-style:none;margin:0;padding:0;display:grid;
grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.4rem}
.ws-munis a{display:flex;justify-content:space-between;gap:.4rem;background:#fff;
border:1px solid var(--ws-line);border-radius:5px;padding:.4rem .7rem;
text-decoration:none;font-size:.9rem}
.ws-munis span{color:var(--ws-muted);font-variant-numeric:tabular-nums}

/* 詳細 */
.ws-crumbs{font-size:.83rem;color:var(--ws-muted);margin-bottom:.6rem}
.ws-detail{width:100%;border-collapse:collapse;background:#fff;
border:1px solid var(--ws-line);border-radius:7px;overflow:hidden}
.ws-detail th,.ws-detail td{text-align:left;padding:.6rem .9rem;
border-bottom:1px solid var(--ws-line);font-size:.94rem;vertical-align:top}
.ws-detail tr:last-child th,.ws-detail tr:last-child td{border-bottom:0}
.ws-detail th{width:7.5rem;background:#faf8f6;color:var(--ws-muted);font-weight:600;white-space:nowrap}
.ws-map__coords{font-variant-numeric:tabular-nums;color:var(--ws-muted);font-size:.9rem}
.ws-sources ul{margin:0;padding-left:1.2rem}
.ws-sources li{margin:.3rem 0}
.ws-sources__link{font-size:.88rem;white-space:nowrap}
.ws-siteid{margin-top:2rem;font-size:.8rem;color:var(--ws-muted)}

/* ページャ */
.ws-pager{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;
justify-content:center;margin:1.5rem 0 .5rem;font-size:.92rem}
.ws-pager a,.ws-pager__cur{min-width:2.2rem;text-align:center;padding:.35rem .55rem;
border:1px solid var(--ws-line);border-radius:5px;text-decoration:none;background:#fff}
.ws-pager__cur{background:var(--ws-accent);border-color:var(--ws-accent);color:#fff;font-weight:700}
.ws-pager__gap{padding:0 .2rem;color:var(--ws-muted)}
.ws-more{display:inline-block;margin-top:.7rem}

.ws-footer{border-top:1px solid var(--ws-line);background:#fff;
padding:1.4rem 0;font-size:.85rem;color:var(--ws-muted)}
.ws-footer p{margin:.25rem 0}
.ws-footer__note{font-size:.8rem}
@media(max-width:620px){.ws-search input,.ws-search select{min-width:100%}
.ws-search__field{width:100%}.ws-detail th{width:6rem}}
