@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideUp .4s ease-out}.animate-slide-down{animation:slideDown .4s ease-out}.animate-scale-in{animation:scaleIn .3s ease-out}.animate-bounce-once{animation:bounce .6s ease-out}.stagger-item{opacity:0;animation:slideUp .4s ease-out forwards}.stagger-item:nth-child(1){animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.skeleton{background:linear-gradient(90deg,#f0f0f0 0%,#e0e0e0 50%,#f0f0f0 100%);background-size:1000px 100%;animation:shimmer 2s infinite linear}.dark .skeleton{background:linear-gradient(90deg,#2a2a2a 0%,#3a3a3a 50%,#2a2a2a 100%);background-size:1000px 100%}.transition-smooth{transition:all .3s cubic-bezier(.4,0,.2,1)}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.button-press:active{transform:scale(.98)}.page-transition{animation:fadeIn .3s ease-out}.modal-backdrop{animation:fadeIn .2s ease-out}.modal-content{animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-enter{animation:slideInRight .3s ease-out}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.checkmark-animate{stroke-dasharray:100;animation:checkmark .5s ease-out forwards}@keyframes pulse-ring{0%{transform:scale(.95);opacity:1}to{transform:scale(1.3);opacity:0}}.pulse-ring{animation:pulse-ring 1.5s cubic-bezier(.4,0,.6,1) infinite}.floating-input{position:relative}.floating-label{position:absolute;left:.75rem;top:.75rem;padding:0 .25rem;background:white;color:#6b7280;font-size:.875rem;font-weight:500;pointer-events:none;transition:all .2s ease;transform-origin:left center}.dark .floating-label{background:rgb(55,65,81);color:#9ca3af}.floating-input input:focus~.floating-label,.floating-input input:not(:placeholder-shown)~.floating-label,.floating-input textarea:focus~.floating-label,.floating-input textarea:not(:placeholder-shown)~.floating-label{top:-.5rem;left:.75rem;font-size:.75rem;color:#3b82f6;font-weight:600}.dark .floating-input input:focus~.floating-label,.dark .floating-input input:not(:placeholder-shown)~.floating-label,.dark .floating-input textarea:focus~.floating-label,.dark .floating-input textarea:not(:placeholder-shown)~.floating-label{color:#60a5fa}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.dark ::-webkit-scrollbar-thumb{background:#4b5563}.dark ::-webkit-scrollbar-thumb:hover{background:#6b7280}*:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.loading-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.glass{background:rgba(255,255,255,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.dark .glass{background:rgba(17,24,39,.7);border:1px solid rgba(255,255,255,.1)}.gradient-text{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.shine-effect{position:relative;overflow:hidden}.shine-effect:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.shine-effect:hover:before{left:100%}.tap-highlight{-webkit-tap-highlight-color:rgba(59,130,246,.1)}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:rgba(255,255,255,.5);opacity:0;border-radius:100%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.ripple-effect:active:after{animation:ripple .6s ease-out}.smooth-color{transition:color .2s ease,background-color .2s ease,border-color .2s ease}.interactive-lift{transition:transform .2s ease,box-shadow .2s ease}.interactive-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #00000026}.interactive-lift:active{transform:translateY(-2px)}@keyframes badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.badge-pulse{animation:badge-pulse 2s ease-in-out infinite}.tooltip{position:relative}.tooltip:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:.5rem .75rem;background:rgba(0,0,0,.9);color:#fff;font-size:.75rem;border-radius:.5rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.tooltip:hover:before{opacity:1;transform:translate(-50%) translateY(-4px)}@keyframes draw-check{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.check-animation{stroke-dasharray:100;animation:draw-check .5s ease-out forwards}@keyframes count-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.count-up{animation:count-up .4s ease-out}@keyframes shimmer-enhanced{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer-enhanced{background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.2) 20%,rgba(255,255,255,.5) 60%,rgba(255,255,255,0) 100%);background-size:1000px 100%;animation:shimmer-enhanced 2s infinite}.focus-ring{transition:box-shadow .2s ease}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px #3b82f680}.draggable{cursor:move;transition:opacity .2s ease}.draggable:active{opacity:.5;cursor:grabbing}.drop-zone{transition:background-color .2s ease,border-color .2s ease}.drop-zone.drag-over{background-color:#3b82f61a;border-color:#3b82f6}@keyframes confetti-fall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti{position:fixed;width:10px;height:10px;background:#f0f;animation:confetti-fall 3s linear;pointer-events:none}@keyframes progress-bar{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-bar-animated:after{content:"";position:absolute;top:0;left:0;bottom:0;width:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:progress-bar 1.5s ease-in-out infinite}
