/* NYLA GO PWA - Mobile Gesture Styles */

/* Mobile-only styles (under 1024px) */
@media (max-width: 1023px) {
  
  /* Swipe Navigation Indicators */
  .swipe-indicator {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    color: rgba(255, 107, 53, 0.6);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 100;
    pointer-events: none;
    user-select: none;
  }
  
  .swipe-indicator.left {
    left: 20px;
    animation: pulseLeft 1.5s ease-in-out infinite;
  }
  
  .swipe-indicator.right {
    right: 20px;
    animation: pulseRight 1.5s ease-in-out infinite;
  }
  
  .swipe-indicator.show {
    opacity: 1;
  }
  
  @keyframes pulseLeft {
    0%, 100% { transform: translateY(-50%) translateX(0); opacity: 0.6; }
    50% { transform: translateY(-50%) translateX(-5px); opacity: 1; }
  }
  
  @keyframes pulseRight {
    0%, 100% { transform: translateY(-50%) translateX(0); opacity: 0.6; }
    50% { transform: translateY(-50%) translateX(5px); opacity: 1; }
  }
  
  /* Tab content swipe transitions */
  .mobile-mode .main-content {
    overflow: hidden;
    position: relative;
  }
  
  .mobile-mode .tab-content {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
  }
  
  .mobile-mode .tab-content.swiping {
    transition: none; /* Disable transition during active swipe */
  }
  
  /* Swipe preview effect */
  .mobile-mode .tab-content.swipe-preview {
    opacity: 0.7;
    transform: scale(0.95);
  }
  
  /* Elastic boundary effect */
  .mobile-mode .tab-content.elastic-left {
    transform: translateX(-10px);
    transition: transform 0.2s ease-out;
  }
  
  .mobile-mode .tab-content.elastic-right {
    transform: translateX(10px);
    transition: transform 0.2s ease-out;
  }
  
  /* Fast swipe indicator */
  .fast-swipe-indicator {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(255, 107, 53, 0.9);
    color: #000;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    opacity: 0;
    z-index: 1000;
    pointer-events: none;
    transition: opacity 0.2s ease;
  }
  
  .fast-swipe-indicator.show {
    opacity: 1;
    animation: quickPulse 0.3s ease-out;
  }
  
  @keyframes quickPulse {
    0% { transform: translate(-50%, -50%) scale(0.8); }
    50% { transform: translate(-50%, -50%) scale(1.1); }
    100% { transform: translate(-50%, -50%) scale(1); }
  }
  
  
  /* Haptic feedback visual indicators */
  .haptic-pulse {
    position: relative;
  }
  
  .haptic-pulse::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 107, 53, 0.3);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: hapticRipple 0.4s ease-out;
    pointer-events: none;
  }
  
  @keyframes hapticRipple {
    0% {
      width: 0;
      height: 0;
      opacity: 1;
    }
    100% {
      width: 60px;
      height: 60px;
      opacity: 0;
    }
  }
  
  /* Touch feedback for better mobile UX */
  .mobile-mode .tab-button {
    position: relative;
    overflow: hidden;
  }
  
  .mobile-mode .tab-button::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 107, 53, 0.1);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
  }
  
  .mobile-mode .tab-button:active::before {
    opacity: 1;
  }
  
  /* Prevent text selection during gestures */
  .mobile-mode.gesture-active {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
  }
  
  /* Velocity indicator */
  .velocity-indicator {
    position: fixed;
    bottom: 100px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 6px 12px;
    border-radius: 12px;
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 1000;
    pointer-events: none;
  }
  
  .velocity-indicator.show {
    opacity: 1;
  }
  
  /* Performance optimizations for mobile */
  .mobile-mode .tab-content {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    perspective: 1000px;
    -webkit-perspective: 1000px;
  }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  .swipe-indicator {
    animation: none !important;
  }
  
  .mobile-mode .tab-content {
    transition: none !important;
  }
  
  
  .haptic-pulse::after {
    animation: none !important;
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .swipe-indicator {
    color: #FF6B35;
    text-shadow: 0 0 4px #000;
  }
  
  .fast-swipe-indicator {
    background: #FF6B35;
    color: #000;
    border: 2px solid #000;
  }
}