/* Bench2Run public catalog — a working reference, not a landing page.
   One ink, one accent, three state colors. System font stack (no webfont is
   loaded, so none is named). Role scale: 14 body / 13 small / 12 micro / 12
   mono, 11px floor on functional text. 4px-based spacing rhythm. */
:root{
  --bg:#f6f7f4;--surface:#fffefa;--ink:#202a2d;--muted:#596467;--faint:#788184;
  --line:#dfe4e0;--line-strong:#c3ccc6;--soft:#edf1ed;
  --accent:#176b62;--accent-ink:#0f504a;
  --good:#147a43;--good-soft:#e7f5ec;
  --warn:#8a5a00;--warn-soft:#fbf1d9;
  --bad:#b3261e;--bad-soft:#fbeae8;
  --radius:8px;--max:1120px;--pad:20px;
  --fs-body:14px;--fs-small:13px;--fs-micro:12px;--fs-mono:12px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;touch-action:manipulation}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-latin.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-latin.woff2") format("woff2");font-style:normal;font-weight:400 900;font-display:swap}
body{margin:0;background:var(--bg);color:var(--ink);
  font:var(--fs-body)/1.6 "Source Sans 3",ui-sans-serif,system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
button,input,select{font:inherit;color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:50;padding:8px 14px;background:var(--ink);color:#fff;border-radius:0 0 6px 0;font-size:var(--fs-micro)}
.skip-link:focus{left:0}

/* ---------- header ---------- */
.topbar{background:rgba(246,247,244,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.topbar-inner{max-width:var(--max);margin:0 auto;display:flex;align-items:center;height:56px;
  padding-left:var(--pad);padding-right:var(--pad)}
.brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:700;white-space:nowrap;font-size:var(--fs-small)}
.brand:hover{text-decoration:none}
.brand-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:4px;
  background:var(--accent);color:#fff;font:700 11px/1 ui-sans-serif,system-ui,sans-serif;letter-spacing:.02em}
.topbar nav{display:flex;gap:2px;margin-left:auto}
.topbar nav a{color:var(--muted);font-size:var(--fs-micro);padding:7px 11px;border-radius:6px}
.topbar nav a:hover{color:var(--ink);background:var(--soft);text-decoration:none}
.topbar nav a[aria-current="page"]{color:var(--accent-ink);background:#e2eeeb;font-weight:600}

/* ---------- type scale ---------- */
h1{margin:0;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.12;letter-spacing:-.025em;text-wrap:balance}
h2{margin:0;font-size:17px;line-height:1.3;letter-spacing:-.01em}
h3{margin:0}
.lede{max-width:62ch;margin:12px 0 0;color:var(--muted);font-size:var(--fs-small);line-height:1.7}
.text-link{font-size:var(--fs-micro);font-weight:600;white-space:nowrap}
.arxiv{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-mono);color:var(--faint)}

/* ---------- badges, dots, tags ---------- */
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;
  font-size:11.5px;font-weight:650;white-space:nowrap}
.badge.ok{background:var(--good-soft);color:var(--good)}
.badge.warn{background:var(--warn-soft);color:var(--warn)}
.badge.bad{background:var(--bad-soft);color:var(--bad)}
.badge.muted{background:var(--soft);color:var(--muted)}
.tag{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:2px 8px;background:var(--soft);border-radius:4px;color:#48586b;font-size:11.5px}
.tag-more{background:transparent;border:1px dashed var(--line-strong);color:var(--faint)}
.muted-tag{color:var(--faint)}

/* ---------- home intro ---------- */
.intro{padding-top:34px;padding-bottom:4px;max-width:var(--max)}
.intro .lede{margin-top:12px}
.cohort-facts{display:flex;flex-wrap:wrap;gap:18px 28px;margin:20px 0 0;padding:0;color:var(--muted)}
.cohort-fact{display:flex;flex-direction:column;gap:2px;min-width:112px;font-size:var(--fs-micro);line-height:1.35}
.metric-number{color:var(--ink);font-family:"Source Serif 4",Georgia,serif;font-size:clamp(25px,3vw,34px);font-weight:600;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.intro-caveat{margin:10px 0 0;color:var(--faint);font-size:var(--fs-micro);line-height:1.6}
.cta{display:inline-block;margin-top:18px;padding:9px 16px;border-radius:5px;
  background:var(--accent);color:#fff;font-size:var(--fs-small);font-weight:600;border:1px solid var(--accent)}
.cta:hover{background:var(--accent-ink);text-decoration:none}
.cta.secondary{background:var(--surface);color:var(--accent-ink);border:1px solid var(--line-strong)}
.cta.secondary:hover{background:var(--soft)}
.intro-link{display:inline-block;margin-top:10px}

/* ---------- sections ---------- */
.section{padding-top:42px;padding-bottom:8px}
.section-head,.results-head{display:flex;justify-content:space-between;align-items:end;
  gap:14px;border-bottom:1px solid var(--ink);padding-bottom:10px;margin:0 0 18px}
.section-head h2,.results-head h2{font-size:16px}
.section-note{color:var(--muted);font-size:var(--fs-micro)}
.result-count{display:block;color:var(--muted);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:3px}
.sort-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:var(--fs-micro)}
.sort-control select{min-height:34px;padding:0 9px;background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;font-size:var(--fs-small)}
.load-note,.no-script{margin:14px 0 0;color:var(--muted);font-size:var(--fs-micro)}

/* ---------- publication trend (server-rendered bars, pure CSS) ---------- */
.trend-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);
  padding:18px 20px 14px}
.trend-block+.trend-block{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.trend-title{margin:0 0 12px;font-size:12px;font-weight:650;color:var(--muted)}
.trend-chart{display:flex;align-items:flex-end;gap:3px;height:110px}
.trend-month{gap:6px;height:90px}
.trend-col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;
  position:relative;padding-bottom:16px}
.trend-bar{width:100%;max-width:26px;height:var(--h);min-height:3px;background:var(--accent);
  border-radius:2px 2px 0 0;opacity:.85}
.trend-month .trend-bar{max-width:40px;background:var(--ink)}
.trend-col:hover .trend-bar,.trend-col:focus-visible .trend-bar{opacity:1}
.trend-bar:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
/* Tick labels: chart chrome, not UI text. Only every 5th column is a tick in
   the generated markup. Ticks sit below the chart on a surface background so
   they never collide with bars, and only tick columns render visible text. */
.trend-lab{position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  font-size:10.5px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums;
  line-height:16px;background:var(--surface)}
.trend-col:not([data-tick]) .trend-lab{visibility:hidden}
@media(max-width:720px){
  .trend-lab{font-size:10px}
}
.trend-note{margin:12px 0 0;color:var(--muted);font-size:var(--fs-micro)}
.trend-kpis{max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.trend-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.trend-kpi strong{display:block;font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums}
.trend-kpi span{display:block;margin-top:6px;color:var(--muted);font-size:var(--fs-micro)}
.trend-layout{max-width:var(--max);margin:20px auto 0;padding:0 var(--pad);display:grid;grid-template-columns:1.4fr 1fr;gap:14px}
.trend-layout .trend-panel{padding:18px 20px}
.month-chart{display:flex;flex-direction:column;gap:12px}
.month-row{display:grid;grid-template-columns:108px 1fr 45px;align-items:center;gap:10px}
.month-label{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}
.month-track{height:14px;background:var(--soft);border-radius:4px;overflow:hidden}
.month-fill{display:block;height:100%;min-width:3px;background:var(--accent);border-radius:4px}
.month-count{text-align:right;font-size:var(--fs-small);font-variant-numeric:tabular-nums}
.day-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.day-list li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:var(--fs-small)}
.day-list li:last-child{border-bottom:0}
.day-list time{color:var(--muted);font-variant-numeric:tabular-nums}
.day-list strong{font-variant-numeric:tabular-nums}
.day-list span{color:var(--muted);font-size:var(--fs-micro)}
@media(max-width:820px){.trend-kpis{grid-template-columns:repeat(2,1fr)}.trend-layout{grid-template-columns:1fr}}
@media(max-width:480px){.trend-kpis{grid-template-columns:1fr 1fr}.month-row{grid-template-columns:84px 1fr 36px;gap:7px}}

/* ---------- record cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.record-card{display:flex;flex-direction:column;padding:18px 20px 16px;background:var(--surface);
  border:0;min-height:248px;transition:background .15s ease}
.record-card:hover{background:#f8faf7}
.record-card{border:1px solid var(--line);border-radius:var(--radius)}
.record-card h3{font-size:15px;line-height:1.35;font-weight:700;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.record-card h3 a{color:var(--ink)}
.record-card h3 a:hover{color:var(--accent);text-decoration:none}
.card-detail-link{font-size:var(--fs-micro);white-space:nowrap}
.card-detail-link .link-state{font-size:11px}
.card-date{display:flex;align-items:baseline;gap:6px;margin:6px 0 0;color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.card-date .sep{color:var(--line-strong)}
.card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;margin:8px 0 0;color:var(--muted);font-size:11.5px;line-height:1.45}
.card-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  margin:9px 0 0;color:var(--muted);font-size:var(--fs-small);line-height:1.58;min-height:3.16em}
.card-summary.summary-expanded{display:block;-webkit-line-clamp:unset}
.summary-toggle{margin-top:5px;padding:0;border:0;background:none;color:var(--accent);font-size:var(--fs-micro);cursor:pointer}
.record-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}
.taxonomy-tag{background:#f1f5f9;color:var(--muted)}
.taxonomy-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.taxonomy-group{display:grid;gap:5px}.taxonomy-group>strong{font-size:var(--fs-micro);color:var(--muted);font-weight:600}
.card-foot{margin-top:auto;padding-top:14px;display:flex;flex-wrap:wrap;gap:8px 14px;
  align-items:center;justify-content:space-between}
.record-links{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:var(--fs-micro)}
.link{display:inline-flex;align-items:baseline;gap:3px;font-weight:600}
.link:hover{text-decoration:none;color:var(--accent-ink)}
.link .link-state{font-weight:400;color:var(--faint);font-size:11px}
.link.muted{color:var(--faint);font-weight:400;cursor:default}
.link.muted .link-state{font-size:11px}
.empty{grid-column:1/-1;padding:36px 20px;text-align:center;color:var(--muted);
  background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius);font-size:var(--fs-small)}

/* The home page is a reading list; the full catalog keeps its grid. */
.home-page .card-grid{display:block;background:transparent;border:0}
.home-page .record-card{display:grid;grid-template-columns:132px minmax(0,1fr) 190px;column-gap:22px;align-items:start;min-height:0;padding:17px 18px 16px;border:0;border-top:1px solid var(--line);border-radius:0}
.home-page .record-card:first-child{border-top:0}
.home-page .record-card h3{grid-column:2;grid-row:1;font-size:18px;line-height:1.28}
.home-page .record-card .card-date{grid-column:1;grid-row:1;margin:2px 0 0;display:block}
.home-page .record-card .card-meta{grid-column:1;grid-row:2;margin-top:8px}
.home-page .record-card .card-summary{grid-column:2;grid-row:2;margin-top:7px;max-width:68ch;-webkit-line-clamp:3}
.home-page .record-card .summary-toggle{grid-column:2;grid-row:3;justify-self:start;width:max-content}
.home-page .record-card .card-foot{grid-column:3;grid-row:1 / span 4;margin-top:0;padding-top:2px;border-top:0;justify-content:flex-end}
.home-page .record-card .record-links{justify-content:flex-end}
.home-page .record-card:hover{background:transparent}
.publisher-link{color:var(--accent);font-weight:600}
.publisher-link:hover{text-decoration:underline}
.card-meta .record-tags{margin-top:0}
.context-label{color:var(--muted)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);margin-top:60px}
.footer-inner{max-width:var(--max);margin:0 auto;padding:16px var(--pad) 28px;
  display:flex;justify-content:space-between;gap:10px;color:var(--faint);font-size:var(--fs-micro)}
.footer a{color:var(--muted)}

/* ---------- catalog page ---------- */
.catalog-page,.detail-page{padding-top:42px;padding-bottom:24px}
.page-heading{padding-bottom:24px;border-bottom:1px solid var(--ink);margin-bottom:24px}
.page-heading h1{font-size:clamp(22px,3vw,26px)}
.catalog-tools{display:grid;gap:14px;margin:0 0 12px}
.common-filters{display:grid;gap:10px 18px}
.filter-group{display:flex;align-items:flex-start;gap:12px;min-width:0}
.filter-label{flex:0 0 42px;padding-top:5px;color:var(--muted);font-size:var(--fs-micro);font-weight:650}
.filter-options{display:flex;flex-wrap:wrap;gap:5px}
.filter-option{min-height:30px;padding:4px 10px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);font-size:var(--fs-micro);cursor:pointer}
.filter-option:hover{color:var(--accent-ink);background:var(--soft)}
.filter-option.is-selected{border-color:var(--accent);background:var(--accent);color:#fff}
.search-control{position:relative;display:flex;align-items:center}
.search-control input{width:100%;padding-right:60px}
.search-clear{position:absolute;right:7px;border:0;background:var(--soft);color:var(--muted);border-radius:4px;padding:3px 7px;font-size:11px;cursor:pointer}
.search-clear:hover{color:var(--accent-ink);background:var(--line)}
.active-filters{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-height:32px;margin:0 0 16px;padding:8px 10px;background:var(--soft);border-radius:6px;color:var(--muted);font-size:var(--fs-micro)}
.active-label{font-weight:650;color:var(--ink)}
.active-filter-chips{display:flex;flex-wrap:wrap;gap:5px}
.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:11.5px}
.filter-chip button{border:0;padding:0;background:none;color:var(--faint);font-size:14px;line-height:1;cursor:pointer}
.filter-chip button:hover{color:var(--bad)}
.clear-filters{margin-left:auto;border:0;padding:3px 0;background:none;color:var(--accent);font-size:var(--fs-micro);cursor:pointer}
.clear-filters:hover{text-decoration:underline}
.catalog-reveal-wrap{display:flex;justify-content:center;margin:5px 0 19px}
.catalog-reveal{padding:8px 14px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--accent-ink);font-size:var(--fs-small);font-weight:600;cursor:pointer}
.catalog-reveal:hover{background:var(--soft)}
.home-older-wrap{margin:14px 0 0}
.home-older-wrap>.catalog-reveal,.home-older-fallback>summary{display:block;width:max-content;margin:0 auto}
.home-older-fallback>summary{list-style:none}
.home-older-fallback>summary::-webkit-details-marker{display:none}
.home-older-static{margin-top:14px}
.home-day-heading{grid-column:1/-1;margin:22px 0 0;padding:10px 0 6px;border-top:1px solid var(--line-strong);font-size:13px;color:var(--muted)}
.tool{display:grid;gap:5px}
.tool label{color:var(--muted);font-size:var(--fs-micro);font-weight:600}
.tool input,.tool select{min-height:38px;padding:0 11px;background:var(--surface);
  border:1px solid var(--line-strong);border-radius:6px;font-size:var(--fs-small);color:var(--ink)}
