body {
  padding-bottom: 3rem;
  background: url('/static/background.jpeg') center center / cover no-repeat fixed;
}

/* Kick buttons across the app - distinct from Ban's btn-danger red, per branding. */
.btn-kick {
  background-color: #2f48ba;
  border-color: #2f48ba;
  color: #fff;
}

.btn-kick:hover,
.btn-kick:active,
.btn-kick:focus {
  background-color: #263ca0;
  border-color: #263ca0;
  color: #fff;
}

.card + .card {
  margin-top: 1rem;
}

.badge-status-ok {
  background-color: #198754;
}

.badge-status-error {
  background-color: #dc3545;
}

.badge-status-unknown {
  background-color: #6c757d;
}

table.table-sessions td, table.table-sessions th {
  white-space: nowrap;
}

/* Shows roughly 10 rows of a .table-sm before scrolling; used for the player detail
   page's connection history so long histories don't push the rest of the page down. */
.scroll-10-rows {
  max-height: 22rem;
  overflow-y: auto;
}

.scroll-10-rows thead th {
  position: sticky;
  top: 0;
  background-color: var(--bs-tertiary-bg, var(--bs-body-bg));
  z-index: 1;
}

/* Collapsible card sections (player detail page). Bootstrap's collapse plugin adds
   .collapsed to the toggle element automatically when its target is hidden, so the
   chevron flips with no extra JS needed. */
.card-header[data-bs-toggle="collapse"] {
  cursor: pointer;
}

.card-header[data-bs-toggle="collapse"] .chevron {
  display: inline-block;
  transition: transform 0.2s ease;
}

.card-header[data-bs-toggle="collapse"].collapsed .chevron {
  transform: rotate(-90deg);
}

/* Table rows that navigate somewhere on click (e.g. a server's online-players list -
   see servers/players.html). The row's onclick checks event.target.closest(...) for
   interactive elements rather than stopping propagation on them, since Bootstrap's
   data-bs-toggle="modal" buttons rely on the click bubbling all the way to a
   document-level listener to open their modal - stopPropagation() would silently break
   that. */
.clickable-row {
  cursor: pointer;
}

.clickable-row:hover {
  background-color: var(--bs-tertiary-bg, rgba(255, 255, 255, 0.05));
}
