/* ── Pull-to-Refresh ── */

.ptr-indicator {
    position: fixed;
    top: 0;
    left: 50%;
    z-index: 9999;
    transform: translateX(-50%) translateY(-60px);
    opacity: 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
    pointer-events: none;
}

.ptr-indicator__content {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--t-card-bg, rgba(10, 5, 5, 0.9));
    border: 1px solid var(--t-card-border, rgba(239, 68, 68, 0.2));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    color: var(--t-accent, #ef4444);
}

.ptr-indicator__arrow {
    transition: transform 0.25s ease;
}

.ptr-indicator--ready .ptr-indicator__content {
    border-color: var(--t-accent, #ef4444);
    box-shadow: 0 4px 20px rgba(239, 68, 68, 0.3);
}

.ptr-indicator--refreshing .ptr-indicator__content {
    border-color: var(--t-accent, #ef4444);
}

.ptr-indicator__spinner {
    animation: ptr-spin 0.8s linear infinite;
}

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

.ptr-indicator__arrow.hidden,
.ptr-indicator__spinner.hidden {
    display: none;
}