/* PWA-specific styles */

/* Install button styles */
#pwa-install-btn {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  border: none;
  border-radius: 50px;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);
  z-index: 9999;
  display: none;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
}

#pwa-install-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 30px rgba(102, 126, 234, 0.6);
}

#pwa-install-btn svg {
  width: 20px;
  height: 20px;
}

/* PWA-specific adjustments for standalone mode */
@media (display-mode: standalone) {
  /* Adjust for PWA standalone mode */
  body {
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
  
  /* Hide install button in standalone mode */
  #pwa-install-btn {
    display: none !important;
  }
  
  /* Adjust navbar for PWA */
  .navbar {
    padding-top: calc(1rem + env(safe-area-inset-top));
  }
  
  /* Adjust mobile menu for PWA */
  @media (max-width: 768px) {
    .nav-links {
      top: calc(60px + env(safe-area-inset-top));
    }
  }
}

/* iOS PWA specific styles */
@supports (-webkit-touch-callout: none) {
  /* iOS specific adjustments */
  .navbar {
    padding-top: calc(1rem + 44px); /* iOS status bar height */
  }
  
  /* Fix iOS viewport issues */
  .container {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
  }
}

/* Android PWA specific styles */
@media (display-mode: standalone) and (orientation: portrait) {
  /* Android portrait adjustments */
  .dash-hero {
    min-height: calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
}

/* Splash screen for PWA */
@media (display-mode: standalone) {
  body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  
  body.loading::before {
    opacity: 1;
  }
}

/* PWA toast notifications */
.pwa-toast {
  position: fixed;
  top: 20px;
  right: 20px;
  background: #10b981;
  color: white;
  padding: 16px 24px;
  border-radius: 8px;
  font-weight: 600;
  z-index: 10000;
  animation: slideInRight 0.5s ease;
  max-width: 300px;
}

.pwa-toast.error {
  background: #ef4444;
}

.pwa-toast.warning {
  background: #f59e0b;
}

/* Offline indicator */
.pwa-offline-indicator {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #f59e0b;
  color: white;
  padding: 8px;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  z-index: 10001;
  transform: translateY(-100%);
  transition: transform 0.3s ease;
}

.pwa-offline-indicator.show {
  transform: translateY(0);
}

/* PWA animations */
@keyframes slideInRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideOutRight {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}

@keyframes pulse {
  0% {
    box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);
  }
  50% {
    box-shadow: 0 4px 30px rgba(102, 126, 234, 0.8);
  }
  100% {
    box-shadow: 0 4px 20px rgba(102, 126, 234, 0.4);
  }
}

/* Install button pulse animation */
#pwa-install-btn.pulse {
  animation: pulse 2s infinite;
}

/* Responsive adjustments for PWA */
@media (max-width: 768px) and (display-mode: standalone) {
  #pwa-install-btn {
    bottom: calc(20px + env(safe-area-inset-bottom));
    right: calc(20px + env(safe-area-inset-right));
  }
  
  .pwa-toast {
    top: calc(20px + env(safe-area-inset-top));
    right: calc(20px + env(safe-area-inset-right));
  }
}
