* { box-sizing: border-box; }
body {
  font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
  color: #1e293b;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@media (max-width: 767px) {
  .chat-side-panel { display: none !important; }
}

/* 검사 화면 보호: 텍스트 선택/복사 차단 */
body.test-protected {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
}

/* 랜딩 검사 배지 툴팁 */
.test-badge-tip {
  position: relative;
  display: inline-block;
  cursor: pointer;
}
.test-badge-tip::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: #0f172a;
  color: #e2e8f0;
  padding: 5px 10px;
  border-radius: 7px;
  font-size: 11px;
  white-space: nowrap;
  z-index: 200;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.test-badge-tip::before {
  content: '';
  position: absolute;
  bottom: calc(100% + 3px);
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: #0f172a;
  z-index: 200;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.test-badge-tip:hover::after,
.test-badge-tip:hover::before {
  opacity: 1;
}
