* { -webkit-tap-highlight-color: transparent; }
        .no-scrollbar::-webkit-scrollbar { display: none; }
        .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
        .tap-effect { transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); }
        .tap-effect:active { transform: scale(0.95); }
        .pb-safe { padding-bottom: env(safe-area-inset-bottom, 20px); }
        .pt-safe { padding-top: env(safe-area-inset-top, 20px); }
        .gradient-text { background: linear-gradient(135deg, #4bb59d 0%, #3a9a85 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
        .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
        .card-hover:hover { transform: translateY(-4px); }
        .ios-header { background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border-bottom: 0.5px solid rgba(0, 0, 0, 0.08); }
        .ios-tab-bar { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border-top: 0.5px solid rgba(0, 0, 0, 0.08); box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.05); }
        .center-action-btn { background: linear-gradient(135deg, #4bb59d 0%, #3a9a85 100%); box-shadow: 0 4px 16px rgba(75, 181, 157, 0.4), 0 0 0 4px rgba(255, 255, 255, 0.9); transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }
        .center-action-btn:active { transform: scale(0.92); box-shadow: 0 2px 10px rgba(75, 181, 157, 0.4), 0 0 0 4px rgba(255, 255, 255, 0.9); }
        .top-app-banner-dismissed #topAppDownloadBanner { display: none; }
        @media (max-width: 767px) {
            .top-app-banner-dismissed main { padding-top: 65px; }
        }
        
        /* Mobile Input Auto-Zoom Prevent (iOS Safari Fix) */
        @media screen and (max-width: 767px) {
            input, select, textarea {
                font-size: 16px !important;
            }
        }

        /* Native App Skeleton Shimmer */
        .skeleton-shimmer {
            background: linear-gradient(90deg, #f0f3f6 25%, #e2e8f0 37%, #f0f3f6 63%);
            background-size: 400% 100%;
            animation: shimmer 1.4s ease infinite;
        }
        @keyframes shimmer {
            0% { background-position: 100% 50%; }
            100% { background-position: 0 50%; }
        }

        /* Native App Horizontal Scroll Snap */
        .app-scroll-snap {
            scroll-snap-type: x mandatory;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
        }
        .app-scroll-snap > * {
            scroll-snap-align: start;
        }

        @media (max-width: 768px) { 
            body { 
                overflow-y: auto; 
                -webkit-overflow-scrolling: touch; 
                overscroll-behavior-y: contain;
            } 
        }
