/* Performance-optimized CSS for MYP Application - Fast Rendering Focus */ /* ===== OPTIMIZED GLASSMORPHISM FOR NAVBAR - FASTER LOADING ===== */ .glass-navbar { background: rgba(255, 255, 255, 0.92); /* Removed backdrop-filter for better performance */ border: 1px solid rgba(255, 255, 255, 0.3); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); } .dark .glass-navbar { background: rgba(15, 23, 42, 0.92); border: 1px solid rgba(255, 255, 255, 0.1); } /* Optional: Add backdrop-filter only for high-performance devices */ @media (min-width: 1024px) and (prefers-reduced-motion: no-preference) { @supports (backdrop-filter: blur(10px)) { .glass-navbar { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); } .dark .glass-navbar { background: rgba(15, 23, 42, 0.85); } } } /* ===== SIMPLIFIED GLASS EFFECTS - NO ANIMATIONS ===== */ .glass-base { background: rgba(255, 255, 255, 0.95); border: 1px solid rgba(255, 255, 255, 0.3); } .glass-strong { background: rgba(255, 255, 255, 0.98); border: 1px solid rgba(255, 255, 255, 0.4); } .glass-subtle { background: rgba(255, 255, 255, 0.9); border: 1px solid rgba(255, 255, 255, 0.2); } /* Dark mode variants */ .dark .glass-base { background: rgba(15, 23, 42, 0.95); border: 1px solid rgba(255, 255, 255, 0.1); } .dark .glass-strong { background: rgba(30, 41, 59, 0.98); border: 1px solid rgba(255, 255, 255, 0.15); } .dark .glass-subtle { background: rgba(15, 23, 42, 0.9); border: 1px solid rgba(255, 255, 255, 0.08); } /* ===== SIMPLIFIED CARDS - NO SHADOWS OR TRANSITIONS ===== */ .glass-card { background: rgba(255, 255, 255, 0.98); border: 1px solid rgba(229, 231, 235, 0.5); border-radius: 12px; padding: 1.5rem; } .dark .glass-card { background: rgba(30, 41, 59, 0.98); border: 1px solid rgba(255, 255, 255, 0.1); } /* ===== BUTTONS - INSTANT FEEDBACK ===== */ .btn-primary { background-color: #1a1a1a; color: white; padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 500; } .btn-primary:hover { background-color: #333333; } .btn-secondary { background-color: #e5e7eb; color: #374151; padding: 0.5rem 1rem; border-radius: 0.375rem; font-weight: 500; } .btn-secondary:hover { background-color: #d1d5db; } /* ===== FORMS - SIMPLIFIED FOCUS STATES ===== */ input:focus, textarea:focus, select:focus { outline: 2px solid #3b82f6; outline-offset: -2px; } /* ===== MODAL OVERLAYS - INSTANT APPEARANCE ===== */ .modal-backdrop { background-color: rgba(0, 0, 0, 0.5); position: fixed; inset: 0; } .modal-content { background: white; border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .dark .modal-content { background: #1f2937; } /* ===== TOOLTIPS - SIMPLIFIED ===== */ .tooltip { background: #1f2937; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.875rem; } /* ===== LOADING STATES - STATIC ===== */ .spinner { display: inline-block; width: 1.5rem; height: 1.5rem; border: 2px solid #f3f4f6; border-top-color: #3b82f6; border-radius: 50%; } /* Loading dots instead of spinner for better performance */ .loading-dots { display: inline-flex; gap: 0.25rem; } .loading-dots span { width: 0.5rem; height: 0.5rem; background: #3b82f6; border-radius: 50%; opacity: 0.3; } .loading-dots span:nth-child(2) { opacity: 0.6; } .loading-dots span:nth-child(3) { opacity: 1; } /* ===== PERFORMANCE UTILITIES ===== */ .will-change-auto { will-change: auto; } .no-transitions * { transition: none !important; } .no-animations * { animation: none !important; } .no-transforms * { transform: none !important; } /* Disable all motion effects */ .reduce-motion * { animation: none !important; transition: none !important; transform: none !important; } /* ===== REDUCED MOTION PREFERENCE ===== */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } } /* ===== OPTIMIZED GRID LAYOUTS ===== */ .grid-optimized { display: grid; contain: layout; } /* ===== SIMPLIFIED BADGES ===== */ .badge { display: inline-flex; align-items: center; padding: 0.125rem 0.625rem; font-size: 0.75rem; font-weight: 500; border-radius: 9999px; } .badge-success { background-color: #10b981; color: white; } .badge-warning { background-color: #f59e0b; color: white; } .badge-error { background-color: #ef4444; color: white; } /* ===== OPTIMIZE PAINT AREAS ===== */ .contain-paint { contain: paint; } .contain-layout { contain: layout; } .contain-strict { contain: strict; } /* ===== CRITICAL RENDERING PATH OPTIMIZATION ===== */ .above-fold { content-visibility: visible; } .below-fold { content-visibility: auto; contain-intrinsic-size: 0 500px; }