/*
==============================================
================================================

[Quantum Performance Optimization Layer]
Project:    QUANTAMCRYPTO Performance Enhancement
Phase:      2 - Performance Optimization System
Version:    2.0
Create:     Performance Optimization Framework
Developer:  AI Assistant

================================================
================================================
*/

/* ========================================
   PERFORMANCE SYSTEM CONFIGURATION
   ======================================== */

:root {
  /* Performance Monitoring */
  --quantum-performance-mode: "optimized";
  --quantum-gpu-acceleration: "enabled";
  --quantum-lazy-loading: "enabled";
  --quantum-critical-css: "loaded";
  
  /* Performance Thresholds */
  --quantum-performance-budget: 16ms; /* 60fps target */
  --quantum-memory-limit: 100mb;
  --quantum-bandwidth-threshold: 1mbps;
}

/* ========================================
   GPU ACCELERATION UTILITIES
   ======================================== */

/* GPU Layer Creation */
.quantum-gpu-layer {
  transform: translateZ(0);
  will-change: transform;
  backface-visibility: hidden;
  perspective: 1000px;
}

/* Composite Layers */
.quantum-composite {
  transform: translate3d(0, 0, 0);
  will-change: transform, opacity;
}

.quantum-composite-transform {
  will-change: transform;
}

.quantum-composite-opacity {
  will-change: opacity;
}

.quantum-composite-filter {
  will-change: filter;
}

/* Hardware Acceleration Classes */
.quantum-hw-accel {
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  -o-transform: translateZ(0);
}

.quantum-hw-accel-3d {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
}

/* Optimized Transforms */
.quantum-transform-smooth {
  transform-origin: center center;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
}

