/* CDN Simulator Ultimate Styles */

/* Glass morphism cards */
.cdn-glass-panel {
  background: linear-gradient(145deg, rgba(15, 23, 42, 0.9) 0%, rgba(30, 41, 59, 0.8) 100%);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(56, 189, 248, 0.1);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.cdn-glass-panel:hover {
  border-color: rgba(56, 189, 248, 0.3);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

/* Animated gradient borders */
@keyframes gradient-shift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.cdn-gradient-border {
  position: relative;
  background: linear-gradient(135deg, #0f172a, #1e293b);
  border-radius: 12px;
}

.cdn-gradient-border::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 14px;
  background: linear-gradient(45deg, #0ea5e9, #8b5cf6, #ec4899, #0ea5e9);
  background-size: 300% 300%;
  animation: gradient-shift 3s ease infinite;
  z-index: -1;
}

/* Pulse animations */
@keyframes cdn-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
}

.cdn-pulse {
  animation: cdn-pulse 2s ease-in-out infinite;
}

/* Shimmer effect */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.cdn-shimmer {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.05), transparent);
  background-size: 200% 100%;
  animation: shimmer 2s infinite;
}

/* Tab transitions */
.ult-tab-content {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.ult-tab-content:not(.hidden) {
  animation: fadeInUp 0.4s ease-out;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Scrollbar styling */
#cdn-ultimate-tabs::-webkit-scrollbar {
  height: 4px;
}

#cdn-ultimate-tabs::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.5);
  border-radius: 2px;
}

#cdn-ultimate-tabs::-webkit-scrollbar-thumb {
  background: rgba(56, 189, 248, 0.3);
  border-radius: 2px;
}

/* Heat map canvas */
#cdn-heat-map canvas {
  border-radius: 12px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

/* Status indicators */
.cdn-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.cdn-status-dot.online {
  background: #22c55e;
  box-shadow: 0 0 8px #22c55e;
}

.cdn-status-dot.warning {
  background: #eab308;
  box-shadow: 0 0 8px #eab308;
}

.cdn-status-dot.offline {
  background: #ef4444;
  box-shadow: 0 0 8px #ef4444;
}

/* Counter animation */
@keyframes countUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.cdn-counter {
  animation: countUp 0.5s ease-out;
}

/* Responsive grid helpers */
@media (max-width: 768px) {
  .cdn-ultimate-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Tooltip enhancements */
[data-tooltip] {
  position: relative;
}

[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  background: rgba(15, 23, 42, 0.95);
  color: white;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 11px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease;
  border: 1px solid rgba(56, 189, 248, 0.2);
  z-index: 100;
}

[data-tooltip]:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(-4px);
}
