/* Tennis Tracker Custom Styles */
:root {
  --color-tennis-green: #0a4d3c;
  --color-tennis-gold: #d4af37;
  --color-clay: #c15c3d;
  --color-court-blue: #1a4f8b;
  --color-grass: #1b7a42;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  background-color: #f8fafc;
  color: #1e293b;
  min-height: 100vh;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Modal Transitions */
.modal-backdrop {
  background-color: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
  transition: opacity 0.2s ease-in-out;
}

.modal-content-box {
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  transform: scale(0.96) translateY(10px);
  opacity: 0;
}

.modal-active .modal-content-box {
  transform: scale(1) translateY(0);
  opacity: 1;
}

/* Rank Badge Styles */
.rank-badge-top1 {
  background: linear-gradient(135deg, #ffd700, #ffb300);
  color: #78350f;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

.rank-badge-top3 {
  background: linear-gradient(135deg, #e2e8f0, #94a3b8);
  color: #1e293b;
}

.rank-badge-top10 {
  background: linear-gradient(135deg, #10b981, #059669);
  color: #ffffff;
}

/* Japan Highlight */
.japan-highlight {
  border-left: 4px solid #ef4444 !important;
  background-color: #fffbfb;
}

/* Grand Slam Card Accent Colors */
.slam-ao {
  border-top: 4px solid #0284c7;
}
.slam-rg {
  border-top: 4px solid #ea580c;
}
.slam-wb {
  border-top: 4px solid #16a34a;
}
.slam-us {
  border-top: 4px solid #2563eb;
}

/* Interactive Card Hover */
.player-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.player-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.1);
}

/* Smooth Fade in */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
  animation: fadeIn 0.25s ease-out forwards;
}
