/* ============================================================
   PUBLICATIONS  —  styles jekyll-scholar output + view tabs
   ============================================================ */

.pub-tabs{ display: inline-flex; gap: 4px; padding: 4px; margin: 0 auto var(--space-6);
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--radius-pill); }
.pub-tab{ padding: 0.5em 1.05em; border-radius: var(--radius-pill); font-size: var(--text-sm);
  font-weight: 600; color: var(--ink-muted); text-decoration: none; white-space: nowrap; }
.pub-tab:hover{ color: var(--ink); }
.pub-tab[aria-current="page"]{ background: var(--surface); color: var(--accent); box-shadow: var(--shadow-1); }

.pub-controls{ display: flex; align-items: center; justify-content: space-between; gap: var(--space-5);
  margin-bottom: var(--space-6); flex-wrap: wrap; }
.pub-search-wrap{ position: relative; display: flex; align-items: center; gap: var(--space-3); flex: 1 1 320px; }
.pub-search-icon{ position: absolute; left: 14px; width: 18px; height: 18px; color: var(--ink-faint); pointer-events: none; }
.pub-search{ width: 100%; padding: 0.7em 1em 0.7em 2.6em; border-radius: var(--radius-pill);
  border: 1px solid var(--field-border); background: var(--surface); color: var(--ink); font-size: var(--text-sm); }
.pub-search::placeholder{ color: var(--ink-faint); }
.pub-search-count{ font-size: var(--text-xs); color: var(--ink-muted); white-space: nowrap; }
.pub-jump{ display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.pub-jump label{ font-size: var(--text-sm); color: var(--ink-muted); font-weight: 600; }
.pub-jump select{ padding: 0.5em 0.8em; border-radius: var(--radius-sm); border: 1px solid var(--field-border);
  background: var(--surface); color: var(--ink); }

/* group card (year / topic / journal / author) */
.pub-group{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  margin-bottom: var(--space-6); overflow: clip; scroll-margin-top: 84px; }
.pub-group__head{ display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-4);
  padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--border); background: var(--surface-2); }
.pub-group__head h2, .pub-group__head h3{ font-family: var(--font-display); font-size: var(--text-lg); margin: 0; }
.pub-group__body{ padding: var(--space-4) var(--space-5); }
.pub-group--forthcoming{ border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.pub-group--forthcoming .pub-group__head{ background: var(--accent-tint); }
.pub-group__desc{ color: var(--ink-muted); font-size: var(--text-sm); padding: var(--space-3) var(--space-5) 0;
  border-left: 3px solid var(--accent); margin: var(--space-4) var(--space-5) 0; }

/* jekyll-scholar list output */
.pub-group__body ol, .pub-group__body ul{ margin: 0; padding-left: 1.4em; display: grid; gap: var(--space-4); }
.pub-group__body li{ font-family: var(--font-serif); font-size: var(--text-base); line-height: 1.55; color: var(--ink);
  padding-left: .2em; }
.pub-group__body li::marker{ color: var(--ink-faint); font-family: var(--font-sans); font-size: .85em; }
.pub-group__body a{ font-weight: 600; }
.pub-group__body .cs-title, .pub-group__body i{ color: var(--ink); }

/* back to top */
.back-to-top{ position: fixed; right: var(--space-5); bottom: var(--space-5); width: 46px; height: 46px;
  display: grid; place-items: center; border-radius: var(--radius-pill); background: var(--accent);
  color: var(--accent-contrast); box-shadow: var(--shadow-2); opacity: 0; pointer-events: none;
  transform: translateY(8px); transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); z-index: 900; }
.back-to-top.show{ opacity: 1; pointer-events: auto; transform: none; }
.back-to-top svg{ width: 20px; height: 20px; }

/* entry actions + abstract (from _layouts/bib.html) */
.pub-actions{ display: inline-flex; flex-wrap: wrap; gap: .4rem; margin-left: .4rem; vertical-align: baseline; }
.pub-link{
  font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; color: var(--accent); text-decoration: none;
  border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--border));
  padding: .12em .55em; border-radius: var(--radius-pill); line-height: 1.6; white-space: nowrap;
}
.pub-link:hover{ background: var(--accent-tint); color: var(--accent-hover); }
.pub-abstract{ margin-top: .5rem; }
.pub-abstract summary{
  cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: .35em;
  font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600;
  letter-spacing: .05em; text-transform: uppercase; color: var(--ink-muted);
}
.pub-abstract summary::-webkit-details-marker{ display: none; }
.pub-abstract summary::before{ content: "+"; font-weight: 700; color: var(--accent); }
.pub-abstract[open] summary::before{ content: "\2013"; }
.pub-abstract p{ font-family: var(--font-sans); font-size: var(--text-sm); color: var(--ink-muted);
  line-height: 1.6; margin-top: .5rem; max-width: 74ch; }
.pub-keywords{ color: var(--ink-faint); }

.pub-updated{ text-align: center; color: var(--ink-faint); font-size: var(--text-xs); margin-top: var(--space-6); }
