.safe-area-pb{padding-bottom:max(env(safe-area-inset-bottom),1rem)}.safe-area-pt{padding-top:max(env(safe-area-inset-top),.5rem)}.safe-area-pl{padding-left:env(safe-area-inset-left)}.safe-area-pr{padding-right:env(safe-area-inset-right)}.touch-manipulation{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.touch-callout-none{-webkit-touch-callout:none}.select-none{-webkit-user-select:none;user-select:none}.smooth-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overscroll-behavior:contain}.momentum-scroll{-webkit-overflow-scrolling:touch;overflow-scrolling:touch}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none;scrollbar-gutter:stable}.hide-scrollbar::-webkit-scrollbar{width:0;height:0;display:none}.line-clamp-1{-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mobile-focus:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px;border-radius:.5rem}@media (prefers-reduced-motion:no-preference){.mobile-slide-up{animation:.3s cubic-bezier(.4,0,.2,1) slideUp}.mobile-slide-down{animation:.3s cubic-bezier(.4,0,.2,1) slideDown}.mobile-fade-in{animation:.2s ease-out fadeIn}.mobile-scale-in{animation:.2s cubic-bezier(.4,0,.2,1) scaleIn}.mobile-bounce-in{animation:.4s cubic-bezier(.68,-.55,.265,1.55) bounceIn}}@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 fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}.mobile-container{max-width:28rem;margin:0 auto;padding:0 1rem}.mobile-card{border-radius:1rem;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.mobile-card:active{transform:scale(.98)}.mobile-button{border-radius:.75rem;min-width:44px;min-height:44px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.mobile-button:active{transform:scale(.95)}.mobile-input{border-radius:.75rem;min-height:48px;padding:.75rem 1rem;font-size:1rem}.mobile-backdrop{-webkit-backdrop-filter:blur(12px);background-color:#fffc}.dark .mobile-backdrop{background-color:#000c}.mobile-grid-2{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.mobile-grid-3{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.mobile-grid-auto{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.pull-to-refresh{transition:transform .2s ease-out;transform:translateY(0)}.pull-to-refresh.pulling{transform:translateY(60px)}.mobile-shadow-sm{box-shadow:0 1px 2px #0000000d}.mobile-shadow{box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.mobile-shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}@media (max-width:640px){.mobile-text-xs{font-size:.75rem}.mobile-text-sm{font-size:.875rem}.mobile-text-base{font-size:1rem}.mobile-text-lg{font-size:1.125rem}.mobile-text-xl{font-size:1.25rem}.mobile-text-2xl{font-size:1.5rem}.mobile-p-2{padding:.5rem}.mobile-p-3{padding:.75rem}.mobile-p-4{padding:1rem}.mobile-p-6{padding:1.5rem}.mobile-m-2{margin:.5rem}.mobile-m-3{margin:.75rem}.mobile-m-4{margin:1rem}.mobile-m-6{margin:1.5rem}.mobile-gap-2{gap:.5rem}.mobile-gap-3{gap:.75rem}.mobile-gap-4{gap:1rem}.mobile-gap-6{gap:1.5rem}}@media (prefers-color-scheme:dark){.mobile-card{border:1px solid #27272a80}.mobile-backdrop{background-color:#000000e6}}@media (prefers-contrast:high){.mobile-button,.mobile-card{border:2px solid}}@media (prefers-reduced-motion:reduce){.mobile-slide-up,.mobile-slide-down,.mobile-fade-in,.mobile-scale-in,.mobile-bounce-in{animation:none}.mobile-card:active,.mobile-button:active{transform:none}}@media (max-width:640px){input,textarea,select{font-size:16px!important}}
