:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}.safe-area-inset-top{padding-top:env(safe-area-inset-top)}.safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-inset-left{padding-left:env(safe-area-inset-left)}.safe-area-inset-right{padding-right:env(safe-area-inset-right)}.h-safe-area-inset-bottom{height:env(safe-area-inset-bottom,0)}body{overscroll-behavior-y:contain}@media (max-width:767px){*{-webkit-overflow-scrolling:touch}}.touch-action-pan-y{touch-action:pan-y}.touch-action-pan-x{touch-action:pan-x}.touch-action-none{touch-action:none}.no-tap-highlight{-webkit-tap-highlight-color:transparent}.no-select{-webkit-user-select:none;-moz-user-select:none;user-select:none}.touch-target{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}@media (prefers-reduced-motion:no-preference){.mobile-slide-in{animation:mobileSlideIn .3s ease-out}.mobile-slide-out{animation:mobileSlideOut .3s ease-out}.mobile-fade-in{animation:mobileFadeIn .2s ease-out}.mobile-scale-in{animation:mobileScaleIn .2s ease-out}}@keyframes mobileSlideIn{0%{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes mobileSlideOut{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes mobileFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mobileScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.bottom-sheet-enter{animation:bottomSheetSlideUp .3s ease-out}.bottom-sheet-exit{animation:bottomSheetSlideDown .3s ease-out}@keyframes bottomSheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bottomSheetSlideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.mobile-drawer-overlay{background:hsl(var(--foreground)/.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}@media (max-width:767px){body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}}@media (max-width:767px){.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}:focus{outline:none}}@media (max-width:767px){:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}}@media (max-width:767px){input[type=email],input[type=password],input[type=search],input[type=text],select,textarea{font-size:16px}.mobile-card-shadow{box-shadow:0 1px 3px hsl(var(--foreground)/.1)}.mobile-card-shadow-lg{box-shadow:0 4px 6px hsl(var(--foreground)/.1)}}.pull-to-refresh-indicator{transition:transform .2s ease-out,opacity .2s ease-out;will-change:transform,opacity}.swipe-action-item{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.fab-bounce-in{animation:fabBounceIn .5s cubic-bezier(.68,-.55,.265,1.55)}@keyframes fabBounceIn{0%{opacity:0;transform:scale(0) rotate(-45deg)}50%{transform:scale(1.1) rotate(0deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.mobile-nav-item{transition:color .2s ease,background-color .2s ease}.mobile-nav-item:active{transform:scale(.98);transition:transform .1s ease}@keyframes ripple{to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;background:hsl(var(--primary-foreground)/.5);border-radius:50%;transform:scale(0);pointer-events:none}.ripple-effect:active:after{animation:ripple .6s ease-out}@media (hover:none) and (pointer:coarse){.dark .mobile-menu-item:active,.mobile-menu-item:active{background-color:hsl(var(--muted))}}.mobile-accelerate{transform:translateZ(0);will-change:transform;backface-visibility:hidden;perspective:1000px}.sticky-top-safe{position:sticky;top:env(safe-area-inset-top,0)}.sticky-bottom-safe{position:sticky;bottom:env(safe-area-inset-bottom,0)}.mobile-backdrop{background:hsl(var(--foreground)/.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}