@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.content-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;margin:40px 0;background:linear-gradient(135deg,#f8f9fa 0,#fff 100%);border-radius:15px;box-shadow:0 4px 20px rgba(0,0,0,.05);border:1px solid rgba(143,192,78,.1);min-height:200px}.content-spinner{width:50px;height:50px;border:4px solid rgba(143,192,78,.2);border-top:4px solid #8fc04e;border-radius:50%;animation:1.2s linear infinite spin;margin-bottom:20px}.content-loader-text{color:#2c4964;font-size:16px;font-weight:500;text-align:center;animation:2s ease-in-out infinite pulse;margin-top:10px}.skeleton-card{background:#f8f9fa;border-radius:10px;padding:20px;margin-bottom:20px;animation:1.5s ease-in-out infinite pulse}.skeleton-line{height:20px;background:linear-gradient(90deg,#e9ecef 25%,#f8f9fa 50%,#e9ecef 75%);background-size:200% 100%;animation:1.5s infinite shimmer;border-radius:4px;margin-bottom:10px}.skeleton-line.short{width:60%}.skeleton-line.medium{width:80%}.skeleton-line.long{width:100%}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.page-loader{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.95);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(5px)}.page-loader.hidden{opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}.page-spinner{width:60px;height:60px;border:5px solid rgba(143,192,78,.2);border-top:5px solid #8fc04e;border-radius:50%;animation:1s linear infinite spin;margin-bottom:30px}.loading-progress{width:200px;height:4px;background:rgba(143,192,78,.2);border-radius:2px;overflow:hidden;margin-top:20px}.loading-progress-bar{height:100%;background:linear-gradient(90deg,#8fc04e,#106eea);border-radius:2px;animation:2s ease-in-out infinite progressMove}@keyframes progressMove{0%{transform:translateX(-100%)}50%{transform:translateX(0)}100%{transform:translateX(100%)}}.team-loading{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;padding:20px 0}.team-skeleton{background:#f8f9fa;border-radius:15px;padding:20px;text-align:center;animation:1.5s ease-in-out infinite pulse}.team-skeleton-avatar{width:80px;height:80px;background:#e9ecef;border-radius:50%;margin:0 auto 15px;animation:1.5s infinite shimmer}.certificates-loading{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;padding:20px 0}.certificate-skeleton{background:#f8f9fa;border-radius:10px;padding:20px;animation:1.5s ease-in-out infinite pulse}.certificate-skeleton-image{width:100%;height:200px;background:#e9ecef;border-radius:8px;margin-bottom:15px;animation:1.5s infinite shimmer}.error-state{text-align:center;padding:60px 20px;color:#6c757d}.error-state i{font-size:48px;color:#ffc107;margin-bottom:20px}.error-state h4{color:#2c4964;margin-bottom:15px}.error-state p{margin-bottom:25px}.error-state .btn{background:#8fc04e;border:none;color:#fff;padding:10px 25px;border-radius:25px;text-decoration:none;transition:.3s}.error-state .btn:hover{background:#7aa83e;transform:translateY(-2px)}.content-loaded{animation:.6s ease-out fadeIn}@media (max-width:768px){.content-loader{padding:40px 15px;margin:20px 0}.content-spinner{width:40px;height:40px}.content-loader-text{font-size:14px}.page-spinner{width:50px;height:50px}.loading-progress{width:150px}}.loading-dots::after{content:'';animation:1.5s infinite loadingDots}@keyframes loadingDots{0%,20%{content:''}40%{content:'.'}60%{content:'..'}100%,80%{content:'...'}}.fade-in{animation:.5s ease-out fadeIn}.slide-up{animation:.6s ease-out slideUp}.btn-loading{position:relative;pointer-events:none;opacity:.7}.btn-loading::after{content:'';position:absolute;width:16px;height:16px;margin:auto;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:1s linear infinite spin;top:0;left:0;bottom:0;right:0}