/* NETRIX ERP MOTION v1 */
@keyframes nxViewIn{0%{opacity:0;transform:translate3d(0,14px,0) scale(.992)}100%{opacity:1;transform:none}}
@keyframes nxCardIn{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:none}}
@keyframes nxModalIn{0%{opacity:0;transform:translateY(14px) scale(.965)}100%{opacity:1;transform:none}}
@keyframes nxActiveGlow{0%{box-shadow:0 0 0 0 rgba(23,149,160,.28)}100%{box-shadow:0 0 0 13px rgba(23,149,160,0)}}
@keyframes nxSoftFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

body.netrix-animated #app.nx-view-enter>*{animation:nxViewIn .48s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated #app.nx-view-enter>*:nth-child(2){animation-delay:.035s}
body.netrix-animated #app.nx-view-enter>*:nth-child(3){animation-delay:.07s}
body.netrix-animated #nav button{transition:transform .2s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease!important;will-change:transform}
body.netrix-animated #nav button:hover{transform:translateY(-2px) scale(1.025)}
body.netrix-animated #nav button:active{transform:translateY(0) scale(.97)}
body.netrix-animated #nav button.active{animation:nxActiveGlow .55s ease-out}
body.netrix-animated #app :is(button,.btn,[role="button"]){transition:transform .18s ease,box-shadow .24s ease,filter .24s ease!important}
body.netrix-animated #app :is(button,.btn,[role="button"]):hover{transform:translateY(-2px);filter:brightness(1.025)}
body.netrix-animated #app :is(button,.btn,[role="button"]):active{transform:scale(.965)}
body.netrix-animated #app :is(.nx-home-metric,.nx-home-box,.nx-plan-column,.work-money,[class*="card"],[class*="metric"],[class*="tile"]){transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease!important;will-change:transform}
body.netrix-animated #app :is(.nx-home-metric,.nx-home-box,.nx-plan-column,.work-money,[class*="card"],[class*="metric"],[class*="tile"]):hover{transform:translateY(-5px);box-shadow:0 16px 38px rgba(13,55,76,.14)}
body.netrix-animated #app .nx-home-metric{animation:nxCardIn .46s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated #app .nx-home-metric:nth-child(2){animation-delay:.07s}
body.netrix-animated #app .nx-home-box{animation:nxCardIn .48s .09s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated #app .nx-plan-column{animation:nxCardIn .48s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated #app .nx-plan-column:nth-child(2){animation-delay:.06s}
body.netrix-animated #app .nx-plan-column:nth-child(3){animation-delay:.12s}
body.netrix-animated #app .work-hero{animation:nxViewIn .5s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated #app tbody tr{transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease}
body.netrix-animated #app tbody tr:hover{transform:translateX(3px);box-shadow:-3px 0 0 #1795a0}
body.netrix-animated #app :is(input,select,textarea){transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
body.netrix-animated #app :is(input,select,textarea):focus{box-shadow:0 0 0 4px rgba(23,149,160,.14)!important}
body.netrix-animated dialog[open]{animation:nxModalIn .3s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated #ctx:not(:empty){animation:nxModalIn .22s ease-out both}
body.netrix-animated .login-brand{animation:nxViewIn .65s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated .login-card{animation:nxModalIn .55s .08s cubic-bezier(.2,.8,.2,1) both}
body.netrix-animated .nx-ai-nav{animation:nxSoftFloat 3.2s ease-in-out infinite}
body.netrix-animated .nx-ripple{position:absolute!important;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.34);transform:translate(-50%,-50%) scale(0);animation:nxRipple .55s ease-out forwards;z-index:2}
@keyframes nxRipple{to{transform:translate(-50%,-50%) scale(1);opacity:0}}

@media(prefers-reduced-motion:reduce){body.netrix-animated *,body.netrix-animated *::before,body.netrix-animated *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

