:root{--bg:#0b0e14;--card:#121721;--line:#232a36;--fg:#e6e9ef;--muted:#8a94a6;--accent:#7aa2f7;--ok:#9ece6a;--warn:#e0af68;--bad:#f7768e;--violet:#bb9af7}
@media (prefers-color-scheme:light){:root{--bg:#fafbfc;--card:#fff;--line:#e3e6ea;--fg:#1f2328;--muted:#656d76;--accent:#0969da;--ok:#1a7f37;--warn:#9a6700;--bad:#cf222e;--violet:#8250df}}
*{box-sizing:border-box}
body{margin:0;font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header{padding:56px 20px 32px;border-bottom:1px solid var(--line);text-align:center}
header h1{margin:0 0 8px;font-size:2.2rem;letter-spacing:-.02em}
header p{margin:0 auto;max-width:720px;color:var(--muted)}
.stats{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.stat b{display:block;font-size:1.8rem;color:var(--accent)}.stat span{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
nav{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line);padding:10px 20px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;font-size:.9rem;z-index:1}
main{max-width:1280px;margin:0 auto;padding:32px 20px}
section{margin-bottom:48px}
h2{font-size:1.4rem;margin:0 0 4px}
.lede{color:var(--muted);margin:0 0 16px}
.wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--card)}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;padding:10px 12px;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
.muted{color:var(--muted)}.small{font-size:.8rem;margin-top:4px;min-width:30ch;max-width:52ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.nowrap{white-space:nowrap}
.score{font-weight:700;font-size:1.05rem}.system{font-weight:500}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:500;white-space:nowrap;border:1px solid var(--line);margin:1px 2px 1px 0}
.domain{color:var(--muted)}
.status-active{color:var(--ok);border-color:var(--ok)}.status-saturating{color:var(--warn);border-color:var(--warn)}.status-saturated,.status-retired,.status-archived{color:var(--muted)}
.risk-low{color:var(--ok)}.risk-medium{color:var(--warn)}.risk-high{color:var(--bad)}
.kind-framework{color:var(--accent)}.kind-leaderboard{color:var(--violet)}.kind-independent-evaluator{color:var(--ok)}.kind-aggregator{color:var(--muted)}
.src{font-size:.75rem;padding:0 6px;border-radius:4px;border:1px solid var(--line)}
.src-official-leaderboard,.src-independent-evaluation{color:var(--ok)}.src-paper{color:var(--accent)}.src-developer-report{color:var(--warn)}.src-aggregator{color:var(--muted)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin:8px 0 0}
.callout{border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:6px;padding:12px 16px;background:var(--card);font-size:.9rem;margin:0 0 20px}
footer{border-top:1px solid var(--line);padding:32px 20px;text-align:center;color:var(--muted);font-size:.85rem}
/* --- a11y / chrome --- */
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#fff;padding:6px 10px;border-radius:4px;z-index:2}.skip:focus{left:8px}
.updated{margin-top:14px;font-size:.8rem}
th[data-sort]{cursor:pointer;user-select:none}th[data-sort]:hover{color:var(--fg)}th[aria-sort="ascending"]::after{content:" ↑"}th[aria-sort="descending"]::after{content:" ↓"}
.human{font-size:.8rem;color:var(--muted)}.human a{color:var(--muted);text-decoration:underline dotted}
.chainwrap{font-size:.75rem}.chain{color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-right:4px;white-space:nowrap}
.spark{display:block;color:var(--accent);margin-bottom:2px}.sparkcell{min-width:130px}.small-link{font-size:.75rem}
/* --- filters --- */
.filters{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 12px;font-size:.85rem}
.filters input[type=search]{flex:1 1 220px;min-width:160px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);font:inherit}
.fgroup{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.flabel{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
.filters button.pill{cursor:pointer;background:transparent;font:inherit;font-size:.72rem;opacity:.55}.filters button.pill[aria-pressed=true]{opacity:1;background:var(--card);box-shadow:0 0 0 1px currentColor inset}
.filters output{margin-left:auto;font-size:.8rem}
tr[hidden]{display:none}
/* --- detail page --- */
.detail main{max-width:1000px}
.dhead{padding:0 0 16px;border-bottom:1px solid var(--line);text-align:left}
.dhead h1{font-size:2rem;margin:0}.fullname{margin:2px 0 8px}.desc{font-size:1.05rem;max-width:80ch;margin:8px 0}.links{font-size:.9rem}
.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}
.card{border:1px solid var(--line);border-radius:8px;background:var(--card);padding:16px}
.topscore .score{font-size:2.4rem}.topscore .system{font-size:1.1rem}
.sparkbig{margin-top:12px}.sparkbig .spark{width:100%;height:auto}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:.9rem}.facts dt{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding-top:3px}.facts dd{margin:0}
.notes{border-left:3px solid var(--warn);padding:8px 14px;background:var(--card);border-radius:0 6px 6px 0;font-size:.9rem}
.ledger td{vertical-align:top}.cond{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;text-transform:none;letter-spacing:0}.small-note{font-size:.78rem;margin-top:4px;max-width:48ch}
/* --- mobile: tables become cards --- */
@media (max-width:760px){
  nav{gap:6px 12px;padding:8px 12px;font-size:.8rem}
  header{padding:32px 16px 20px}header h1{font-size:1.6rem}header p{font-size:.92rem}.stats{gap:16px 22px}.stat b{font-size:1.4rem}
  .pill{font-size:.75rem}.small{max-width:none;min-width:0;-webkit-line-clamp:2}
  .bench thead,.ledger thead{display:none}
  .bench tr,.ledger tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:12px;border-bottom:1px solid var(--line)}
  .bench tr[hidden],.bench tr.yhidden,.ledger tr[hidden]{display:none}
  .bench td,.ledger td{display:block;padding:0;border:0}
  .bench td[data-label=Benchmark],.ledger td:first-child{grid-column:1/-1}
  .bench td[data-label]:not([data-label=Benchmark])::before,.ledger td[data-label]::before{content:attr(data-label);display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px}
  .sparkcell{grid-column:1/-1}.spark{width:100%;height:32px}
  .dgrid{grid-template-columns:1fr}.filters output{margin-left:0}
}
/* --- year groups (collapsible) --- */
tr.yhead td{padding:0;background:var(--bg);border-bottom:1px solid var(--line)}
.ytoggle{all:unset;display:flex;gap:6px;align-items:baseline;width:100%;box-sizing:border-box;padding:8px 12px;cursor:pointer;font-size:.85rem;color:var(--fg)}
.ytoggle:hover{background:var(--card)}.ytoggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ytoggle .caret{display:inline-block;transition:transform .15s;color:var(--muted);width:1em}
tr.yhead[data-expanded=false] .caret{transform:rotate(-90deg)}
.ynames{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
tr.yhead[data-expanded=true] .ynames{display:none}
tr.compact.yhidden,tr.yhidden{display:none}
.linkbtn{all:unset;cursor:pointer;color:var(--accent);font-size:.78rem}.linkbtn:hover{text-decoration:underline}
@media (max-width:760px){.bench tr.yhead{display:block;padding:0}.bench tr.yhead td{display:block;padding:0}.bench tr.yhead td::before{display:none}.ynames{white-space:normal}}
/* --- grouped tables: divider + compact retired rows --- */
tr.divider td{padding:8px 12px;font-size:.75rem;color:var(--muted);background:var(--bg);border-top:2px solid var(--line);border-bottom:1px solid var(--line);letter-spacing:.02em}
tr.compact td{padding:6px 12px;font-size:.82rem;color:var(--muted)}tr.compact a{color:var(--muted)}tr.compact strong{color:var(--fg);font-weight:600}
tr.compact .chain{margin-left:6px}
@media (max-width:760px){
  tr.divider{display:block;padding:8px 12px}tr.divider td{display:block;border:0;padding:0}
  .bench tr.compact{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 12px}
  .bench tr.compact td,.bench tr.compact td[data-label=Benchmark]{display:inline;padding:0}
  .bench tr.compact td[data-label]::before{display:none}
  .bench tr.compact td[data-label="Released"],.bench tr.compact td[data-label="发布"],.bench tr.compact td[data-label="Domains"],.bench tr.compact td[data-label="领域"]{display:none}
  .bench tr.compact td[colspan]{flex-basis:100%}
}
/* --- lifespan chart --- */
.tl-model{color:var(--accent)}.tl-agent{color:var(--violet)}.tl-evaluator{color:var(--ok)}
.chart-wrap{position:relative;border:1px solid var(--line);border-radius:8px;background:var(--card);padding:14px 14px 6px;margin:0 0 20px}
.chart{display:block;width:100%;height:auto;font-family:inherit}
.chart .grid.v{stroke:var(--line);stroke-dasharray:2 4;opacity:.7}
.chart .axis{fill:var(--muted);font-size:11px}
.chart .today{stroke:var(--warn);stroke-width:1;opacity:.6}.chart .today-label{fill:var(--warn);font-size:10px}
.chart .ptitle{font-size:11px;font-weight:700;fill:currentColor;letter-spacing:.06em;text-transform:uppercase}
.chart .row{color:var(--accent);transition:opacity .15s}.chart .row.layer-agent{color:var(--violet)}
.chart .row.status-saturated,.chart .row.status-retired{opacity:.5}
.chart .row .hit{fill:transparent}
.chart .rlabel{fill:var(--fg);font-size:12px;font-weight:600}.chart .row.status-saturated .rlabel,.chart .row.status-retired .rlabel{font-weight:400;fill:var(--muted)}
.chart .rlabel-in{fill:var(--fg);font-size:12px;font-weight:600;paint-order:stroke;stroke:var(--card);stroke-width:3px}.chart .rscore-in{fill:currentColor}
.chart-live-m,.chart-full-m{display:none}
.chart .rel{fill:currentColor}.chart .lead{stroke:currentColor;stroke-dasharray:2 3;opacity:.6}
.chart .area{fill:currentColor;opacity:.3}.chart .edge{fill:none;stroke:currentColor;stroke-width:1.3}
.chart .human-line{stroke:var(--fg);stroke-dasharray:2 2;opacity:.55}
.chart .rscore{fill:currentColor;font-size:12px;font-weight:600}.chart .rstatus{fill:var(--muted);font-size:10px}
.chart .chain-arrow{fill:none;stroke:var(--muted);stroke-width:1;stroke-dasharray:4 3;opacity:.7}.chart .arrhead{fill:var(--muted)}
.chart-wrap.hovering .row:not(.hot){opacity:.15}.chart-wrap.hovering .chain-arrow:not(.hot){opacity:.1}
.chart .row.hot{opacity:1}.chart .row.hot .area{opacity:.5}.chart .row.hot .rlabel{fill:var(--ok)}.chart .chain-arrow.hot{opacity:1;stroke:var(--ok)}
.chart [hidden],.chart-wrap>svg[hidden]{display:none}
.chart-controls{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-bottom:10px;font-size:.85rem}
.chart-controls button.pill{cursor:pointer;background:transparent;font:inherit;font-size:.72rem;opacity:.6}.chart-controls button.pill[aria-pressed=true]{opacity:1;box-shadow:0 0 0 1px currentColor inset}
.legend-inline{font-size:.75rem;color:var(--muted)}.lg{font-family:ui-monospace,monospace;color:var(--fg);margin:0 2px 0 8px}.lg.human{letter-spacing:-1px}
.chart-hint{font-size:.75rem;margin-left:auto}
.tooltip{position:absolute;pointer-events:none;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:.8rem;max-width:340px;box-shadow:0 4px 16px rgba(0,0,0,.3);z-index:2}
/* --- release rail --- */
.rail-wrap{padding:16px 20px}
.legend{display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;font-size:.78rem;color:var(--muted);margin:0 0 12px}
.lg-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:-6px}
.rail{list-style:none;margin:0;padding:0;position:relative}
.rail::before{content:"";position:absolute;left:31px;top:6px;bottom:6px;width:2px;background:var(--line)}
.rail-year{display:grid;grid-template-columns:64px 1fr;gap:0 16px;padding:6px 0 14px;position:relative}
.rail-y{font-weight:700;color:var(--fg);font-size:.95rem;position:relative;line-height:1.3}
.rail-y::after{content:"";position:absolute;left:27px;top:20px;width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.rail-n{display:block;font-size:.68rem;color:var(--muted);font-weight:400}
.rail-year ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.rail-year li{font-size:.86rem;white-space:nowrap}.rail-year li::before{content:"●";font-size:.55rem;margin-right:6px;vertical-align:middle}
.rail-year li a{color:var(--fg)}.rail-year li a:hover{color:currentColor}
.tl-month{font-size:.68rem;color:var(--muted);margin-left:4px}
@media (max-width:760px){
  nav{gap:6px 12px;padding:8px 12px;font-size:.8rem}
  .chart-wrap{padding:10px 6px 4px}.chart-hint,.legend-inline{display:none}
  .chart-live,.chart-full{display:none!important}.chart-wrap>svg.chart-live-m:not([hidden]),.chart-wrap>svg.chart-full-m:not([hidden]){display:block}
  .rail::before{left:23px}.rail-year{grid-template-columns:48px 1fr;gap:0 10px}.rail-y{font-size:.85rem}.rail-y::after{left:19px}
  .rail-year li{white-space:normal}
}
