@tailwind base;
@tailwind components;
@tailwind utilities;

body {
  @apply bg-bgBody text-slate-100;
  font-family: "Pretendard", sans-serif;
  overflow-x: hidden;
}

/* 배경에 미묘한 그라디언트 패턴 추가 */
body::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(
      ellipse 80% 50% at 50% -20%,
      rgba(120, 119, 198, 0.15),
      transparent
    ),
    radial-gradient(
      ellipse 60% 40% at 100% 100%,
      rgba(56, 189, 248, 0.08),
      transparent
    );
  pointer-events: none;
  z-index: -1;
}

/* 글래스모피즘 카드 기본 스타일 */
.glass-card {
  @apply bg-white/[0.03] backdrop-blur-xl border border-white/[0.08] rounded-2xl;
  box-shadow: 0 4px 24px -1px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 0 rgba(255, 255, 255, 0.05);
}

/* 호버 시 글래스 효과 강화 */
.glass-card-hover {
  @apply transition-all duration-300;
}

.glass-card-hover:hover {
  @apply bg-white/[0.06] border-white/[0.15];
  box-shadow: 0 8px 32px -4px rgba(0, 0, 0, 0.3),
    0 0 0 1px rgba(255, 255, 255, 0.1), inset 0 1px 0 0 rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
}

/* 상태 표시등 펄스 애니메이션 */
@keyframes pulse-glow {
  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 0 0 currentColor;
  }
  50% {
    opacity: 0.8;
    box-shadow: 0 0 12px 4px currentColor;
  }
}

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

/* 그라디언트 텍스트 */
.gradient-text {
  @apply bg-gradient-to-r from-blue-400 via-violet-400 to-purple-400 bg-clip-text text-transparent;
}

/* 아이콘 그라디언트 효과 */
.icon-gradient {
  @apply text-transparent bg-clip-text bg-gradient-to-br from-slate-400 to-slate-500;
}

/* 카드 내부 빛나는 효과 */
.inner-glow {
  position: relative;
}

.inner-glow::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.1),
    transparent
  );
}

/* 부드러운 스크롤바 */
::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  @apply bg-transparent;
}

::-webkit-scrollbar-thumb {
  @apply bg-white/10 rounded-full;
  transition: background 0.2s;
}

::-webkit-scrollbar-thumb:hover {
  @apply bg-white/20;
}

/* 차트 영역 글래스 효과 */
.chart-container {
  @apply bg-white/[0.02] backdrop-blur-sm border border-white/[0.06] rounded-2xl;
  box-shadow: inset 0 1px 0 0 rgba(255, 255, 255, 0.03);
}

/* 네온 글로우 효과 (온라인 상태용) */
.glow-green {
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.5), 0 0 20px rgba(16, 185, 129, 0.3);
}

.glow-red {
  box-shadow: 0 0 10px rgba(244, 63, 94, 0.5), 0 0 20px rgba(244, 63, 94, 0.3);
}

/* 부드러운 페이드인 애니메이션 */
@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in-up {
  animation: fade-in-up 0.4s ease-out;
}

/* 시머 효과 (로딩용) */
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

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