.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}.animation-delay-150{animation-delay:.15s}.animation-delay-300{animation-delay:.3s}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(1.5);opacity:0}}@keyframes successGlow{0%{box-shadow:0 0 0 0 rgba(34,197,94,.4)}50%{box-shadow:0 0 20px 10px rgba(34,197,94,.1)}to{box-shadow:0 0 0 0 rgba(34,197,94,.4)}}.success-glow{animation:successGlow 2s ease-in-out infinite}@keyframes errorGlow{0%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 20px 10px rgba(239,68,68,.1)}to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}}.error-glow{animation:errorGlow 2s ease-in-out infinite}@keyframes warningGlow{0%{box-shadow:0 0 0 0 rgba(245,158,11,.4)}50%{box-shadow:0 0 20px 10px rgba(245,158,11,.1)}to{box-shadow:0 0 0 0 rgba(245,158,11,.4)}}.warning-glow{animation:warningGlow 2s ease-in-out infinite}@keyframes infoGlow{0%{box-shadow:0 0 0 0 rgba(59,130,246,.4)}50%{box-shadow:0 0 20px 10px rgba(59,130,246,.1)}to{box-shadow:0 0 0 0 rgba(59,130,246,.4)}}.info-glow{animation:infoGlow 2s ease-in-out infinite}.dashboard-container .nav-button{transition:color .15s ease-out,background-color .15s ease-out,border-color .15s ease-out}@keyframes dashboardFadeIn{0%{opacity:0}to{opacity:1}}.dashboard-container .tab-content.visible{animation:dashboardFadeIn .15s ease-out}