/* Portal Pendidikan v03 — loading ringan tanpa kartu/modal. */
:root {
  --portal-loading-accent: #078ee8;
  --portal-loading-track: rgba(7, 142, 232, 0.18);
  --portal-loading-layer: rgba(239, 248, 245, 0.46);
}

#ownerLoading.loading:not(.hidden),
#foundationLoading.loading:not(.hidden),
#loading.loading:not(.hidden),
.portal-loading-v03,
.portal-loading-v03-inline {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1000 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  transform: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--portal-loading-layer) !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(6px) saturate(0.92) !important;
  backdrop-filter: blur(6px) saturate(0.92) !important;
}

#ownerLoading.loading:not(.hidden) > b,
#foundationLoading.loading:not(.hidden) > b,
#loading.loading:not(.hidden) > b,
.portal-loading-v03-content > :not(.portal-loading-v03-spinner) {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

#ownerLoading.loading:not(.hidden) > span,
#foundationLoading.loading:not(.hidden) > span,
#loading.loading:not(.hidden) > span,
.portal-loading-v03-spinner,
.portal-loading-v03-inline::before {
  content: "";
  display: block !important;
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 3px solid var(--portal-loading-track) !important;
  border-top-color: var(--portal-loading-accent) !important;
  border-right-color: rgba(8, 96, 145, 0.5) !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.34) !important;
  animation: portal-loading-v03-spin 0.72s linear infinite !important;
}

.portal-loading-v03-content {
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.portal-loading-v03-inline {
  font-size: 0 !important;
  color: transparent !important;
}

@keyframes portal-loading-v03-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  #ownerLoading.loading:not(.hidden) > span,
  #foundationLoading.loading:not(.hidden) > span,
  #loading.loading:not(.hidden) > span,
  .portal-loading-v03-spinner,
  .portal-loading-v03-inline::before {
    animation-duration: 1.25s !important;
  }
}

@media print {
  #ownerLoading,
  #foundationLoading,
  #loading,
  .portal-loading-v03,
  .portal-loading-v03-inline {
    display: none !important;
  }
}
