.publications-page [hidden] { display: none !important; }
.pub-eyebrow { color: #667780; font-size: .8em; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .7em; }
.publications-page header.main h1 { margin-bottom: .3em; }
.pub-filters { display: grid; grid-template-columns: minmax(240px, 2fr) repeat(3, minmax(130px, 1fr)); gap: 1.2rem; padding: 1.5rem; background: #f5f8f9; border: 1px solid #e1e8eb; border-radius: .4rem; margin: 2rem 0 1rem; }
.pub-filters label { font-size: .9em; margin-bottom: .6em; }
.pub-filters input, .pub-filters select { background-color: white; }
.pub-filter-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .8rem; }
.pub-filter-actions button { font-size: .7em; }
.pub-results-bar { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .8rem 0; border-bottom: 1px solid #dce4e7; font-size: .9em; color: #65747d; }
.pub-results-bar p { margin: 0; font-weight: 600; }
.pub-card { padding: 1.6rem 0; border-bottom: 1px solid #e3e9ec; }
.pub-meta { display: flex; gap: .85rem; align-items: center; color: #64747d; font-size: .8em; margin-bottom: .8rem; }
.pub-year { color: #275d72; background: #edf4f6; padding: .15em .7em; border-radius: .25rem; font-weight: 700; }
.pub-card h2 { font-size: 1.25em; line-height: 1.5; margin-bottom: .55em; }
.pub-authors { margin-bottom: .4em; overflow-wrap: anywhere; }
.pub-venue { font-size: .95em; color: #64747d; margin-bottom: .8em; font-style: italic; }
.pub-actions { display: flex; flex-wrap: wrap; gap: .6rem 1.25rem; align-items: baseline; font-size: .9em; }
.pub-actions a, .pub-bib summary { color: #275d72; }
.pub-bib summary { cursor: pointer; }
.pub-bib[open] { flex-basis: 100%; }
.pub-bib pre { margin: .8rem 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.pub-bib code { display: block; white-space: pre-wrap; }
.pub-download { font-size: .75em; }
.pub-pagination { display: flex; align-items: center; justify-content: center; gap: 1.5rem; margin-top: 2rem; }
.pub-empty { padding: 3rem 1rem; text-align: center; background: #f7f9fa; }
@media screen and (max-width: 1280px) { .pub-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pub-search { grid-column: 1 / -1; } }
@media screen and (max-width: 600px) { .pub-filters { grid-template-columns: minmax(0, 1fr); padding: 1rem; } .pub-pagination { gap: .7rem; } .pub-pagination button { padding: 0 1em; } }
