/* Shared tab groups (see wwwroot/js/tabs.js) for admin/detail pages that stack several related
   panels — a summary, a data-entry form, one or more tables — behind a single tab bar instead of a
   long scroll of stacked cards. Mobile-first: the tab list wraps instead of scrolling horizontally,
   and each tab keeps a >=44px touch target per the responsive-ui rule. */
.fs-tabs {
  margin-bottom: 20px;
}
.fs-tab-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  border-bottom: 2px solid var(--line);
  margin-bottom: 20px;
}
.fs-tab {
  appearance: none;
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  padding: 12px 16px;
  min-height: 44px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  color: var(--muted);
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}
.fs-tab:hover {
  color: var(--ink);
  background: var(--surface-soft);
}
.fs-tab[aria-selected="true"] {
  color: var(--navy);
  border-bottom-color: var(--accent);
  background: var(--surface-soft);
}
.fs-tab:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: -2px;
}
/* A tab panel can also be a grid or flex layout (the athlete Profile sub-tabs use
   `.admin-create-grid`). Author CSS beats the browser's built-in `[hidden]` rule, so explicitly
   keep inactive panels out of layout even when another class sets `display`. */
.fs-tab-panel[hidden] {
  display: none !important;
}
/* Panels reuse .card for their own visual container, so the last card in a panel doesn't need the
   usual bottom margin that stacked cards use to separate themselves from the next card. */
.fs-tab-panel > .card:last-child,
.fs-tab-panel > .admin-stats:last-child {
  margin-bottom: 0;
}

@media (max-width: 480px) {
  .fs-tab-list {
    gap: 2px;
  }
  .fs-tab {
    padding: 10px 12px;
    font-size: 13px;
  }
}
