:root {
  color-scheme: light;
  font-family: 'Pretendard', 'Noto Sans KR', 'Apple SD Gothic Neo', system-ui, sans-serif;
}

body {
  font-family: 'Pretendard', 'Noto Sans KR', 'Apple SD Gothic Neo', system-ui, sans-serif;
}

.upload-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3.5rem 1.5rem;
  border: 3px dashed rgb(16 185 129 / 0.4);
  border-radius: 1rem;
  background: rgb(248 250 252);
  transition: all 0.3s ease;
  text-align: center;
  cursor: pointer;
  outline: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.upload-dropzone:hover {
  border-color: rgb(5 150 105 / 0.6);
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
  transform: translateY(-1px);
  background: rgb(241 245 249);
}

.upload-dropzone:focus-visible {
  box-shadow: 0 0 0 4px rgb(16 185 129 / 0.2);
}

.upload-dropzone.is-dragover {
  background: rgb(236 253 245 / 0.5);
  border-color: rgb(5 150 105 / 0.7);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(16, 185, 129, 0.2);
}

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

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 탭 관련 스타일 */
.tab-button {
  position: relative;
  transition: all 0.2s ease;
}

.tab-button:hover {
  background-color: rgb(248 250 252);
}

.tab-button.active {
  color: rgb(4 120 87);
  background-color: rgb(236 253 245);
  border-bottom-color: rgb(5 150 105);
}

.tab-panel {
  display: none;
  animation: fade-in 0.3s ease-out;
}

.tab-panel.active {
  display: block;
}
