/* Stats table view layout */
#content:has(> form > .data) {
  margin-right: var(--spacing-md);
  width: 100%;
  max-width: 80vw;
}

/* Table container styles */
.table-container:has(.data) {
  width: 100%;
  overflow-x: auto;
  margin-bottom: var(--spacing-lg);
}

/* Wide report tables need minimum width to prevent column squishing.
   Applied via the table-wide class on stats and instructor report tables. */

/* Ensure header actions row stays visible */
.data th.header-actions {
  position: sticky;
  top: 0;
  background-color: var(--color-table-header);
  z-index: 2;
}

/* Print button positioning */
.data th.header-actions .print-button {
  position: absolute;
  right: var(--spacing-md);
  top: 50%;
  transform: translateY(-50%);
}

/* Festival Badge - Appears when festival period selected */
.festival-badge {
  display: inline-block;
  padding: var(--spacing-sm) var(--spacing-md);
  background-color: var(--color-primary);
  color: var(--color-background);
  border-radius: var(--radius-base);
  font-weight: var(--font-bold);
  font-size: var(--text-base);
  white-space: nowrap;
}

/* Hide by default when not active */
.festival-badge.hidden {
  display: none;
}

/* Inner text styling for date range */
.festival-badge .festival-dates {
  color: rgba(255, 255, 255, 0.7);
  margin-left: var(--spacing-sm);
}

/* Date or Badge Container - prevents layout collapse when swapping */
#date-or-badge-container {
  display: inline-block;
  width: 280px;
  height: 38px;
  vertical-align: middle;
  transition: all var(--transition-fast);
  text-align: left;
  line-height: 38px;
}

/* Inline Festival Badge - replaces date picker space */
.festival-badge-inline {
  padding: var(--spacing-xs) var(--spacing-sm);
  background-color: var(--color-primary);
  color: var(--color-background);
  border-radius: var(--radius-base);
  font-weight: var(--font-semibold);
  font-size: var(--text-sm);
  white-space: nowrap;
  display: none;
  transition: opacity var(--transition-fast);
  vertical-align: middle;
  line-height: normal;
}

.festival-badge-inline.hidden {
  display: none;
}

/* Responsive adjustments */
@media (max-width: 768px) /* --breakpoint-md */ {
  #content:has(> form > .data) {
    margin: 0;
    padding: var(--spacing-sm);
  }

  .data {
    font-size: var(--text-sm);
  }

  .data th,
  .data td {
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  .festival-badge {
    font-size: var(--text-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  .festival-badge-inline {
    font-size: var(--text-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
  }

  #date-or-badge-container {
    width: 220px;
    height: 32px;
    line-height: 32px;
  }
}