@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-4px,0)}70%{transform:translate3d(0,-2px,0)}90%{transform:translate3d(0,-1px,0)}}@keyframes glow{0%{box-shadow:0 0 5px rgba(139,92,246,.3)}50%{box-shadow:0 0 20px rgba(139,92,246,.6)}to{box-shadow:0 0 5px rgba(139,92,246,.3)}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-fadeIn{animation:fadeIn .6s ease-out}.animate-slideUp{animation:slideUp .8s ease-out}.animate-bounce{animation:bounce 1s ease-in-out}.animate-glow{animation:glow 2s ease-in-out infinite}.loading-shimmer{background:linear-gradient(90deg,#334155,#475569 50%,#334155);background-size:400% 100%;animation:shimmer 1.2s ease-in-out infinite}.live-indicator{position:relative;display:inline-flex;align-items:center;gap:.5rem}.live-indicator:before{content:"";width:8px;height:8px;background-color:#10b981;border-radius:50%;animation:pulse 2s infinite}.live-indicator.warning:before{background-color:#f59e0b}.live-indicator.error:before{background-color:#ef4444}.stats-card{transition:all .2s ease-in-out;cursor:pointer}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.3);border-color:#475569}.bot-card{transition:all .3s ease}.bot-card:hover{transform:scale(1.02);box-shadow:0 10px 30px rgba(0,0,0,.4)}.skeleton{background:linear-gradient(90deg,#1e293b 25%,#334155 50%,#1e293b 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:.375rem}.skeleton-text{height:1rem;margin-bottom:.5rem}.skeleton-title{height:1.5rem;margin-bottom:1rem;width:60%}.skeleton-avatar{width:40px;height:40px;border-radius:50%}.data-updating{position:relative;overflow:hidden}.data-updating:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(139,92,246,.1),transparent);animation:shimmer 2s infinite}.success-flash{animation:successFlash .6s ease-out}.error-flash{animation:errorFlash .6s ease-out}@keyframes successFlash{0%{background-color:rgba(16,185,129,.1)}50%{background-color:rgba(16,185,129,.3)}to{background-color:transparent}}@keyframes errorFlash{0%{background-color:rgba(239,68,68,.1)}50%{background-color:rgba(239,68,68,.3)}to{background-color:transparent}}.profit-positive{color:#10b981;animation:profitPulse 1s ease-in-out}.profit-negative{color:#ef4444;animation:lossPulse 1s ease-in-out}@keyframes profitPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05);text-shadow:0 0 10px rgba(16,185,129,.5)}}@keyframes lossPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05);text-shadow:0 0 10px rgba(239,68,68,.5)}}.trade-open{position:relative}.trade-open:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:4px;height:100%;background:linear-gradient(45deg,#f59e0b,#fbbf24);border-radius:2px;animation:pulse 2s infinite}.trade-closed.profitable:before{background:linear-gradient(45deg,#10b981,#34d399)}.trade-closed.loss:before{background:linear-gradient(45deg,#ef4444,#f87171)}@media (max-width:768px){.bot-card:hover,.stats-card:hover{transform:none}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-bounce,.animate-pulse,.animate-spin{animation:none}}