/* ── Navbar ──────────────────────────────────────────────────────────────── */
.logo-img {
  filter: brightness(0) invert(1);
  max-width: 160px;
}

/* ── Table wrapper: horizontal + vertical scroll ─────────────────────────── */
.table-wrapper {
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 340px);
  min-height: 160px;
  -webkit-overflow-scrolling: touch; /* smooth scroll on iOS */
}

/* ── Frozen first column ─────────────────────────────────────────────────── */
.domain-table th.sticky-col,
.domain-table td.sticky-col {
  position: sticky;
  left: 0;
  z-index: 2;
  /* Box shadow creates a subtle divider line when the table scrolls */
  box-shadow: 2px 0 4px -1px rgba(0, 0, 0, 0.15);
}

/* For body rows, mirror Bootstrap's stripe/hover colors on the sticky cell */
.domain-table tbody tr td.sticky-col {
  background-color: rgb(255, 255, 255);
}
.domain-table.table-striped tbody tr:nth-of-type(odd) td.sticky-col {
  background-color: rgba(236, 236, 236, 1); /* Bootstrap 5 stripe */
}
.domain-table.table-hover tbody tr:hover td.sticky-col {
  background-color: rgba(236, 236, 236, 1); /* Bootstrap 5 hover */
}

/* ── Frozen header row ───────────────────────────────────────────────────── */
.domain-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background-color: #212529; /* matches table-dark */
}

/* thead sticky-col sits at both axes — needs the highest z-index */
.domain-table thead th.sticky-col {
  z-index: 5;
}

/* ── Sortable headers ────────────────────────────────────────────────────── */
.sortable {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.sortable:hover {
  background-color: #343a40 !important;
}

/* ── Group label badge under column header text ──────────────────────────── */
.col-group-badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
}

/* ── Table cell defaults ─────────────────────────────────────────────────── */
.domain-table td {
  white-space: nowrap;
  vertical-align: middle;
  font-size: 0.85rem;
}
.domain-table th {
  font-size: 0.8rem;
  vertical-align: bottom;
  padding-bottom: 6px;
}

/* ── Truncated long strings (with tooltip via title attr) ────────────────── */
.truncate-cell {
  display: inline-block;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
  cursor: help;
}

/* ── Column toggle dropdown ──────────────────────────────────────────────── */
.col-toggle-menu {
  min-width: 260px;
  max-height: 420px;
  overflow-y: auto;
}

/* ── Summary cards: slightly larger number ───────────────────────────────── */
.display-6 {
  font-size: 2rem;
}

/* ── Progress label spacing ──────────────────────────────────────────────── */
#progress-label .spinner-border {
  width: 0.85rem;
  height: 0.85rem;
  border-width: 0.15em;
}
/* ── Tighten up run checks ───────────────────────────────── */
.form-check-inline {
  margin-right: .25rem;
}

/* ── Responsive: compact padding on mobile ───────────────────────────────── */
@media (max-width: 576px) {
  .table-wrapper {
    max-height: calc(100vh - 260px);
  }
  .domain-table td,
  .domain-table th {
    font-size: 0.78rem;
    padding: 0.3rem 0.5rem;
  }
}
