/* Page loader (logo + obracający się pierścień) — wspólny dla stron publicznych i panelu */

:root {
  --ptnr-loader-navy: #19274d;
  --ptnr-loader-gold: #f8ac0d;
  --ptnr-loader-ring: 12px;
}

html.ptnr-boot-pending body {
  overflow: hidden;
}

html.ptnr-boot-pending body > *:not(#ptnr-page-loader) {
  visibility: hidden !important;
}

html.ptnr-boot-pending #ptnr-page-loader.ptnr-page-loader--boot {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition: none;
}

html.ptnr-boot-pending #ptnr-page-loader.ptnr-page-loader--boot .ptnr-page-loader__disk {
  transform: scale(1);
  opacity: 1;
}

.ptnr-page-loader {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    visibility 0s linear 0.4s;
}

.ptnr-page-loader.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s;
}

.ptnr-page-loader__disk {
  position: relative;
  width: 8rem;
  height: 8rem;
  flex-shrink: 0;
  transform: scale(0.93);
  opacity: 0.88;
  transition:
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s ease;
}

.ptnr-page-loader.is-visible .ptnr-page-loader__disk {
  transform: scale(1);
  opacity: 1;
}

.ptnr-page-loader__spin {
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  border-radius: 50%;
  border: var(--ptnr-loader-ring) solid transparent;
  border-top-color: var(--ptnr-loader-navy);
  border-right-color: var(--ptnr-loader-gold);
  border-bottom-color: transparent;
  border-left-color: transparent;
  animation: ptnr-page-loader-rotate 1.25s linear infinite;
  will-change: transform;
  transform: translateZ(0);
}

.ptnr-page-loader__hole {
  position: absolute;
  inset: var(--ptnr-loader-ring);
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 1px rgba(25, 39, 77, 0.06);
}

.ptnr-page-loader__logo {
  width: 64%;
  height: 64%;
  object-fit: contain;
  border-radius: 50%;
}

@media (prefers-reduced-motion: reduce) {
  .ptnr-page-loader,
  .ptnr-page-loader.is-visible {
    transition-duration: 0.01s;
    transition-delay: 0s;
  }

  .ptnr-page-loader__disk {
    transition-duration: 0.01s;
    transform: scale(1);
    opacity: 1;
  }

  .ptnr-page-loader__spin,
  html.ptnr-boot-pending #ptnr-page-loader.ptnr-page-loader--boot .ptnr-page-loader__spin {
    animation: none;
  }
}

@keyframes ptnr-page-loader-rotate {
  to {
    transform: translateZ(0) rotate(360deg);
  }
}
