.pub-app { margin-top: 1em; font-size: 0.95em; }

.pub-filters { display: flex; flex-wrap: wrap; gap: 0.5em; margin-bottom: 1.5em; }
.pub-filter-btn {
  border: 1px solid #d5d5d5; background: #fff; border-radius: 999px;
  padding: 0.35em 0.9em; font-size: 0.85em; cursor: pointer;
  display: inline-flex; align-items: center; gap: 0.4em; color: #333;
  transition: background 0.15s, border-color 0.15s;
}
.pub-filter-btn:hover { border-color: #999; }
.pub-filter-btn.active { background: #333; color: #fff; border-color: #333; }
.pub-filter-btn.active .pub-dot { border-color: #fff; }

.pub-dot { width: 0.7em; height: 0.7em; border-radius: 50%; display: inline-block; border: 1px solid rgba(0,0,0,0.15); }
.pub-journal    { background: #d64545; }
.pub-conference { background: #3a7bd5; }
.pub-workshop   { background: #8a8f98; }
.pub-book       { background: #e0b400; }
.pub-editorship { background: #17a2a2; }
.pub-thesis { background: #a217a2; }

.pub-year-heading {
  font-size: 1.3em; font-weight: 700; margin: 1.6em 0 0.8em;
  padding-bottom: 0.2em; border-bottom: 2px solid #eee;
}
.pub-year-heading:first-child { margin-top: 0.4em; }

.pub-entry {
  position: relative; margin: 0 0 1em; padding: 0.7em 1em 0.7em 1em;
  border-left: 5px solid #8a8f98; background: #fafafa; border-radius: 4px;
}
.pub-entry.pub-journal    { border-left-color: #d64545; }
.pub-entry.pub-conference { border-left-color: #3a7bd5; }
.pub-entry.pub-workshop   { border-left-color: #8a8f98; }
.pub-entry.pub-book       { border-left-color: #e0b400; }
.pub-entry.pub-editorship { border-left-color: #17a2a2; }
.pub-entry.pub-thesis { border-left-color: #a217a2; }
.pub-entry.pub-hidden { display: none; }

.pub-badge {
  display: inline-block; font-size: 0.68em; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.03em; padding: 0.15em 0.55em; border-radius: 3px; color: #fff;
  margin-right: 0.6em; vertical-align: middle;
}
.pub-badge.pub-journal    { background: #d64545; }
.pub-badge.pub-badge.pub-conference { background: #3a7bd5; }
.pub-badge.pub-conference { background: #3a7bd5; }
.pub-badge.pub-workshop   { background: #8a8f98; }
.pub-badge.pub-book       { background: #b5960a; }
.pub-badge.pub-editorship { background: #148a8a; }
.pub-badge.pub-thesis { background: #a217a2; }

.pub-title { font-weight: 600; }
.pub-authors { color: #444; margin-top: 0.15em; }
.pub-venue { font-style: italic; color: #555; margin-top: 0.1em; }
.pub-note { font-weight: 700; color: #b5960a; margin-top: 0.3em; }

.pub-links { margin-top: 0.5em; display: flex; flex-wrap: wrap; gap: 0.6em; }
.pub-links a, .pub-links summary {
  cursor: pointer; font-size: 0.85em; color: #2757a8; text-decoration: none;
  border: 1px solid #cdd9ea; background: #eef3fb; padding: 0.2em 0.6em; border-radius: 4px;
  display: inline-block; list-style: none;
}
.pub-links a:hover, .pub-links summary:hover { background: #dde9f9; }
.pub-links summary::-webkit-details-marker { display: none; }
.pub-links .pub-pdf { border-color: #cfe3cf; background: #eef7ee; color: #2a7a2a; }
.pub-links .pub-pdf:hover { background: #dcefdc; }

details.pub-fold[open] { flex-basis: 100%; }
.pub-fold-body {
  margin-top: 0.5em; padding: 0.6em 0.8em; background: #fff;
  border: 1px solid #e3e3e3; border-radius: 4px; font-size: 0.92em;
}
.pub-fold-body pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-size: 0.85em; }
.pub-abstract-body { line-height: 1.5; color: #333; }

.pub-empty { color: #777; font-style: italic; padding: 1em 0; }
