@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:.6s ease-out forwards fadeIn}.animate-fade-out{animation:.4s ease-in forwards fadeOut}.animate-slide-in-left{animation:.5s ease-out forwards slideInFromLeft}.animate-slide-in-right{animation:.5s ease-out forwards slideInFromRight}.animate-slide-in-bottom{animation:.6s ease-out forwards slideInFromBottom}.animate-scale-in{animation:.4s ease-out forwards scaleIn}.animate-pulse{animation:2s infinite pulse}.animate-spin{animation:1s linear infinite spin}.stagger-children>*{opacity:0;animation:.6s ease-out forwards fadeIn;transform:translateY(20px)}.stagger-children>:first-child{animation-delay:.1s}.stagger-children>:nth-child(2){animation-delay:.2s}.stagger-children>:nth-child(3){animation-delay:.3s}.stagger-children>:nth-child(4){animation-delay:.4s}.stagger-children>:nth-child(5){animation-delay:.5s}.stagger-children>:nth-child(6){animation-delay:.6s}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%) 0 0/200px 100%;border-radius:4px;animation:1.5s infinite shimmer}.skeleton-text{height:1rem;margin-bottom:.5rem}.skeleton-text.large{height:1.5rem}.skeleton-text.small{height:.75rem}.skeleton-avatar{border-radius:50%;width:40px;height:40px}.skeleton-card{border-radius:8px;height:200px}.skeleton-button{border-radius:6px;width:120px;height:40px}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.smooth-transition-slow{transition:all .6s cubic-bezier(.4,0,.2,1)}.hover-lift{transition:transform .3s,box-shadow .3s}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.hover-scale{transition:transform .2s}.hover-scale:hover{transform:scale(1.02)}.module-loading{position:relative;overflow:hidden}.module-loading:before{content:"";z-index:1;background:linear-gradient(45deg,#0000 30%,#ffffff1a 50%,#0000 70%);animation:2s infinite shimmer;position:absolute;inset:0}.module-navigator{transition:all .4s cubic-bezier(.4,0,.2,1)}.module-navigator.loading{opacity:.7;pointer-events:none}.module-navigator-item{transition:all .3s;position:relative}.module-navigator-item:hover{transform:translateY(-2px)}.module-navigator-item.active{transform:scale(1.05)}.professional-loader{flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:3rem;display:flex}.loader-spinner{border:4px solid #f3f3f3;border-top-color:#007bff;border-radius:50%;width:50px;height:50px;margin-bottom:1rem;animation:1s linear infinite spin}.loader-text{color:#6c757d;text-align:center;font-size:.9rem;animation:1.5s infinite pulse}.page-enter{opacity:0;transform:translate(50px)}.page-enter-active{opacity:1;transition:opacity .4s,transform .4s;transform:translate(0)}.page-exit{opacity:1;transform:translate(0)}.page-exit-active{opacity:0;transition:opacity .3s,transform .3s;transform:translate(-50px)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.error-bounce{animation:.5s bounce}@keyframes bounce{0%,20%,60%,to{transform:translateY(0)}40%{transform:translateY(-10px)}80%{transform:translateY(-5px)}}.loading-bar{background-color:#e0e0e0;border-radius:2px;width:100%;height:4px;overflow:hidden}.loading-bar-progress{background:linear-gradient(90deg,#007bff,#0056b3);border-radius:2px;height:100%;animation:2s ease-in-out infinite loadingProgress}@keyframes loadingProgress{0%{width:0%;transform:translate(-100%)}50%{width:100%;transform:translate(0%)}to{width:100%;transform:translate(100%)}}
