.mobile-app{min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mobile-header{padding-top:env(safe-area-inset-top);z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);-webkit-user-select:none;user-select:none}.mobile-menu-trigger{min-width:44px;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:all .2s cubic-bezier(.4,0,.2,1)}.mobile-menu-trigger:active{transform:scale(.95);transition:transform .1s cubic-bezier(.4,0,.2,1)}.mobile-nav-overlay{animation:mobile-backdrop-in .2s ease-out;position:fixed;inset:0}.mobile-nav-menu{animation:mobile-slide-in .3s cubic-bezier(.4,0,.2,1);padding-bottom:env(safe-area-inset-bottom);z-index:60;box-shadow:-4px 0 6px -1px #0000001a,-2px 0 4px -1px #0000000f}.mobile-nav-item{min-height:44px;padding:12px 16px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:all .15s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.mobile-nav-item:active{transform:scale(.98);transition:transform .1s cubic-bezier(.4,0,.2,1)}.mobile-nav-item:hover:not(:disabled){background-color:#0000000d}.mobile-nav-item:focus-visible{outline:2px solid rgb(59,130,246);outline-offset:2px}.mobile-nav-item[data-state=active]{background-color:#3b82f6;color:#fff}.mobile-nav-item[data-state=recent]{background-color:#3b82f61a}.mobile-nav-transition-enter{animation:mobile-fade-in .2s ease-out}.mobile-nav-transition-exit{animation:mobile-fade-in .2s ease-out reverse}.mobile-main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(80px,env(safe-area-inset-bottom) + 80px);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mobile-optimized{-webkit-user-select:none;user-select:none}.mobile-optimized input,.mobile-optimized textarea,.mobile-optimized [contenteditable]{-webkit-user-select:text;user-select:text}.mobile-optimized button,.mobile-optimized [role=button]{min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-optimized{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.mobile-spacing-xs{padding:8px}.mobile-spacing-sm{padding:12px}.mobile-spacing-md{padding:16px}.mobile-spacing-lg{padding:24px}.mobile-spacing-xl{padding:32px}.touch-target{min-width:44px;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.touch-target-large{min-width:56px;min-height:56px}@keyframes mobile-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes mobile-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes mobile-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes mobile-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes mobile-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes mobile-slide-in-right{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes mobile-slide-out-right{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes mobile-slide-in-bottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.ios-device{-webkit-touch-callout:none;-webkit-user-select:none}.android-device{-webkit-tap-highlight-color:transparent}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.mobile-optimized{-webkit-font-smoothing:subpixel-antialiased}}@media (prefers-reduced-motion: reduce){.mobile-nav-overlay,.mobile-nav-menu,.mobile-menu-trigger,.mobile-nav-item{animation:none!important;transition:none!important}.mobile-menu-trigger:active,.mobile-nav-item:active{transform:none!important}}@media (prefers-color-scheme: dark){.mobile-nav-menu{border-left:1px solid hsl(var(--border))}}.mobile-optimized *:focus-visible{outline:2px solid rgb(59,130,246);outline-offset:2px;border-radius:4px}input[type=text],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=url],select,textarea{font-size:16px}.mobile-optimized::-webkit-scrollbar{width:4px;height:4px}.mobile-optimized::-webkit-scrollbar-track{background:transparent}.mobile-optimized::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:2px}.mobile-optimized::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}.mobile-optimized{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:auto;text-rendering:optimizeSpeed;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;isolation:isolate}.mobile-optimized .mobile-nav-overlay,.mobile-optimized .mobile-nav-menu{will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.mobile-nav-state-active{background-color:#3b82f6!important;color:#fff!important}.mobile-nav-state-recent{background-color:#3b82f61a!important}.mobile-nav-state-disabled{opacity:.5!important;pointer-events:none!important}.mobile-content-enter{animation:mobile-scale-in .3s cubic-bezier(.4,0,.2,1)}.mobile-content-exit{animation:mobile-scale-in .3s cubic-bezier(.4,0,.2,1) reverse}.animate-slide-in-right{animation:mobile-slide-in-right .3s cubic-bezier(.4,0,.2,1)}.animate-slide-out-right{animation:mobile-slide-out-right .25s cubic-bezier(.4,0,.2,1)}.mobile-week-selector{animation:mobile-slide-in-bottom .3s cubic-bezier(.4,0,.2,1)}.mobile-week-selector-backdrop{animation:mobile-backdrop-in .2s ease-out}.mobile-only{display:block}.desktop-only{display:none}@media (min-width: 768px){.mobile-only{display:none}.desktop-only{display:block}}.mobile-micro-interaction{transition:all .2s cubic-bezier(.4,0,.2,1);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mobile-micro-interaction:hover{transform:translateY(-1px) translateZ(0);box-shadow:0 4px 12px #00000026}.mobile-micro-interaction:active{transform:translateY(0) scale(.98) translateZ(0);transition:transform .1s cubic-bezier(.4,0,.2,1)}.mobile-ripple{position:relative;overflow:hidden;transform:translateZ(0)}.mobile-ripple:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .3s ease-out,height .3s ease-out;pointer-events:none}.mobile-ripple:active:before{width:300px;height:300px;transition:width .1s ease-out,height .1s ease-out}.mobile-card{transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mobile-card:hover{transform:translateY(-2px) translateZ(0);box-shadow:0 8px 25px #00000026}.mobile-card-interactive:active{transform:scale(.98) translateZ(0);transition:transform .1s cubic-bezier(.4,0,.2,1)}.mobile-list-item{transition:all .2s cubic-bezier(.4,0,.2,1);transform:translateZ(0);position:relative;overflow:hidden}.mobile-list-item:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width .3s cubic-bezier(.4,0,.2,1)}.mobile-list-item:hover:after,.mobile-list-item.active:after{width:100%}.mobile-list-item:active{background-color:#3b82f60d;transform:translate(4px) translateZ(0);transition:all .1s cubic-bezier(.4,0,.2,1)}.mobile-toggle{transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0)}.mobile-toggle.active{background-color:#3b82f6;color:#fff;transform:scale(1.05) translateZ(0)}.mobile-progress-bar{position:relative;overflow:hidden;background:#3b82f61a;border-radius:9999px}.mobile-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:inherit;transition:width .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.mobile-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:mobile-progress-shimmer 2s infinite}@keyframes mobile-progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.mobile-loading-skeleton{background:linear-gradient(90deg,#e5e7eb,#f3f4f6,#e5e7eb);background-size:200% 100%;animation:mobile-skeleton-loading 1.5s ease-in-out infinite;border-radius:4px}@keyframes mobile-skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.mobile-fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);box-shadow:0 4px 12px #3b82f666;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0);z-index:40}.mobile-fab:hover{transform:translateY(-2px) scale(1.05) translateZ(0);box-shadow:0 8px 20px #3b82f680}.mobile-fab:active{transform:scale(.95) translateZ(0);transition:transform .1s cubic-bezier(.4,0,.2,1)}.mobile-tab-indicator{position:absolute;bottom:0;left:0;height:3px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:2px 2px 0 0;transition:all .3s cubic-bezier(.4,0,.2,1);transform:translateZ(0)}.mobile-swipe-indicator{position:absolute;top:50%;transform:translateY(-50%);opacity:0;transition:opacity .2s ease-out;pointer-events:none}.mobile-swipe-indicator.visible{opacity:1}.mobile-swipe-indicator.left{left:8px;animation:mobile-swipe-left .5s ease-out}.mobile-swipe-indicator.right{right:8px;animation:mobile-swipe-right .5s ease-out}@keyframes mobile-swipe-left{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(-8px)}}@keyframes mobile-swipe-right{0%,to{transform:translateY(-50%) translate(0)}50%{transform:translateY(-50%) translate(8px)}}.mobile-pull-refresh{position:relative;overflow:hidden}.mobile-pull-refresh-indicator{position:absolute;top:-60px;left:50%;transform:translate(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1)}.mobile-pull-refresh-indicator.active{top:20px}.mobile-pull-refresh-indicator.refreshing{animation:mobile-spin 1s linear infinite}@keyframes mobile-spin{0%{transform:translate(-50%) rotate(0)}to{transform:translate(-50%) rotate(360deg)}}.mobile-smooth-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.mobile-focus-ring:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f64d;border-radius:6px}
