/* Full-page loading overlay */
.agk-page-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.75);
  z-index: 1060;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.2s ease-out;
  backdrop-filter: blur(1px);
}
.agk-page-overlay.is-visible {
  display: flex;
  opacity: 1;
}

.agk-page-spinner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.agk-page-spinner .spinner-border {
  width: 2.5rem;
  height: 2.5rem;
  border-width: 0.25em;
}

/* Per-field loading state */
.field-loading {
  position: relative;
}

.field-loading select {
  opacity: 0.6;
  pointer-events: none;
  cursor: wait;
}

.field-spinner {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--bs-primary);
  z-index: 10;
  display: flex;
  align-items: center;
  pointer-events: none;
}
