:root {
  --brand: #4f46e5;
}

body {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif;
}

.grade-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  padding: 0.15rem 0.5rem;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 0.8rem;
}
.grade-S { background: #fef3c7; color: #92400e; }
.grade-Aplus { background: #dbeafe; color: #1e40af; }
.grade-A { background: #e0e7ff; color: #3730a3; }
.grade-Bplus { background: #dcfce7; color: #166534; }
.grade-B { background: #f1f5f9; color: #334155; }
.grade-C { background: #fee2e2; color: #991b1b; }
.grade-D { background: #fecaca; color: #7f1d1d; }
.grade-none { background: #f1f5f9; color: #94a3b8; }

.weight-chip {
  background: #eef2ff;
  color: #4338ca;
  border-radius: 6px;
  padding: 0.1rem 0.4rem;
  font-size: 0.75rem;
  font-weight: 600;
}

.fade-in {
  animation: fadeIn 0.25s ease-in;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

textarea {
  resize: vertical;
}

.spinner {
  border: 3px solid #e2e8f0;
  border-top-color: var(--brand);
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  animation: spin 0.7s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
