/* =========================================================
   IMPACT ONE — SHARED PAGE LOADER
   Visual language aligned with the existing Phunzirani loader.
========================================================= */
#pageLoader{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;opacity:1;visibility:visible;transition:opacity .35s ease,visibility .35s ease;}
#pageLoader.loaded{opacity:0;visibility:hidden;pointer-events:none;}
.loader-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:rgba(13,110,253,.08);color:#0d6efd;font-size:24px;animation:loaderIconAnimation 1.1s ease-in-out infinite;}
.loader-brand{margin-top:16px;font-family:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:18px;font-weight:600;color:#212529;letter-spacing:-.01em;}
.loader-text{margin-top:3px;font-family:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:12px;color:#8a8f98;}
.loader-spinner{width:30px;height:30px;margin-top:20px;border-radius:50%;border:3px solid rgba(13,110,253,.15);border-top-color:#0d6efd;animation:loaderSpin .8s linear infinite;}
@keyframes loaderIconAnimation{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.04)}}
@keyframes loaderSpin{to{transform:rotate(360deg)}}
body.app-ready #pageLoader{opacity:0;visibility:hidden;pointer-events:none;}
@media (prefers-reduced-motion:reduce){#pageLoader,.loader-icon,.loader-spinner{animation:none!important;transition:none!important;}}
@media (max-width:576px){.loader-icon{width:48px;height:48px;font-size:21px}.loader-brand{font-size:17px}.loader-text{font-size:12px}.loader-spinner{width:28px;height:28px;}}
