/**
 * Shared loading UI (.avn-loading-*)
 * Extracted from AOS01/admin.css + AOS02/style.css (identical blocks).
 * HTML/클래스 변경 없음.
 */
.avn-loading-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  /* gap: 10px; */
  padding: 20px;
  background: var(--aos-surface, #fff);
  border-radius: var(--aos-radius-sm, 6px);
  border: 1px solid var(--aos-border, #e5e7eb);
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: var(--aos-z-loading, 9999);
}

.avn-loading-spinner {
  width: 42px;
  height: 42px;
  border-radius: var(--aos-radius-circle, 50%);
  border: 4px solid rgba(37, 99, 235, 0.15);
  border-top-color: var(--aos-accent, #2563eb);
  animation: avn-spin 0.9s linear infinite;
}

@keyframes avn-spin {
  to {
    transform: rotate(360deg);
  }
}

.avn-loading-text {
  font-size: var(--aos-fs-sm, 13px);
  font-weight: 500;
  color: var(--aos-text-slate, #475569);
  padding-top: 5px;
  letter-spacing: -0.2px;
}
