/* TalentLens Custom Styles */
* { box-sizing: border-box; }

/* Smooth scrolling */
html { scroll-behavior: smooth; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #c4b5fd; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #7c3aed; }

/* Print styles */
@media print {
  nav, footer, button, .no-print { display: none !important; }
  body { background: white; }
  .bg-white { box-shadow: none !important; border: 1px solid #e5e7eb !important; }
}

/* Focus styles */
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #7c3aed;
  outline-offset: 2px;
}

/* Loading animation */
.loading-spinner {
  border: 3px solid #e9d5ff;
  border-top: 3px solid #7c3aed;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Score bar animation */
@keyframes growBar {
  from { width: 0%; }
  to { width: var(--target-width); }
}

.animated-bar {
  animation: growBar 1.5s ease forwards;
}

/* Candidate card hover */
.candidate-row:hover { background-color: #faf5ff; }

/* Pulse animation for live indicators */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
}

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