/* Publications grid and its toolbar. */

.pubbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.pubbar input, .pubbar select {
  padding: 6px 10px; border: 1px solid var(--line-2); border-radius: var(--r);
  background: var(--surface); font-size: 13px;
}
.pubbar input { flex: 1 1 260px; }

.yrhead {
  display: flex; align-items: baseline; gap: 10px;
  margin: 20px 0 12px; padding: 6px 12px;
  background: var(--accent-soft); border-left: 3px solid var(--accent); border-radius: var(--r);
}
.yrhead h2 { font-size: 13px; font-weight: 700; color: var(--accent); font-family: var(--font-mono); }
.yrhead span { font-size: 11.5px; color: var(--ink-3); }

.pubgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.pub {
  border: 1px solid var(--line); border-radius: var(--r); background: var(--surface);
  padding: 12px; display: grid; gap: 6px; align-content: start;
}
.pub .venue { font-size: 11px; font-weight: 700; color: var(--accent); letter-spacing: .01em; }
.pub h3 { font-size: 13.5px; font-weight: 700; line-height: 1.45; }
.pub h3 a:hover { color: var(--accent); }
.pub .au { font-size: 11.5px; color: var(--ink-2); line-height: 1.5; }
.pub .au b { color: var(--ink); }
.pub .foot2 {
  margin-top: 4px; padding-top: 7px; border-top: 1px solid var(--line);
  display: flex; gap: 12px; font-family: var(--font-mono); font-size: 11px; color: var(--ink-3);
}
.pub .foot2 .cite { margin-left: auto; }

#pubmore { height: 1px; }
.pubend { padding: 18px 0; text-align: center; font-size: 12px; color: var(--ink-3); }

@media (max-width: 960px) { .pubgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pubgrid { grid-template-columns: minmax(0, 1fr); } }
