/* ========================================
   UTILITAIRES HOCKEY - LHSQC
   ========================================
   
   Utilitaires spécialisés pour le site de hockey
   Classes pour équipes, positions, statuts, événements
   ======================================== */

/* ========================================
   UTILITAIRES D'ÉQUIPES
   ======================================== */

/* Équipes NHL - Exemples */
.team-montreal {
  --team-primary: #af1e2d;
  --team-secondary: #192168;
  --team-accent: #ffffff;
}

.team-toronto {
  --team-primary: #00205b;
  --team-secondary: #ffffff;
  --team-accent: #d80621;
}

.team-boston {
  --team-primary: #ffb81c;
  --team-secondary: #000000;
  --team-accent: #ffffff;
}

.team-detroit {
  --team-primary: #ce1126;
  --team-secondary: #ffffff;
  --team-accent: #000000;
}

.team-chicago {
  --team-primary: #cf0a2c;
  --team-secondary: #000000;
  --team-accent: #ffffff;
}

/* Classes de couleurs d'équipes */
.bg-team-primary { background-color: var(--team-primary) !important; }
.bg-team-secondary { background-color: var(--team-secondary) !important; }
.bg-team-accent { background-color: var(--team-accent) !important; }

.text-team-primary { color: var(--team-primary) !important; }
.text-team-secondary { color: var(--team-secondary) !important; }
.text-team-accent { color: var(--team-accent) !important; }

.border-team-primary { border-color: var(--team-primary) !important; }
.border-team-secondary { border-color: var(--team-secondary) !important; }
.border-team-accent { border-color: var(--team-accent) !important; }

/* ========================================
   UTILITAIRES DE POSITIONS
   ======================================== */

/* Positions des joueurs */
.position-center {
  color: var(--color-position-center) !important;
  background-color: rgba(59, 130, 246, 0.1) !important;
}

.position-wing {
  color: var(--color-position-wing) !important;
  background-color: rgba(16, 185, 129, 0.1) !important;
}

.position-defense {
  color: var(--color-position-defense) !important;
  background-color: rgba(245, 158, 11, 0.1) !important;
}

.position-goalie {
  color: var(--color-position-goalie) !important;
  background-color: rgba(139, 92, 246, 0.1) !important;
}

/* Classes de couleurs de positions */
.bg-position-center { background-color: var(--color-position-center) !important; }
.bg-position-wing { background-color: var(--color-position-wing) !important; }
.bg-position-defense { background-color: var(--color-position-defense) !important; }
.bg-position-goalie { background-color: var(--color-position-goalie) !important; }

.text-position-center { color: var(--color-position-center) !important; }
.text-position-wing { color: var(--color-position-wing) !important; }
.text-position-defense { color: var(--color-position-defense) !important; }
.text-position-goalie { color: var(--color-position-goalie) !important; }

/* ========================================
   UTILITAIRES DE STATUTS
   ======================================== */

/* Statuts des joueurs */
.status-active {
  color: var(--color-status-active) !important;
  background-color: rgba(16, 185, 129, 0.1) !important;
}

.status-inactive {
  color: var(--color-status-inactive) !important;
  background-color: rgba(100, 116, 139, 0.1) !important;
}

.status-injured {
  color: var(--color-status-injured) !important;
  background-color: rgba(239, 68, 68, 0.1) !important;
}

.status-suspended {
  color: var(--color-status-suspended) !important;
  background-color: rgba(245, 158, 11, 0.1) !important;
}

.status-traded {
  color: var(--color-status-traded) !important;
  background-color: rgba(139, 92, 246, 0.1) !important;
}

/* Classes de couleurs de statuts */
.bg-status-active { background-color: var(--color-status-active) !important; }
.bg-status-inactive { background-color: var(--color-status-inactive) !important; }
.bg-status-injured { background-color: var(--color-status-injured) !important; }
.bg-status-suspended { background-color: var(--color-status-suspended) !important; }
.bg-status-traded { background-color: var(--color-status-traded) !important; }

.text-status-active { color: var(--color-status-active) !important; }
.text-status-inactive { color: var(--color-status-inactive) !important; }
.text-status-injured { color: var(--color-status-injured) !important; }
.text-status-suspended { color: var(--color-status-suspended) !important; }
.text-status-traded { color: var(--color-status-traded) !important; }

/* ========================================
   UTILITAIRES D'ÉVÉNEMENTS
   ======================================== */

/* Événements de jeu */
.event-goal {
  color: var(--color-event-goal) !important;
  background-color: rgba(16, 185, 129, 0.1) !important;
}

.event-assist {
  color: var(--color-event-assist) !important;
  background-color: rgba(59, 130, 246, 0.1) !important;
}

.event-penalty {
  color: var(--color-event-penalty) !important;
  background-color: rgba(239, 68, 68, 0.1) !important;
}

.event-powerplay {
  color: var(--color-event-powerplay) !important;
  background-color: rgba(245, 158, 11, 0.1) !important;
}

.event-shorthanded {
  color: var(--color-event-shorthanded) !important;
  background-color: rgba(139, 92, 246, 0.1) !important;
}

/* Classes de couleurs d'événements */
.bg-event-goal { background-color: var(--color-event-goal) !important; }
.bg-event-assist { background-color: var(--color-event-assist) !important; }
.bg-event-penalty { background-color: var(--color-event-penalty) !important; }
.bg-event-powerplay { background-color: var(--color-event-powerplay) !important; }
.bg-event-shorthanded { background-color: var(--color-event-shorthanded) !important; }

