body,html{margin:0;padding:0}.redirect-mask{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;width:100vw;transition:background-color .3s ease}.bg-default{background-color:#f8f9fa}.bg-light-blue{background-color:#f0f7ff}.bg-light-gray{background-color:#f1f3f5}.loading-text{margin-top:24px;color:#64748b;font-size:14px;letter-spacing:1px;font-family:sans-serif;animation:fadeIn .8s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.spinner{width:42px;height:42px;border:3px solid rgba(59,130,246,.1);border-radius:50%;border-top-color:#3b82f6;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.loader-dots{display:flex;gap:8px}.loader-dots div{width:14px;height:14px;background-color:#3b82f6;border-radius:50%;animation:bouncedelay 1.4s infinite ease-in-out both}.loader-dots .bounce1{animation-delay:-.32s}.loader-dots .bounce2{animation-delay:-.16s}@keyframes bouncedelay{0%,80%,to{transform:scale(0);opacity:.3}40%{transform:scale(1);opacity:1}}.loader-pulse{width:48px;height:48px;background-color:#3b82f6;border-radius:50%;animation:scaleout 1.2s infinite ease-in-out}@keyframes scaleout{0%{transform:scale(0);opacity:1}to{transform:scale(1.2);opacity:0}}.loader-dual-ring{width:46px;height:46px}.loader-dual-ring:after{content:" ";display:block;width:46px;height:46px;border-radius:50%;border:4px solid #3b82f6;border-color:#3b82f6 transparent #3b82f6 transparent;animation:dual-ring 1.2s linear infinite}@keyframes dual-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loader-progress{width:120px;height:4px;background-color:#e2e8f0;border-radius:4px;overflow:hidden;position:relative}.loader-progress-bar{width:40%;height:100%;background-color:#3b82f6;border-radius:4px;position:absolute;animation:indeterminate 1.5s infinite ease-in-out}@keyframes indeterminate{0%{left:-40%}50%{left:100%;width:60%}to{left:100%;width:40%}}
