body {
  background-color: #f8f9fa;
}

.navbar-brand {
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: -0.01em;
}

/* cards */
.issue-card {
  margin-bottom: 0.65rem;
}

.issue-card .card {
  border: 1px solid #e9ecef;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: none;
  transition: border-color 0.15s ease;
}

.issue-card .card-body {
  padding: 1rem 1.1rem;
}

.issue-card .card:hover {
  border-color: #adb5bd;
}

/* issue title link */
.issue-card a {
  color: #212529;
  text-decoration: none;
  font-weight: 500;
  line-height: 1.4;
}

.issue-card a:hover {
  color: #0d6efd;
}

/* score dots */
.score-dots {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding-top: 2px;
}

.dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.dot-filled {
  background-color: #0d6efd;
}

.dot-empty {
  background-color: #dee2e6;
}

/* filter row */
.filter-row {
  background: #ffffff;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 0.85rem 1rem 0 1rem;
  margin-bottom: 1rem;
}

/* empty state */
.empty-state {
  text-align: center;
  padding: 3rem 1rem;
  color: #6c757d;
  background: #ffffff;
  border: 1px solid #e9ecef;
  border-radius: 8px;
}

/* results count */
.results-meta {
  font-size: 0.85rem;
  color: #6c757d;
  margin-bottom: 0.75rem;
}

/* body preview text */
.issue-body {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #6c757d;
  font-size: 0.82rem;
  line-height: 1.45;
  margin-bottom: 0.35rem;
}

/* reason text */
.issue-reason {
  color: #6c757d;
  font-size: 0.82rem;
  font-style: italic;
  line-height: 1.45;
  margin-bottom: 0.5rem;
}

/* meta row at bottom of card */
.issue-meta {
  font-size: 0.78rem;
  color: #adb5bd;
}