:root{--fg:#222;--muted:#666;--line:#ddd;--bg:#fff;--accent:#1d5fa8;--badge:#e8f1fb;--chip:#f2f4f7}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Noto Sans JP",sans-serif;color:var(--fg);background:var(--bg);line-height:1.6}
a{color:var(--accent)}header.site{border-bottom:1px solid var(--line);padding:.6rem 1rem}header.site a.brand{font-weight:700;text-decoration:none;color:var(--fg)}
main{max-width:960px;margin:0 auto;padding:1rem}nav.bc{font-size:.85rem;color:var(--muted)}nav.bc a{color:var(--muted)}
h1{font-size:1.4rem;margin:.6rem 0}h2{font-size:1.15rem}.sub{color:var(--muted);font-size:.9rem}
.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));padding:0;list-style:none}
.cards li{border:1px solid var(--line);border-radius:8px;padding:.8rem}.cards li h2{font-size:1.05rem;margin:0 0 .3rem}
table.t{border-collapse:collapse;width:100%}table.t td,table.t th{border-bottom:1px solid var(--line);padding:.4rem .3rem;text-align:left;font-size:.95rem}
.list{list-style:none;padding:0;margin:0}.card{border-bottom:1px solid var(--line);padding:.8rem 0}
.card h3{font-size:1.02rem;margin:0 0 .2rem;font-weight:600;line-height:1.45}
.card .cat{font-size:.8rem;color:var(--muted);margin:0 0 .25rem}
.card .ja{margin:.15rem 0 .3rem;font-size:.95rem}
.card .ja .tag{font-size:.72rem;background:var(--chip);color:var(--muted);border-radius:3px;padding:0 .35em;margin-right:.35em;vertical-align:.08em}
.card .sum{margin:.2rem 0 .4rem}.card .meta{font-size:.85rem;color:var(--muted);margin:.15rem 0 0}.card .links{font-size:.9rem;margin:.3rem 0 0}
.badge{display:inline-block;background:var(--badge);color:var(--accent);border-radius:4px;padding:0 .4em;font-size:.78rem;margin-left:.3em}
.kw{font-size:.82rem;color:var(--muted);margin:.25rem 0 0}.kw b{font-weight:600;color:var(--fg)}
.abs{font-size:.9rem;background:#f7f7f7;padding:.6rem;border-radius:6px;margin:.4rem 0 0;white-space:pre-wrap}
.abs .lic{font-size:.8rem;color:var(--muted);display:block;margin-bottom:.3rem}
.filter{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;border:1px solid var(--line);border-radius:8px;padding:.6rem;margin:.8rem 0 .3rem;font-size:.9rem}
.filter input[type=text]{flex:1;min-width:12rem;padding:.3rem}.filter select,.filter input[type=number]{padding:.3rem}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.3rem 0 .8rem}
.chip{background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:.12rem .7rem;font-size:.85rem;cursor:pointer;color:var(--fg)}
.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.pager{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0;font-size:.9rem}.pager a,.pager span{padding:.2rem .6rem;border:1px solid var(--line);border-radius:4px}
.pager span.cur{background:var(--accent);color:#fff;border-color:var(--accent)}
footer.site{border-top:1px solid var(--line);margin-top:2rem;padding:1rem;font-size:.8rem;color:var(--muted)}
.note{border-left:3px solid var(--accent);padding:.3rem .8rem;background:#f7fafd;font-size:.9rem;margin:.6rem 0}
.small{font-size:.82rem;color:var(--muted)}
p.lead{font-size:1.02rem;line-height:1.85}
button.lnk{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit;text-decoration:underline}
.sbox{border:1px solid var(--line);border-radius:8px;padding:.7rem;margin:.8rem 0}
.sbox input{width:100%;padding:.45rem;font-size:1rem}
.sres{list-style:none;padding:0;margin:.5rem 0 0}.sres li{padding:.3rem 0;border-bottom:1px solid var(--line);font-size:.92rem}
.sres .via{color:var(--muted);font-size:.85rem}
