/* ==========================================================================
   Authentic WeChat / iOS Native Style Pull-to-Refresh Engine
   Accordion Flow Architecture: Zero clipping, zero item overlap
   ========================================================================== */

.ptr-indicator {
  height: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 10;
  user-select: none;
  -webkit-user-select: none;
  opacity: 0;
  width: 100%;
  flex-shrink: 0;
  transition: height 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.15s ease;
}

.ptr-indicator.ptr-pulling {
  transition: none !important;
}

.ptr-indicator.ptr-visible {
  opacity: 1 !important;
}

.ptr-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: transparent;
  color: #8e8e93;
  font-size: 13px;
  font-weight: 500;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Helvetica Neue", sans-serif;
  letter-spacing: -0.1px;
}

[data-theme="obsidian"] .ptr-pill {
  color: #64748b;
}

.ptr-icon {
  width: 16px;
  height: 16px;
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8e8e93;
}

.ptr-icon svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  stroke-width: 2.2;
}

.ptr-indicator.ptr-threshold .ptr-icon {
  transform: rotate(180deg);
}

.ptr-indicator.ptr-loading .ptr-icon {
  animation: ptr-spin 0.75s linear infinite;
}

@keyframes ptr-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.ptr-text {
  line-height: 1;
  white-space: nowrap;
}