.text-event-goal { color: var(--color-event-goal) !important; }
.text-event-assist { color: var(--color-event-assist) !important; }
.text-event-penalty { color: var(--color-event-penalty) !important; }
.text-event-powerplay { color: var(--color-event-powerplay) !important; }
.text-event-shorthanded { color: var(--color-event-shorthanded) !important; }

/* ========================================
   UTILITAIRES DE DIVISIONS
   ======================================== */

/* Divisions NHL */
.division-atlantic {
  color: var(--color-division-atlantic) !important;
  background-color: rgba(30, 64, 175, 0.1) !important;
}

.division-metropolitan {
  color: var(--color-division-metropolitan) !important;
  background-color: rgba(220, 38, 38, 0.1) !important;
}

.division-central {
  color: var(--color-division-central) !important;
  background-color: rgba(5, 150, 105, 0.1) !important;
}

.division-pacific {
  color: var(--color-division-pacific) !important;
  background-color: rgba(124, 58, 237, 0.1) !important;
}

/* Classes de couleurs de divisions */
.bg-division-atlantic { background-color: var(--color-division-atlantic) !important; }
.bg-division-metropolitan { background-color: var(--color-division-metropolitan) !important; }
.bg-division-central { background-color: var(--color-division-central) !important; }
.bg-division-pacific { background-color: var(--color-division-pacific) !important; }

.text-division-atlantic { color: var(--color-division-atlantic) !important; }
.text-division-metropolitan { color: var(--color-division-metropolitan) !important; }
.text-division-central { color: var(--color-division-central) !important; }
.text-division-pacific { color: var(--color-division-pacific) !important; }

/* ========================================
   UTILITAIRES DE STATISTIQUES
   ======================================== */

/* Statistiques positives */
.stat-positive {
  color: var(--color-success) !important;
  font-weight: 600 !important;
}

.stat-negative {
  color: var(--color-danger) !important;
  font-weight: 600 !important;
}

.stat-neutral {
  color: var(--color-text-secondary) !important;
  font-weight: 400 !important;
}

/* Statistiques en vedette */
.stat-leader {
  background: linear-gradient(135deg, var(--color-success), var(--color-success-dark)) !important;
  color: var(--color-white) !important;
  font-weight: 700 !important;
  padding: 0.25rem 0.5rem !important;
  border-radius: var(--border-radius-md) !important;
}

.stat-record {
  background: linear-gradient(135deg, var(--color-warning), var(--color-warning-dark)) !important;
  color: var(--color-white) !important;
  font-weight: 700 !important;
  padding: 0.25rem 0.5rem !important;
  border-radius: var(--border-radius-md) !important;
}

/* ========================================
   UTILITAIRES DE JEU
   ======================================== */

/* États de jeu */
.game-live {
  background: linear-gradient(135deg, var(--color-danger), var(--color-danger-dark)) !important;
  color: var(--color-white) !important;
  animation: pulse 2s infinite !important;
}

.game-finished {
  background: var(--color-success) !important;
  color: var(--color-white) !important;
}

.game-scheduled {
  background: var(--color-info) !important;
  color: var(--color-white) !important;
}

.game-postponed {
  background: var(--color-warning) !important;
  color: var(--color-white) !important;
}

/* Scores */
.score-winning {
  color: var(--color-success) !important;
  font-weight: 700 !important;
  font-size: 1.2em !important;
}

.score-losing {
  color: var(--color-danger) !important;
  font-weight: 600 !important;
}

.score-tied {
  color: var(--color-warning) !important;
  font-weight: 600 !important;
}

/* ========================================
   UTILITAIRES D'ANIMATIONS HOCKEY
   ======================================== */

/* Animation de pulsation pour les jeux en direct */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}

/* Animation de glissement pour les statistiques */
@keyframes slide-in {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.slide-in {
  animation: slide-in 0.5s ease-out !important;
}

/* Animation de rebond pour les buts */
@keyframes bounce {
  0%, 20%, 53%, 80%, 100% {
    transform: translate3d(0, 0, 0);
  }
  40%, 43% {
    transform: translate3d(0, -8px, 0);
  }
  70% {
    transform: translate3d(0, -4px, 0);
  }
  90% {
    transform: translate3d(0, -2px, 0);
  }
}

.bounce {
  animation: bounce 1s !important;
}

/* ========================================
   UTILITAIRES RESPONSIVE HOCKEY
   ======================================== */

/* Masquer les statistiques détaillées sur mobile */
@media (max-width: 768px) {
  .stat-detail-mobile {
    display: none !important;
  }
  
  .team-name-mobile {
    font-size: var(--font-size-sm) !important;
  }
  
  .score-mobile {
    font-size: var(--font-size-lg) !important;
    font-weight: 700 !important;
  }
}

/* Afficher les statistiques détaillées sur desktop */
@media (min-width: 769px) {
  .stat-detail-desktop {
    display: block !important;
  }
}

/* ========================================
   UTILITAIRES D'ACCESSIBILITÉ HOCKEY
   ======================================== */

/* Mode contraste élevé pour les statistiques */
@media (prefers-contrast: high) {
  .stat-positive {
    color: #000000 !important;
    background-color: #00ff00 !important;
  }
  
  .stat-negative {
    color: #ffffff !important;
    background-color: #ff0000 !important;
  }
}

/* Mode mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  .game-live {
    animation: none !important;
  }
  
  .slide-in {
    animation: none !important;
  }
  
  .bounce {
    animation: none !important;
  }
} 