html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

/* Hide the validation summary box when there are no errors. */
.validation-summary-valid {
  display: none;
}

.htmx-indicator {
  opacity: 0;
  transition: opacity 150ms ease-in;
}
.htmx-request .htmx-indicator,
.htmx-request.htmx-indicator {
  opacity: 1;
}

/* Global loading overlay (shown on form submit with [data-loading] or opted-in htmx requests). */
.ov-loading-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(10, 20, 35, 0.45);
  backdrop-filter: blur(1px);
}
.ov-loading-overlay.show {
  display: flex;
}
.ov-loading-panel {
  min-width: 220px;
  padding: 1.5rem 2rem;
  background: #fff;
  border-radius: 0.75rem;
  box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.25);
}
.ov-loading-message {
  color: #212529;
  font-weight: 500;
}

/* ---- Dashboard KPI cards ---- */
.stat-card .stat-icon {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.55rem;
}
.stat-value {
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.1;
}
.stat-label {
  color: var(--bs-secondary-color);
  font-size: 0.85rem;
}
.dash-chart-host {
  position: relative;
  height: 280px;
}
.dash-activity .list-group-item {
  border-left: 0;
  border-right: 0;
  padding-left: 0;
  padding-right: 0;
}