.tool input::placeholder{color:var(--faint)}
.tool select{cursor:pointer}

/* ---------- detail page ---------- */
.back-link{margin:0 0 16px;font-size:var(--fs-micro)}
.detail-hero{padding-bottom:22px;border-bottom:1px solid var(--line)}
.detail-hero h1{font-size:clamp(22px,3.2vw,28px);max-width:34ch}
.detail-hero .lede{margin-top:10px;max-width:66ch}
.detail-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;color:var(--muted);font-size:var(--fs-micro);font-variant-numeric:tabular-nums}
.meta-item{display:inline-flex;gap:5px;align-items:baseline}
.detail-cta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.detail-cta .cta{margin-top:0}
.record-tags-detail{margin-top:16px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:16px;margin-top:20px}
.detail-grid>div,.detail-grid>aside{display:grid;align-content:start;gap:16px}
.panel{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.panel h2{margin:0 0 13px;font-size:16px}
.panel-note{margin:13px 0 0;padding-top:11px;border-top:1px solid var(--line);color:var(--muted);font-size:var(--fs-micro)}
.state-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.state-grid>div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 13px;background:var(--bg);border-radius:6px}
.state-grid span:first-child{color:var(--muted);font-size:var(--fs-micro)}
.evidence-list{list-style:none;margin:0;padding:0}
.evidence-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:13px 0;border-top:1px solid var(--line)}
.evidence-row:first-child{border-top:0;padding-top:0}
.evidence-main strong{display:block;font-size:var(--fs-small);font-weight:650}
.evidence-main .url{display:block;margin-top:3px;color:var(--accent);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;
  overflow-wrap:anywhere;word-break:break-all}
