.research-index-page .pack-list { margin: var(--ui-space-6) 0 0; }
.research-index-page .pack-entry {
  display: block; max-width: 950px; padding: var(--ui-space-6);
  border: 1px solid var(--ui-border); border-radius: var(--ui-radius-md);
  background: var(--ui-surface); color: var(--ui-text); text-decoration: none;
}
.research-index-page .pack-entry:hover,
.research-index-page .pack-entry:focus-visible { border-color: var(--ui-accent); }
.research-index-page .pack-meta {
  display: flex; flex-wrap: wrap; gap: var(--ui-space-2) var(--ui-space-4);
  margin-bottom: var(--ui-space-3); color: var(--ui-muted);
  font-family: var(--sans); font-size: var(--ui-text-sm); letter-spacing: 0; text-transform: none;
}
.research-index-page .pack-entry h3 {
  max-width: 30ch; margin: 0 0 var(--ui-space-3); color: var(--ui-text);
  font-family: var(--sans); font-size: var(--ui-title-sm); font-weight: 650;
  line-height: 1.2; letter-spacing: 0;
}
.research-index-page .pack-entry p { max-width: 72ch; margin: 0 0 var(--ui-space-3); color: var(--ui-muted); line-height: 1.65; }
.research-index-page .pack-pubs { display: flex; flex-wrap: wrap; gap: var(--ui-space-2) 0; margin: var(--ui-space-4) 0; }
.research-index-page .pack-pubs span { color: var(--ui-muted); font-size: var(--ui-text-sm); }
.research-index-page .pack-pubs span + span::before { content: "·"; margin: 0 var(--ui-space-2); color: var(--ui-muted); }
.research-index-page .pack-go { display: inline-block; color: var(--ui-accent); font-size: var(--ui-text-sm); font-weight: 650; text-decoration: underline; text-underline-offset: 3px; }

.research-index-page .queue { list-style: none; max-width: 900px; margin: var(--ui-space-6) 0 0; padding: 0; }
.research-index-page .queue li {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ui-space-2) var(--ui-space-3);
  padding: var(--ui-space-4) 0; border-top: 1px solid var(--ui-border);
  color: var(--ui-muted); font-size: var(--ui-text-sm); line-height: 1.6;
}
.research-index-page .queue li:last-child { border-bottom: 1px solid var(--ui-border); }
.research-index-page .queue b { color: var(--ui-text); font-weight: 650; }
.research-index-page .queue-state { margin-left: auto; color: var(--ui-muted); font-size: var(--ui-text-sm); }
@media (max-width: 600px) {
  .research-index-page .queue-state { width: 100%; margin-left: 0; }
  .research-index-page .pack-entry { padding: var(--ui-space-4); }
}
