:root { color-scheme: light; --ink:#172a3a; --muted:#526477; --line:#dce3e8; --teal:#087e83; --bg:#f3f6f8; }
* { box-sizing:border-box; }
body { margin:0; font:14px/1.7 "Yu Gothic UI","Meiryo",sans-serif; color:var(--ink); background:var(--bg); }
header { background:#142e40; color:white; padding:28px max(24px,calc((100vw - 1450px)/2)); border-bottom:5px solid #34b5b0; }
header small { letter-spacing:.15em; color:#8fd5d3; }
h1 { font-size:clamp(23px,3vw,34px); margin:4px 0 8px; line-height:1.4; }
header p { margin:0; color:#d0e1e9; }
a { color:#07666b; text-underline-offset:3px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible { outline:3px solid #34b5b0; outline-offset:4px; }
.header-links { display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; }
.header-links a { color:#c3f5f0; }
.help-link { font-size:13px; }
main { max-width:1510px; margin:auto; padding:24px; }
h2 { font-size:20px; margin:0 0 10px; }
button,select,input { font:inherit; }
button { cursor:pointer; border:1px solid var(--line); background:white; border-radius:6px; padding:8px 13px; color:var(--ink); }
button:hover { border-color:var(--teal); }
button:disabled { opacity:.4; cursor:default; }
button.active { background:var(--teal); color:white; border-color:var(--teal); }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px; }
.card { background:white; border:1px solid var(--line); border-radius:10px; padding:18px 20px; }
.card span,.card small { color:var(--muted); }
.card strong { font-size:32px; display:block; font-variant-numeric:tabular-nums; line-height:1.4; }
.notice { border-left:4px solid #299598; background:#eaf6f5; padding:16px 20px; margin:18px 0; border-radius:5px; }
.notice p { margin:5px 0; }
.filters,.panel { background:white; border:1px solid var(--line); border-radius:10px; padding:20px; margin:18px 0; }
.filters { display:grid; grid-template-columns:repeat(5,minmax(125px,1fr)); gap:12px; }
label { font-size:12px; color:var(--muted); }
select,input { display:block; width:100%; padding:8px; margin-top:4px; border:1px solid #becbd4; border-radius:5px; background:white; color:var(--ink); }
.toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px 0; }
.grow { flex:1; }
.modeRow { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:20px; }
.modeRow label { min-width:245px; }
.modeNote { padding:12px 15px; border-radius:5px; background:#f2f5f8; color:#354f63; }
.subtle { color:var(--muted); font-size:12px; }
.scroll { overflow:auto; max-height:630px; border:1px solid var(--line); border-radius:6px; }
table { border-collapse:collapse; width:100%; white-space:nowrap; font-size:13px; }
th { position:sticky; top:0; z-index:1; background:#eaf0f4; text-align:left; }
th button { padding:10px; border:0; border-radius:0; background:transparent; font-weight:600; text-align:left; width:100%; }
td { padding:10px; border-bottom:1px solid #e7ecf0; }
tbody tr:hover { background:#eef8f8; }
td.numeric { text-align:right; font-variant-numeric:tabular-nums; }
.tag { display:inline-block; padding:2px 8px; border-radius:5px; background:#edf2f5; font-size:12px; }
.tag.HIT { background:#d9f3ea; color:#075846; }
.tag.WATCHING { background:#e6eefb; color:#295ba0; }
.tag.MISS { background:#f7e7e3; color:#91422f; }
.hold { color:#7e6540; font-size:12px; }
.empty { padding:30px; color:var(--muted); text-align:center; }
dialog { border:1px solid var(--line); border-radius:12px; max-width:900px; width:calc(100vw - 32px); max-height:85vh; padding:0; overflow:hidden; }
dialog[open] { display:flex; flex-direction:column; }
.detail-header { display:flex; align-items:flex-start; gap:16px; padding:18px 24px; flex:none; border-bottom:1px solid var(--line); background:white; }
.detail-header h2 { flex:1; min-width:0; margin:0; overflow-wrap:anywhere; }
.detail-header button { flex:none; white-space:nowrap; }
.detail-content { min-height:0; overflow:auto; padding:20px 24px 24px; overscroll-behavior:contain; }
dialog::backdrop { background:#10263788; }
dl { display:grid; grid-template-columns:200px 1fr; gap:8px; margin:20px 0; }
dt { color:var(--muted); }
dd { margin:0; overflow-wrap:anywhere; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; background:#f1f4f6; padding:15px; font-size:12px; }
footer { font-size:12px; color:var(--muted); padding:12px 0 32px; }
.quality { display:flex; gap:10px; flex-wrap:wrap; }
.quality span { padding:8px 12px; background:#f0f4f7; border-radius:6px; }
#count,#pageInfo { font-size:13px; }
.glossary-main { max-width:1100px; }
.glossary-toc { display:flex; flex-wrap:wrap; gap:8px 22px; padding:0; list-style:none; }
.glossary-main section { scroll-margin-top:18px; }
.glossary-terms { display:block; margin:0; }
.glossary-terms > div { display:grid; grid-template-columns:230px minmax(0,1fr); gap:10px 20px; padding:12px 0; border-bottom:1px solid var(--line); }
.glossary-terms > div:last-child { border-bottom:0; }
.glossary-terms dt { font-weight:600; color:var(--ink); overflow-wrap:anywhere; }
.glossary-terms small { display:block; color:var(--muted); font-weight:400; }
.glossary-main code { font-size:.9em; overflow-wrap:anywhere; }
.score-guide { white-space:normal; margin-top:18px; }
.score-guide caption { text-align:left; font-weight:600; margin-bottom:8px; }
.score-guide th { position:static; padding:9px 10px; }
.score-guide td:last-child { width:65px; font-weight:600; }
@media(max-width:850px) {
  main { padding:14px; }
  .cards { grid-template-columns:repeat(2,1fr); }
  .card { padding:13px; }
  .card strong { font-size:27px; }
  .filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  header { padding:24px 18px; }
  dl { grid-template-columns:1fr; }
  dd { margin-bottom:8px; }
  .glossary-terms > div { grid-template-columns:1fr; gap:3px; }
  .glossary-terms dd { margin-bottom:0; }
  .detail-header { padding:14px 16px; gap:10px; }
  .detail-content { padding:16px; }
}
