.card-header {
  background-color: #007bff;
  color: white;
}

.placeholder-glow .placeholder {
  background-color: rgba(0, 0, 0, 10%);
}

.block-queue {
  display: flex;
  flex-wrap: wrap;
  gap: 15px; /* Space between blocks and connectors */
  align-items: center;
  justify-content: center;
}

.block {
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  font-weight: bold;
  color: #fff;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 30%);
  position: relative;
}

.requested {
  background-color: #6c757d; /* Gray for requested */
  --bs-spinner-width: 2rem;
  --bs-spinner-height: 2rem;
  --bs-spinner-vertical-align: -0.125em;
  --bs-spinner-animation-speed: 2.00s;
  --bs-spinner-animation-name: spinner-grow;
  vertical-align: var(--bs-spinner-vertical-align);
  animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
}

.received {
  background-color: #007bff; /* Blue for received */
}

.matched {
  background-color: #28a745; /* Green for matched */
}

.connector {
  width: 15px;
  height: 3px;
  background-color: #888;
  border-radius: 2px;
  position: relative;
  top: -5px; /* Align with the blocks */
  box-shadow: 1px 1px 2px rgba(0, 0, 0, 30%);
}

/* Block marker for current target */
.target {
  background-color: #ffc107; /* Yellow to highlight the target */
  border: 1px solid #ffeb3b;
  --bs-spinner-width: 2rem;
  --bs-spinner-height: 2rem;
  --bs-spinner-vertical-align: -0.125em;
  --bs-spinner-animation-speed: 1.30s;
  --bs-spinner-animation-name: spinner-grow;
  vertical-align: var(--bs-spinner-vertical-align);
  animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
}

/* Future blocks beyond the current sync height */
.future {
  background-color: #e0e0e0; /* Light grey for future blocks */
  color: #6c757d;
  --bs-spinner-width: 2rem;
  --bs-spinner-height: 2rem;
  --bs-spinner-vertical-align: -0.125em;
  --bs-spinner-animation-speed: 3.50s;
  --bs-spinner-animation-name: spinner-grow;
  vertical-align: var(--bs-spinner-vertical-align);
  animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
}

.map {
  width: 100%;
  height: 100%;
}

.ol-viewport {
  background: #f0f0f0;
}

#consensusMapInfo {
  position: absolute;
  display: inline-block;
  height: auto;
  width: auto;
  z-index: 100;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 4px;
  padding: 5px;
  left: 50%;
  transform: translateX(3%);
  visibility: hidden;
  pointer-events: none;
}
