:root{--sp-loader-accent:#635bff;--sp-loader-bg:rgba(15,23,42,.48)}
#spGlobalLoader{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;background:var(--sp-loader-bg);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
body.sp-page-loading #spGlobalLoader{display:flex}
.sp-loader-card{min-width:260px;max-width:min(88vw,460px);background:#fff;border-radius:18px;padding:22px 24px;box-shadow:0 24px 70px rgba(15,23,42,.28);display:flex;align-items:center;gap:16px;color:#172033}
.sp-loader-wheel{width:30px;height:30px;border:3px solid #e5e7eb;border-top-color:var(--sp-loader-accent);border-radius:50%;animation:spSpin .75s linear infinite;flex:0 0 auto}
.sp-loader-copy strong{display:block;font-size:15px}.sp-loader-copy small{display:block;margin-top:4px;color:#667085;line-height:1.35}
#spLoadingBar{position:fixed;z-index:100000;top:0;left:0;height:3px;width:0;background:var(--sp-loader-accent);opacity:0;transition:width .2s ease,opacity .2s ease}
body.sp-page-loading #spLoadingBar,body.sp-async-loading #spLoadingBar{opacity:1;width:72%}
body.sp-page-loading #spLoadingBar{width:92%}
.sp-submit-loading{position:relative;opacity:.78!important;pointer-events:none!important}
.sp-submit-loading::after{content:"";display:inline-block;width:13px;height:13px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:spSpin .65s linear infinite}
@keyframes spSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.sp-loader-wheel,.sp-submit-loading::after{animation-duration:1.5s}}