/* Enhanced GPU class from Phase 1 */
.quantum-gpu {
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.quantum-optimize {
  /* Performance optimizations enhanced */
  contain: layout style paint;
  will-change: auto;
}

/* ========================================
   REDUCED MOTION SUPPORT
   ======================================== */

/* Respect User Preferences */
@media (prefers-reduced-motion: reduce) {
  .quantum-respect-motion,
  .quantum-animate,
  .quantum-transition {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  /* Disable Complex Animations */
  .quantum-complex-animation {
    animation: none !important;
  }
  
  /* Simplified Hover Effects */
  .quantum-hover-simple:hover {
    transform: none !important;
    box-shadow: none !important;
  }
}

/* Battery Saving Mode */
@media (prefers-reduced-motion: reduce) {
  .quantum-battery-save {
    will-change: auto !important;
    transform: none !important;
    filter: none !important;
    backdrop-filter: none !important;
  }
}

/* ========================================
   MOBILE OPTIMIZATION
   ======================================== */

/* Mobile Performance Classes */
@media (max-width: 768px) {
  .quantum-mobile-optimized {
    transform: none;
    will-change: auto;
    backface-visibility: visible;
  }
  
  .quantum-mobile-simple {
    animation: none !important;
    transition: opacity 0.2s ease !important;
  }
  
  /* Reduce Complex Shadows on Mobile */
  .quantum-mobile-shadow {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
  }
  
  /* Optimize Touch Targets */
  .quantum-touch-target {
    min-height: 44px;
    min-width: 44px;
    padding: 12px;
  }
  
  /* Disable Hover Effects on Touch Devices */
  .quantum-no-touch-hover:hover {
    transform: none;
    box-shadow: none;
  }
}

/* High DPI Optimization */
@media (-webkit-min-device-pixel-ratio: 2),
       (min-resolution: 192dpi) {
  .quantum-hidpi-optimized {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }
}

/* ========================================
   CRITICAL CSS PATTERNS
   ======================================== */

/* Above-the-fold Critical Styles */
.quantum-critical {
  /* Critical styles for immediate rendering */
  display: block;
  visibility: visible;
  opacity: 1;
}

.quantum-hero-critical {
  /* Hero section critical rendering */
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.quantum-nav-critical {
  /* Navigation critical rendering */
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: #ffffff;
}

/* ========================================
   LAZY LOADING HELPERS
   ======================================== */

/* Image Lazy Loading */
.quantum-lazy-image {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.quantum-lazy-image.quantum-loaded {
  opacity: 1;
}

.quantum-lazy-image.quantum-loading {
  background: linear-gradient(
    90deg,
    #f0f0f0 25%,
    #e0e0e0 50%,
    #f0f0f0 75%
  );
  background-size: 200% 100%;
  animation: quantum-shimmer 1.5s infinite;
}

/* Content Lazy Loading */
.quantum-lazy-content {
  min-height: 200px;
  background: #f8f9fa;
  position: relative;
}

.quantum-lazy-content.quantum-loading::after {
  content: 'Loading...';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #6c757d;
  font-size: 14px;
}

/* ========================================
   MEMORY OPTIMIZATION
   ======================================== */

/* Memory Efficient Classes */
.quantum-memory-efficient {
  /* Avoid memory leaks */
  will-change: auto;
  contain: layout style paint;
}

/* Cleanup Classes */
.quantum-cleanup {
  /* Clean up after animations */
  will-change: auto;
  transform: none;
  filter: none;
}

/* Resource Management */
.quantum-resource-managed {
  /* Manage resources efficiently */
  contain: strict;
  content-visibility: auto;
  contain-intrinsic-size: 0 500px;
}

/* ========================================
   PERFORMANCE MONITORING
   ======================================== */

/* Performance Indicators */
.quantum-perf-indicator {
  position: fixed;
  bottom: 10px;
  left: 10px;
  background: rgba(0, 0, 0, 0.8);
  color: #00ff00;
  padding: 5px 10px;
  border-radius: 3px;
  font-family: monospace;
  font-size: 11px;
  z-index: 10000;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.quantum-debug .quantum-perf-indicator {
  opacity: 1;
}

/* FPS Counter */
.quantum-fps-counter::before {
  content: "FPS: " attr(data-fps);
}

/* Memory Usage */
.quantum-memory-usage::before {
  content: "Memory: " attr(data-memory) "MB";
}

/* ========================================
   BROWSER-SPECIFIC OPTIMIZATIONS
   ======================================== */

/* Chrome Optimizations */
@media screen and (-webkit-min-device-pixel-ratio:0) {
  .quantum-chrome-optimized {
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    -webkit-perspective: 1000px;
  }
}

/* Firefox Optimizations */
@-moz-document url-prefix() {
  .quantum-firefox-optimized {
    -moz-transform: translateZ(0);
    -moz-backface-visibility: hidden;
  }
}

/* Safari Optimizations */
@media not all and (min-resolution:.001dpcm) {
  @supports (-webkit-appearance:none) {
    .quantum-safari-optimized {
      -webkit-transform: translateZ(0);
      -webkit-backface-visibility: hidden;
    }
  }
}

/* ========================================
   LOADING PERFORMANCE
   ======================================== */

/* Critical Resource Loading */
.quantum-critical-resource {
  /* Mark critical resources */
  loading: eager;
  fetchpriority: high;
}

.quantum-non-critical-resource {
  /* Mark non-critical resources */
  loading: lazy;
  fetchpriority: low;
}

/* Preload Hints */
.quantum-preload-hint {
  /* Add preload behavior */
  will-change: transform, opacity;
}

/* ========================================
   ANIMATION PERFORMANCE
   ======================================== */

/* Performant Animation Classes */
.quantum-animate-performant {
  /* Use only transform and opacity */
  will-change: transform, opacity;
  animation-fill-mode: both;
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Efficient Keyframes */
@keyframes quantum-efficient-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes quantum-efficient-slide {
  from { transform: translateY(20px); }
  to { transform: translateY(0); }
}

@keyframes quantum-efficient-scale {
  from { transform: scale(0.8); }
  to { transform: scale(1); }
}

/* ========================================
   NETWORK PERFORMANCE
   ======================================== */

/* Slow Connection Optimizations */
@media (prefers-reduced-data: reduce) {
  .quantum-data-saver {
    /* Reduce data usage */
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
  }
  
  .quantum-data-saver-images {
    /* Compress images */
    image-rendering: optimizeSpeed;
    filter: contrast(1.1) brightness(1.1);
  }
}

/* ========================================
   DEBUG PERFORMANCE TOOLS
   ======================================== */

/* Performance Debug Mode */
.quantum-debug .quantum-performance-box {
  outline: 2px solid #ff0000;
  position: relative;
}

.quantum-debug .quantum-performance-box::after {
  content: 'PERF';
  position: absolute;
  top: -20px;
  left: 0;
  background: #ff0000;
  color: white;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: bold;
}

/* GPU Layer Visualization */
.quantum-debug .quantum-gpu-layer {
  outline: 2px solid #00ff00;
}

.quantum-debug .quantum-gpu-layer::after {
  content: 'GPU';
  position: absolute;
  top: -20px;
  right: 0;
  background: #00ff00;
  color: black;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: bold;
}

/* ========================================
   FRAMEWORK STATUS
   ======================================== */

/* Performance Framework Loaded */
body.quantum-performance-loaded::before {
  content: "Quantum Performance 2.0";
  position: fixed;
  top: 70px;
  right: 10px;
  background: var(--quantum-warning);
  color: var(--quantum-black);
  padding: var(--quantum-space-xs) var(--quantum-space-sm);
  border-radius: var(--quantum-radius-base);
  font-size: var(--quantum-text-xs);
  font-weight: var(--quantum-font-medium);
  z-index: var(--quantum-z-toast);
  opacity: 0.9;
  pointer-events: none;
  box-shadow: var(--quantum-shadow-lg);
  animation: quantum-fade-in 0.5s ease-out 1s both;
}

/* Performance Stats Display */
.quantum-debug .quantum-perf-stats {
  position: fixed;
  bottom: 10px;
  right: 10px;
  background: rgba(0, 0, 0, 0.9);
  color: #00ff00;
  padding: 10px;
  border-radius: 5px;
  font-family: monospace;
  font-size: 12px;
  z-index: 10000;
  min-width: 200px;
}

.quantum-debug .quantum-perf-stats div {
  margin: 2px 0;
}

@keyframes quantum-shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}