.tab-btn.active {
  color: #dc2626;
  border-bottom: 2px solid #dc2626;
}

.tab-btn:not(.active) {
  border-bottom: 2px solid transparent;
}

/* Player tags (used in day detail, coach results, etc.) */
.player-tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 9999px;
  font-size: 0.8rem;
  font-weight: 500;
  margin: 2px;
}

.player-tag.available {
  background: #dcfce7;
  color: #166534;
}

.player-tag.unavailable {
  background: #fee2e2;
  color: #991b1b;
}

/* Calendar grid */
.calendar-day {
  min-height: 90px;
  padding: 4px;
  background: white;
  font-size: 0.75rem;
  cursor: pointer;
  transition: background 0.15s;
}

.calendar-day:hover {
  background: #fff1f1;
}

.calendar-day.selected {
  outline: 2px solid #dc2626;
  outline-offset: -2px;
}

.calendar-day.outside {
  background: #f9fafb;
  color: #d1d5db;
  cursor: default;
}

.calendar-day.outside:hover {
  background: #f9fafb;
}

.calendar-day .day-number {
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: 2px;
}

.calendar-day .player-name {
  padding: 1px 4px;
  border-radius: 3px;
  margin-bottom: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.65rem;
}

.calendar-day .player-name.unavailable {
  background: #fee2e2;
  color: #991b1b;
}

.calendar-day .player-name.available {
  background: #dcfce7;
  color: #166534;
}

.calendar-day.all-available {
  background: #f0fdf4;
}

.calendar-day.all-available .day-number {
  color: #16a34a;
}

.calendar-day.has-unavail {
  background: #fff5f5;
}

.availability-count {
  font-size: 0.6rem;
  color: #6b7280;
  margin-bottom: 2px;
}

.availability-count.full {
  color: #16a34a;
  font-weight: 600;
}

.availability-count.low {
  color: #dc2626;
  font-weight: 600;
}

/* Day detail panel */
.day-detail {
  border-top: 3px solid #dc2626;
}

/* Mobile entries cards */
.entry-card {
  display: none;
}

/* Desktop: show table, hide cards */
@media (min-width: 641px) {
  .entries-table-wrap {
    display: block;
  }
  .entry-card {
    display: none !important;
  }

  .calendar-day .player-names-list {
    display: block;
  }

  .calendar-day .mobile-dot {
    display: none;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .entries-table-wrap {
    display: none;
  }
  .entry-card {
    display: block;
  }

  /* Bigger, tappable calendar cells */
  .calendar-day {
    min-height: 64px;
    padding: 6px 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .calendar-day .day-number {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 3px;
    line-height: 1;
  }

  .availability-count {
    font-size: 0.75rem;
    font-weight: 600;
  }

  /* Color dot indicator for days with unavailability */
  .calendar-day .mobile-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-top: 3px;
  }

  .calendar-day .mobile-dot.red {
    background: #ef4444;
  }

  .calendar-day .mobile-dot.green {
    background: #22c55e;
  }

  /* Hide individual names in calendar cells on mobile */
  .calendar-day .player-names-list {
    display: none;
  }

  .calendar-day.selected {
    outline: 2px solid #dc2626;
    outline-offset: -2px;
    background: #fef2f2;
  }

  /* Bigger day header labels */
  .calendar-header-cell {
    font-size: 0.8rem !important;
    padding: 8px 0 !important;
    font-weight: 700 !important;
  }

  /* Day detail */
  .day-detail .player-tag {
    font-size: 0.85rem;
    padding: 5px 12px;
  }
}
