/* 색상 토큰은 oklch 구성값(L C H)만 담아서 Tailwind의 /opacity 문법이 동작하게 한다. */
:root {
  --radius: 0.875rem;
  --background: 97.5% 0.006 85;
  --foreground: 20% 0.02 260;
  --card: 100% 0 0;
  --card-foreground: 20% 0.02 260;
  --primary: 24% 0.03 260;
  --primary-foreground: 98% 0.005 85;
  --secondary: 94% 0.01 85;
  --secondary-foreground: 24% 0.03 260;
  --muted: 94% 0.01 85;
  --muted-foreground: 52% 0.02 260;
  --accent: 95% 0.05 60;
  --accent-foreground: 45% 0.15 45;
  --destructive: 57.7% 0.245 27.325;
  --destructive-foreground: 98.5% 0 0;
  --urgent: 66% 0.2 38;
  --urgent-foreground: 99% 0.005 60;
  --success: 60% 0.14 155;
  --recruitment: 43% 0.1 165;
  --recruitment-foreground: 99% 0.005 165;
  --recruitment-muted: 94% 0.025 165;
  --border: 90% 0.01 85;
  --input: 90% 0.01 85;
  --ring: 66% 0.2 38;
  --gradient-urgent: linear-gradient(135deg, oklch(68% 0.2 40), oklch(60% 0.21 25));
  --shadow-card: 0 6px 20px -10px oklch(20% 0.02 260 / 0.25);
}

button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
}

.btn svg {
  pointer-events: none;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

/* 바텀시트·다이얼로그 애니메이션 (원본의 Radix + tailwindcss-animate 타이밍) */
@keyframes fade-in {
  from { opacity: 0; }
}
@keyframes fade-out {
  to { opacity: 0; }
}
@keyframes slide-up {
  from { transform: translateY(100%); }
}
@keyframes slide-down {
  to { transform: translateY(100%); }
}
@keyframes zoom-in {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
}
@keyframes zoom-out {
  to { opacity: 0; transform: translate(-50%, -50%) scale(0.95); }
}
.anim-fade { animation: fade-in 0.2s ease-out; }
.anim-zoom { animation: zoom-in 0.2s ease-out; }
.anim-sheet { animation: slide-up 0.5s ease-in-out; }
.anim-slide-up { animation: slide-up 0.15s ease-out; }
.out-fade { animation: fade-out 0.2s ease-in forwards; }
.out-zoom { animation: zoom-out 0.2s ease-in forwards; }
.out-sheet { animation: slide-down 0.3s ease-in-out forwards; }

/* AI 면접 실시간 자막: 마이크 소리 막대와 깜빡이는 커서 */
.mic-bar {
  transition: height 80ms linear;
}
@keyframes caret-blink {
  50% { opacity: 0; }
}
.live-caret {
  display: inline-block;
  width: 2px;
  height: 1.1em;
  margin-left: 2px;
  vertical-align: text-bottom;
  background: currentColor;
  animation: caret-blink 1s step-end infinite;
}

.no-scrollbar::-webkit-scrollbar {
  height: 0;
}
