/* ========== Base (funciona no Quarto) ========== */
.pub-grid{
  display:grid;
  grid-template-columns:1fr;   /* mobile */
  gap:1rem;
}
.pub-card{
  background:#fff;
  border:1px solid #e6e6e6;
  border-radius:14px;
  padding:18px 20px;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
}
.pub-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:6px;
}
.pub-title{
  margin:0;
  font-size:1.25rem;
  font-weight:700;
  line-height:1.25;
}
.pub-title a{ text-decoration:none; }
.pub-ext{ white-space:nowrap; font-weight:600; text-decoration:none; }
.pub-sub{ margin-bottom:.25rem; color:#6b7280; }

.pill{
  display:inline-block;
  padding:4px 10px;
  border:1px solid #e6e6e6;
  border-radius:999px;
  background:#f7f7f9;
  font-size:.85rem;
  margin-right:.4rem;
  margin-bottom:.4rem;
}
.pub-apa{
  margin:.5rem 0 .25rem;
  color:#4b5563;
  line-height:1.5;
  font-size:.95rem;
}
.pub-links{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin:.5rem 0 .25rem;
}
.pill-link{
  display:inline-block;
  padding:4px 10px;
  border:1px solid #e6e6e6;
  border-radius:999px;
  background:#fff;
  text-decoration:none;
  font-size:.85rem;
}
.pill-link i{ margin-right:.35rem; }
.pub-note{ margin:.25rem 0 0; font-size:.95rem; color:#6b7280; }

/* 2 colunas em telas largas */
@media (min-width: 992px){
  .pub-grid{ grid-template-colum

