.pickleball-loading-overlay{position:fixed;inset:0;z-index:9999;background:#fafcf8d9;backdrop-filter:blur(3px);display:grid;place-items:center;pointer-events:none}
.pickleball-loading-overlay[hidden]{display:none}
.pickleball-loading-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:#49634b;font-size:12px}
.pickleball-spinner{display:inline-block;width:48px;height:48px;background:url('pickleball-spinner.png?v=1') center/contain no-repeat;animation:pickleball-spin 1s linear infinite;filter:drop-shadow(0 4px 5px #45632b20);flex:none}
.schedule-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:120px}
.schedule-loading .pickleball-spinner{width:36px;height:36px}
.chat-refresh-label.is-visible{display:flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:4px}.chat-refresh-label .pickleball-spinner{width:26px;height:26px;filter:none}
.is-refreshing .player-refresh-ball,.pickleball-spinner{backface-visibility:hidden;will-change:transform}
.player-pull-indicator{background:transparent;box-shadow:none;border:0}
.player-pull-indicator{width:54px;height:54px}
.player-pull-indicator .player-refresh-ball{width:46px;height:46px}
.player-pull-indicator .player-refresh-ball{position:static;display:block;width:30px;height:30px;border:0;border-radius:0;object-fit:contain;background:none;transform:rotate(var(--pull-ball-angle,0deg));will-change:transform}
.is-refreshing .player-refresh-ball{animation:pickleball-pull-spin .9s linear infinite}
@keyframes pickleball-pull-spin{from{transform:rotate(var(--pull-ball-angle,0deg))}to{transform:rotate(calc(var(--pull-ball-angle,0deg) + 360deg))}}
@keyframes pickleball-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pickleball-spinner{animation:pickleball-spin 3s linear infinite}}


