.pull-to-refresh-container { position: relative; width: 100%; height: 100%; } .pull-to-refresh-indicator { position: fixed; top: 80px; left: 50%; transform: translateX(-50%); z-index: 1000; pointer-events: none; } .refresh-icon-container { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--message-background-color); border: 2px solid var(--border-color); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); transition: all 0.2s ease; } .refresh-icon-container.active { background: var(--primary-color); border-color: var(--primary-color); } .refresh-icon { width: 20px; height: 20px; color: var(--text-secondary); transition: color 0.2s ease; } .refresh-icon-container.active .refresh-icon { color: white; } .refresh-icon.spinning { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .pull-to-refresh-content { width: 100%; height: 100%; /* Completely normal scrolling */ overflow: visible; touch-action: auto; }