@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInRight{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentIn{0%{transform:scale(.95) translateY(-20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.animate-fade-in{animation:fadeIn .2s cubic-bezier(.4,0,.2,1) forwards}.animate-fade-out{animation:fadeOut .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-up{animation:slideInUp ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-down{animation:slideInDown ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-left{animation:slideInLeft ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-right{animation:slideInRight ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-scale-in{animation:scaleIn ease-out .15s cubic-bezier(.4,0,.2,1) forwards}.animate-scale-out{animation:scaleOut ease-in .15s cubic-bezier(.4,0,.2,1) forwards}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}.stagger-children>*{opacity:0;animation:slideInUp ease-out .3s cubic-bezier(.4,0,.2,1) forwards}.stagger-children>:first-child{animation-delay:.05s}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.35s}.stagger-children>:nth-child(8){animation-delay:.4s}.stagger-children>:nth-child(9){animation-delay:.45s}.stagger-children>:nth-child(10){animation-delay:.5s}.stagger-children>:nth-child(11){animation-delay:.55s}.stagger-children>:nth-child(12){animation-delay:.6s}.stagger-children>:nth-child(13){animation-delay:.65s}.stagger-children>:nth-child(14){animation-delay:.7s}.stagger-children>:nth-child(15){animation-delay:.75s}.stagger-children>:nth-child(16){animation-delay:.8s}.stagger-children>:nth-child(17){animation-delay:.85s}.stagger-children>:nth-child(18){animation-delay:.9s}.stagger-children>:nth-child(19){animation-delay:.95s}.stagger-children>:nth-child(20){animation-delay:1s}.hover-lift{transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.hover-scale{transition:transform .15s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{position:relative;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.hover-glow:hover{box-shadow:0 0 20px rgba(99,102,241,.3)}.hover-shine{position:relative;overflow:hidden}.hover-shine: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}.hover-shine:hover:before{left:100%}.skeleton{background:linear-gradient(90deg,#e5e7eb,#f3f4f6 50%,#e5e7eb);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:.5rem}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:8px;height:8px;border-radius:50%;background:currentColor;animation:bounce 1.4s ease-in-out infinite both}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.transition-all{transition:all .2s cubic-bezier(.4,0,.2,1)}.transition-colors{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1)}.transition-transform{transition:transform .2s cubic-bezier(.4,0,.2,1)}.transition-opacity{transition:opacity .2s cubic-bezier(.4,0,.2,1)}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:95vh}.dashboard-layout{min-height:100vh}.dashboard-layout__main{min-height:calc(100vh - 50px)}