.action-filter-results .action-roll-card {
  align-items: flex-start;
  border: 1px solid #46546a;
  border-radius: .65rem;
  background: #101620;
  padding: .75rem;
  box-shadow: inset 3px 0 0 #46546a;
}

.action-filter-results .action-roll-card:not([data-roll-set="Core Combat"]):not([data-roll-set="Trials"]) {
  border-color: #6f5a30;
  box-shadow: inset 3px 0 0 var(--accent);
}

.action-filter-results .action-roll-card .roll-description {
  width: 100%;
}

.action-filter-results .action-roll-card .roll-title-line > strong {
  font-size: 1rem;
}

.action-filter-results .action-roll-card .roll-attempt-footer {
  margin-bottom: 0;
}

/* Combat result participants use role-specific color rather than relying only
   on the small PC/NPC badge. This makes actor/target relationships scan quickly
   in the horizontal Action Log and the detached combat monitor. */
.action-participant {
  display: inline-block;
  border-radius: .32rem;
  padding: .05rem .28rem;
  font-weight: 850;
}

.action-participant.pc {
  color: #b9e4ff;
  background: #12304a;
  box-shadow: inset 0 0 0 1px #315f7f;
}

.action-participant.npc {
  color: #ffc6cf;
  background: #401d27;
  box-shadow: inset 0 0 0 1px #7a3b4b;
}

.action-participant.unknown {
  color: #ffe0a1;
  background: #3a2b13;
  box-shadow: inset 0 0 0 1px #846229;
}

.action-result-pc {
  box-shadow: inset 3px 0 0 #315f7f;
}

.action-result-npc {
  box-shadow: inset 3px 0 0 #7a3b4b;
}

.action-result-opponent {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  margin-left: .22rem;
  white-space: normal;
}

.action-result-opponent .role-badge {
  padding: .12rem .38rem;
  font-size: .62rem;
  vertical-align: middle;
}

.action-defense-context {
  line-height: 1.45;
}

/* Inventory/catalog equipment uses an explicit responsive track count so an
   incomplete row never stretches its last cards and normal desktop widths keep
   the intended three-card rhythm. */
.catalog-item-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-content: start;
  align-items: start;
}

.catalog-item-grid > .catalog-item-card {
  width: 100%;
  min-width: 0;
  align-self: start;
  border: 1px solid #39465b;
  border-radius: .7rem;
  background: #101620;
  padding: .85rem;
  box-shadow: inset 3px 0 0 #39465b;
}

.catalog-item-grid > .catalog-item-card:hover {
  border-color: #59687d;
}

@media (max-width: 900px) {
  .catalog-item-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .catalog-item-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
