@supports (padding-bottom: env(safe-area-inset-bottom)){.pb-safe{padding-bottom:env(safe-area-inset-bottom)}.pt-safe{padding-top:env(safe-area-inset-top)}.pl-safe{padding-left:env(safe-area-inset-left)}.pr-safe{padding-right:env(safe-area-inset-right)}.px-safe{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@supports not (padding-bottom: env(safe-area-inset-bottom)){.pb-safe{padding-bottom:0}}.touch-action-manipulation{touch-action:manipulation}.mobile-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-right{animation:slideInFromRight .3s ease-out}.animate-slide-in-left{animation:slideInFromLeft .3s ease-out}.animate-fade-in-up{animation:fadeInUp .3s ease-out}@media (max-width: 768px){.mobile-button{min-height:44px;min-width:44px;font-size:16px}.mobile-input{font-size:16px}body{overflow-x:hidden!important;max-width:100vw!important;box-sizing:border-box}html{overflow-x:hidden!important}*{box-sizing:border-box}.mobile-container{width:100vw;max-width:100vw;box-sizing:border-box;overflow-x:hidden}.mobile-bottom-nav{position:fixed!important;bottom:0!important;left:0!important;right:0!important;z-index:9999!important}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200px 100%;animation:shimmer 1.5s infinite}.dark .skeleton{background:linear-gradient(90deg,#374151 25%,#4b5563,#374151 75%);background-size:200px 100%}.mobile-focus:focus{outline:2px solid #3b82f6;outline-offset:2px}@media (hover: none){.card-hover:active{transform:scale(.98);transition:transform .1s ease-in-out}}@media (hover: hover){.card-hover:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #0000001a,0 10px 10px -5px #0000000a;transition:all .2s ease-in-out}}
