body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  max-width: 1024px;
  margin: 2rem auto;
  padding: 0 1rem;
  color: #1a1a1a;
}
header { border-bottom: 1px solid #ddd; margin-bottom: 1.5rem; }
h1 { margin: 0 0 0.5rem; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 0.5rem 0.75rem; border-bottom: 1px solid #eee; }
.btn { padding: 0.35rem 0.75rem; border: 1px solid #888; background: #fafafa; cursor: pointer; }
.btn:hover { background: #f0f0f0; }
.pill { padding: 0.15rem 0.5rem; border-radius: 999px; font-size: 0.8em; }
.pill-ok { background: #d6f5d6; }
.pill-warn { background: #fff3cd; }
.pill-err { background: #f8d7da; }
.error { color: #b00020; }
.muted { color: #888; font-size: 0.9em; }
.pill-grey { background: #e0e0e0; color: #555; }

/* Sources listing: nested endpoints table for each source row */
.sources-table > tbody > tr > td { vertical-align: top; }
.sources-table .endpoint-subtable {
  width: 100%;
  background: #f6f8fa;
  font-size: 0.85em;
  border: 1px solid #e1e4e8;
  border-radius: 4px;
  margin: 0;
}
.sources-table .endpoint-subtable th,
.sources-table .endpoint-subtable td {
  padding: 0.3rem 0.5rem;
  border-bottom: 1px solid #e8eaed;
}
.sources-table .endpoint-subtable th { background: #eef1f4; font-size: 0.9em; }
.sources-table .endpoint-subtable tr:last-child td { border-bottom: none; }
