@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulse-ring{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(1.8)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slaWarn{0%,to{box-shadow:0 0 #f59e0b00}50%{box-shadow:0 0 0 4px #f59e0b33}}@keyframes slaDanger{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 0 4px #ef44444d}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes notifSlide{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:.3s both fadeIn}.animate-fade-in-up{animation:.35s both fadeInUp}.animate-fade-in-down{animation:.35s both fadeInDown}.animate-fade-in-left{animation:.35s both fadeInLeft}.animate-fade-in-right{animation:.35s both fadeInRight}.animate-scale-in{animation:.25s both scaleIn}.animate-spin{animation:1s linear infinite spin}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-float{animation:3s ease-in-out infinite floatY}.animate-stagger>:first-child{animation:.3s 50ms both fadeInUp}.animate-stagger>:nth-child(2){animation:.3s .1s both fadeInUp}.animate-stagger>:nth-child(3){animation:.3s .15s both fadeInUp}.animate-stagger>:nth-child(4){animation:.3s .2s both fadeInUp}.animate-stagger>:nth-child(5){animation:.3s .25s both fadeInUp}.animate-stagger>:nth-child(6){animation:.3s .3s both fadeInUp}.animate-stagger>:nth-child(7){animation:.3s .35s both fadeInUp}.animate-stagger>:nth-child(8){animation:.3s .4s both fadeInUp}.sla-warn-pulse{animation:2s ease-in-out infinite slaWarn}.sla-danger-pulse{animation:1s ease-in-out infinite slaDanger}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}.spinner-lg{border-width:3px;width:40px;height:40px}.loading-overlay{border-radius:inherit;z-index:10;background:#07090f99;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.notif-badge{display:inline-flex;position:relative}.notif-badge-dot{background:var(--danger);border:2px solid var(--bg-surface);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.notif-badge-dot:after{content:"";background:var(--danger);border-radius:50%;animation:1.5s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:-2px}.gradient-text{background:linear-gradient(135deg, var(--primary-light), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glow-primary{box-shadow:0 0 20px #6366f14d}.glow-success{box-shadow:0 0 20px #10b9814d}.glow-danger{box-shadow:0 0 20px #ef44444d}.glow-warning{box-shadow:0 0 20px #f59e0b4d}.hover-lift{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.shimmer-text{background:linear-gradient(90deg, var(--text-1) 25%, var(--primary-light) 50%, var(--text-1) 75%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:3s linear infinite shimmer}.toast-container{z-index:10000;gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:fixed;top:auto;bottom:24px;right:24px}.toast{background:var(--bg-surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);box-shadow:var(--shadow-lg);align-items:center;gap:var(--space-3);color:var(--text-1);pointer-events:all;border-left:3px solid var(--primary);min-width:280px;max-width:400px;font-size:.875rem;font-weight:500;animation:.3s both notifSlide;display:flex}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.warning{border-left-color:var(--warning)}.toast-icon{flex-shrink:0;font-size:1.1rem}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";pointer-events:none;background:#ffffff1a;border-radius:50%;width:100px;height:100px;animation:.6s linear rippleEffect;position:absolute;transform:scale(0)}@keyframes rippleEffect{to{opacity:0;transform:scale(4)}}.chart-container{animation:.5s both fadeIn}.page-enter{animation:.3s both fadeInUp}.ping-dot{width:8px;height:8px;display:inline-flex;position:relative}.ping-dot:before{content:"";background:var(--success);border-radius:50%;animation:1.5s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}.ping-dot:after{content:"";background:var(--success);border-radius:50%;width:8px;height:8px;position:relative}