.evidence-main .url:hover{text-decoration:underline}
.evidence-note{margin:6px 0 0;color:var(--muted);font-size:var(--fs-micro);overflow-wrap:anywhere}
.evidence-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.evidence{color:var(--faint);font-size:11.5px}
.facts dl{display:grid;grid-template-columns:96px minmax(0,1fr);gap:9px 12px;margin:0}
.facts dt{color:var(--muted);font-size:var(--fs-micro);padding-top:2px}
.facts dd{margin:0;overflow-wrap:anywhere;font-size:var(--fs-micro);line-height:1.6}
.caution{border-color:#e8dcb8;background:#fffdf4}
.caution p{margin:0 0 8px;color:#7a6215;font-size:var(--fs-micro);line-height:1.65}
.caution p:last-child{margin-bottom:0}

/* ---------- detail metadata ---------- */
.arxiv{background:var(--soft);padding:1px 4px;border-radius:3px}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .detail-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  :root{--pad:16px}
  .topbar-inner{height:50px;gap:10px}
  .topbar nav{gap:0}
  .topbar nav a{padding:7px 8px;font-size:var(--fs-micro)}
  .intro{padding-top:32px}
  .section{padding-top:32px}
  .card-grid{grid-template-columns:1fr}
  .home-page .record-card{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;padding:16px 12px}
  .home-page .record-card h3{grid-column:1/-1;grid-row:1;font-size:17px}
  .home-page .record-card .card-date{grid-column:1;grid-row:2;margin-top:7px}
  .home-page .record-card .card-meta{grid-column:1/-1;grid-row:3;margin-top:7px}
  .home-page .record-card .card-foot{grid-column:2;grid-row:2;justify-content:flex-end}
  .home-page .record-card .card-summary{grid-column:1/-1;grid-row:4}
  .home-page .record-card .summary-toggle{grid-column:1/-1;grid-row:5;justify-self:start}
  .filter-group{display:block}
  .filter-label{display:block;padding:0;margin-bottom:4px}
  .results-head{align-items:flex-start;gap:10px}
  .sort-control{flex-direction:column;align-items:flex-end;gap:3px}
  .sort-control select{max-width:150px}
  .state-grid{grid-template-columns:1fr}
  .taxonomy-detail,.taxonomy-filter-grid{grid-template-columns:1fr}
  .evidence-row{grid-template-columns:1fr}
  .evidence-side{flex-direction:row;align-items:center;flex-wrap:wrap}
  .detail-cta .cta{flex:1 1 auto;justify-content:center;text-align:center}
  .facts dl{grid-template-columns:84px minmax(0,1fr)}
  .footer{margin-top:36px}
  .footer-inner{flex-direction:column;gap:6px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .record-card{transition:none}
}
