/* Pull-to-refresh — camadas stack + notificações (mobile) */

.rf-stack-ptr-orb {
  position: fixed;
  left: 50%;
  top: 0;
  z-index: 2147482850;
  pointer-events: none;
  opacity: 0;
  transform: translateX(-50%) scale(0.7);
  transition: opacity 0.16s ease, transform 0.16s ease;
  color: rgba(255, 255, 255, 0.62);
}

.rf-stack-ptr-orb.is-visible {
  opacity: 1;
}

.rf-stack-ptr-indicator {
  width: 20px;
  height: 20px;
  display: block;
}

.rf-stack-ptr-spinner {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1.75px solid rgba(255, 255, 255, 0.22);
  border-top-color: rgba(255, 255, 255, 0.72);
  box-sizing: border-box;
  display: block;
}

.rf-stack-ptr-orb.is-visible .rf-stack-ptr-spinner {
  animation: rfStackPtrSpin 0.95s linear infinite;
}

.rf-stack-ptr-orb.is-refreshing .rf-stack-ptr-spinner {
  border-top-color: rgba(255, 255, 255, 0.9);
  animation-duration: 0.65s;
}

.rf-stack-tab-body.rf-stack-ptr-shift,
.rf-notif-overlay-body.rf-stack-ptr-shift {
  will-change: transform;
}

@keyframes rfStackPtrSpin {
  to {
    transform: rotate(360deg);
  }
}

html[data-rf-theme="light"] .rf-stack-ptr-orb {
  color: rgba(0, 0, 0, 0.55);
}

html[data-rf-theme="light"] .rf-stack-ptr-spinner {
  border-color: rgba(0, 0, 0, 0.14);
  border-top-color: rgba(0, 0, 0, 0.58);
}
