/* Pull to Refresh Styles */
.ptr-indicator {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 80px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 10px;
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transform: translateY(0);
    transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0));
}

.ptr-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.ptr-spinner {
    width: 32px;
    height: 32px;
    color: #1f2937;
    animation: ptr-rotate 1s linear infinite;
    opacity: 0.7;
}

.ptr-spinner-circle {
    stroke-dasharray: 60;
    stroke-dashoffset: 0;
    transform-origin: center;
}

.ptr-indicator.ptr-ready .ptr-spinner {
    color: #10b981;
    opacity: 1;
}

.ptr-indicator.ptr-refreshing .ptr-spinner {
    animation: ptr-rotate 0.6s linear infinite;
}

.ptr-indicator.ptr-refreshing .ptr-spinner-circle {
    animation: ptr-dash 1.5s ease-in-out infinite;
}

.ptr-text {
    font-size: 13px;
    font-weight: 600;
    color: #6b7280;
    transition: color 0.2s ease;
}

.ptr-indicator.ptr-ready .ptr-text {
    color: #10b981;
}

.ptr-indicator.ptr-refreshing .ptr-text {
    color: #1f2937;
}

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

@keyframes ptr-dash {
    0% {
        stroke-dasharray: 1, 200;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 100, 200;
        stroke-dashoffset: -35;
    }
    100% {
        stroke-dasharray: 100, 200;
        stroke-dashoffset: -124;
    }
}

/* Disable pull-to-refresh on desktop */
@media (min-width: 768px) {
    .ptr-indicator {
        display: none;
    }
}
