.sidebar {
  min-height: calc(100vh - 56px);
}
.cursor-pointer {
  cursor: pointer;
}

/* .small + .text-muted stacks reduced font-size with reduced contrast; bump
   contrast back up for anything using both (descriptions, table cell values). */
.small.text-muted {
  color: var(--bs-secondary-color, #6c757d);
}

/* Tighter rows than table-sm's default 0.25rem cell padding.
   table.geodata-table (vs .geodata-table) outranks Bootstrap's own
   .table-sm > :not(caption) > * > * rule, which has equal specificity
   otherwise and would win on source order. */
table.geodata-table > :not(caption) > * > * {
  padding-top: .15rem;
  padding-bottom: .15rem;
}

/* A .stretched-link's ::after has z-index:1 (Bootstrap), which always paints
   above a plain position:static/auto-z-index sibling regardless of DOM order.
   Any interactive element layered over a stretched-link card needs its own
   position + a higher z-index or clicks silently hit the link instead. */
.card-actions {
  position: relative;
  z-index: 2;
}

