:root{--mobile-xs:0.25rem;--mobile-sm:0.5rem;--mobile-md:0.75rem;--mobile-lg:1rem;--mobile-xl:1.5rem;--mobile-2xl:2rem;--mobile-3xl:3rem;--touch-target-min:44px;--touch-target-ideal:48px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);--safe-area-right:env(safe-area-inset-right,0px);--mobile-breakpoint:480px;--tablet-breakpoint:768px}@media (max-width:767px){*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mobile-selectable,[contenteditable],input,textarea{-webkit-user-select:text;user-select:text}body,html{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}html{padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom)}body{font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-left:var(--safe-area-left);padding-right:var(--safe-area-right)}.mobile-space-xs{margin-bottom:var(--mobile-xs)}.mobile-space-sm{margin-bottom:var(--mobile-sm)}.mobile-space-md{margin-bottom:var(--mobile-md)}.mobile-space-lg{margin-bottom:var(--mobile-lg)}.mobile-space-xl{margin-bottom:var(--mobile-xl)}.mobile-space-2xl{margin-bottom:var(--mobile-2xl)}.mobile-p-xs{padding:var(--mobile-xs)}.mobile-p-sm{padding:var(--mobile-sm)}.mobile-p-md{padding:var(--mobile-md)}.mobile-p-lg{padding:var(--mobile-lg)}.mobile-p-xl{padding:var(--mobile-xl)}.mobile-p-2xl{padding:var(--mobile-2xl)}.mobile-touch-target{min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.mobile-touch-target,.mobile-touch-target-ideal{display:flex;align-items:center;justify-content:center}.mobile-touch-target-ideal{min-height:var(--touch-target-ideal);min-width:var(--touch-target-ideal)}.mobile-card{border-radius:16px;padding:var(--mobile-lg);margin-bottom:var(--mobile-md);box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .2s ease}.mobile-card:active{transform:scale(.98);box-shadow:0 1px 4px rgba(0,0,0,.15)}.mobile-button{height:var(--touch-target-ideal);padding:0 var(--mobile-lg);border-radius:12px;font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.mobile-button:active{transform:scale(.96)}.mobile-input{height:var(--touch-target-ideal);padding:0 var(--mobile-md);border-radius:12px;font-size:16px;border:2px solid transparent;transition:all .2s ease}.mobile-input:focus{border-color:hsl(var(--primary));outline:none;box-shadow:0 0 0 3px hsl(var(--primary)/.1)}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:hsl(var(--background)/.95);backdrop-filter:blur(20px);border-top:1px solid hsl(var(--border)/.2);padding-bottom:calc(var(--safe-area-bottom) + 10px)}@supports (padding-bottom:env(safe-area-inset-bottom)){.mobile-nav{padding-bottom:calc(env(safe-area-inset-bottom) + 20px)}}@supports not (padding-bottom:env(safe-area-inset-bottom)){.mobile-nav{padding-bottom:30px}}.mobile-safe-top{padding-top:var(--safe-area-top)}.mobile-safe-bottom{padding-bottom:var(--safe-area-bottom)}.mobile-fixed-header{position:fixed;top:12px;left:0;right:0;z-index:1000;background:hsl(var(--background)/.95);backdrop-filter:blur(20px);border-bottom:1px solid hsl(var(--border)/.2);padding-top:calc(var(--safe-area-top) + 28px);padding-bottom:1px}.mobile-gesture-area{touch-action:pan-y}.mobile-gesture-horizontal{touch-action:pan-x}.mobile-optimized{will-change:transform;transform:translateZ(0)}.mobile-progress-container{overflow:visible!important;position:relative}.mobile-progress-bar{position:absolute;z-index:10}.mobile-journey-view{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}.mobile-text-xs{font-size:12px;line-height:16px}.mobile-text-sm{font-size:14px;line-height:20px}.mobile-text-base{font-size:16px;line-height:24px}.mobile-text-lg{font-size:18px;line-height:28px}.mobile-text-xl{font-size:20px;line-height:28px}.mobile-text-2xl{font-size:24px;line-height:32px}.mobile-text-3xl{font-size:30px;line-height:36px}.mobile-grid{display:grid;gap:var(--mobile-md);grid-template-columns:1fr}.mobile-grid-2{grid-template-columns:repeat(2,1fr)}.mobile-grid-3{grid-template-columns:repeat(3,1fr)}.mobile-flex,.mobile-flex-col{display:flex;gap:var(--mobile-sm)}.mobile-flex-col{flex-direction:column}.mobile-fade-in{animation:mobileFadeIn .3s ease-out}.mobile-slide-up{animation:mobileSlideUp .3s ease-out}.mobile-scale-in{animation:mobileScaleIn .2s ease-out}.mobile-loading{opacity:.6;pointer-events:none}.mobile-loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid hsl(var(--primary));border-top:2px solid transparent;border-radius:50%;animation:mobileSpin 1s linear infinite}.mobile-haptic{transition:all .1s ease}.mobile-haptic:active{transform:scale(.95)}.mobile-focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}@media (prefers-color-scheme:dark){.mobile-card{box-shadow:0 2px 8px rgba(0,0,0,.3)}}}@keyframes mobileFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes mobileSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes mobileScaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes mobileSpin{to{transform:rotate(1turn)}}@media (max-width:767px){@media (max-width:767px){.card{border-radius:16px;padding:var(--mobile-lg);margin-bottom:var(--mobile-md);box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .2s ease}.card:active{transform:scale(.98);box-shadow:0 1px 4px rgba(0,0,0,.15)}@media (prefers-color-scheme:dark){.card{box-shadow:0 2px 8px rgba(0,0,0,.3)}}.button{height:var(--touch-target-ideal);padding:0 var(--mobile-lg);border-radius:12px;font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.button:active{transform:scale(.96)}.input{height:var(--touch-target-ideal);padding:0 var(--mobile-md);border-radius:12px;font-size:16px;border:2px solid transparent;transition:all .2s ease}.input:focus{border-color:hsl(var(--primary));outline:none;box-shadow:0 0 0 3px hsl(var(--primary)/.1)}}.space-y-4>*+*{margin-top:var(--mobile-md)}.space-y-6>*+*{margin-top:var(--mobile-lg)}.space-y-8>*+*{margin-top:var(--mobile-xl)}.p-4{padding:var(--mobile-lg)}.p-6{padding:var(--mobile-xl)}.px-4{padding-left:var(--mobile-lg);padding-right:var(--mobile-lg)}.py-4{padding-top:var(--mobile-lg);padding-bottom:var(--mobile-lg)}}