/* ALSI Basketball — admin console (docs/04-ui-design.md §admin).
   Deliberately DESKTOP-FIRST and tabular (the player app is mobile-first): the
   organizer views show many rows at once. Reuses the shared design tokens
   (colors, Bungee/Plus Jakarta type, chips, buttons); only loaded globally but
   scoped to .adm-* classes so it affects /admin/* pages only. Degrades to a
   scrollable/stacked layout on small screens. */

/* Admin pages render Chrome=false → no player bottom-nav; widen the otherwise
   mobile app shell for the wide tables. */
.app:has(.adm-shell) { max-width: 1180px; }
.app:has(.adm-shell) .flash-wrap { margin: var(--sp-4) var(--sp-4) 0; }

.adm-shell { padding: var(--sp-4) var(--sp-4) var(--sp-8); }
.adm-shell h1 { margin-bottom: var(--sp-4); }

/* ---- top bar -------------------------------------------------------------- */
.adm-bar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  padding: var(--sp-2) var(--sp-4);
  background: var(--paper-0); border-bottom: 1px solid var(--line);
}
.adm-bar__brand { display: inline-flex; align-items: center; gap: var(--sp-2); color: var(--ink-900); text-decoration: none; font-family: var(--font-display); font-size: var(--step-0); }
.adm-bar__brand img { border-radius: 6px; flex: none; }
.adm-bar__brand:hover { text-decoration: none; }
.adm-bar__nav { display: flex; gap: var(--sp-1); }
.adm-bar__spacer { flex: 1; }
.adm-bar__link { font-weight: 700; font-size: var(--step--1); }
.adm-tab {
  padding: 6px 12px; border-radius: var(--r-full);
  font-weight: 700; font-size: var(--step--1); color: var(--ink-500); text-decoration: none;
}
.adm-tab:hover { background: var(--paper-100); text-decoration: none; }
.adm-tab.is-active { background: var(--sun-500); color: var(--ink-900); }

/* ---- stat strip ----------------------------------------------------------- */
.adm-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); margin-bottom: var(--sp-6); }
.adm-stat { background: var(--paper-0); border: 1px solid var(--line); border-radius: var(--r-md); padding: var(--sp-3) var(--sp-4); }
.adm-stat__n { display: block; font-family: var(--font-display); font-size: var(--step-2); color: var(--ink-900); line-height: 1.05; }
.adm-stat__l { display: block; font-size: var(--step--1); color: var(--ink-500); margin-top: 4px; font-weight: 700; }

/* ---- toolbar / filters ---------------------------------------------------- */
.adm-toolbar { display: flex; gap: var(--sp-2); flex-wrap: wrap; align-items: center; margin-bottom: var(--sp-3); }
.adm-toolbar .input { flex: 1; min-width: 220px; min-height: 40px; }
.adm-toolbar .select { width: auto; min-height: 40px; }

/* ---- export --------------------------------------------------------------- */
.adm-export { margin-bottom: var(--sp-4); }
.adm-export > summary { display: inline-flex; list-style: none; cursor: pointer; }
.adm-export > summary::-webkit-details-marker { display: none; }
.adm-export__body { margin-top: var(--sp-3); padding: var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-md); background: var(--paper-0); }
.adm-cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--sp-2); margin-bottom: var(--sp-4); }
.adm-col { display: flex; align-items: center; gap: 6px; font-size: var(--step--1); font-weight: 600; }

/* ---- table ---------------------------------------------------------------- */
.adm-table { width: 100%; border-collapse: collapse; font-size: var(--step--1); background: var(--paper-0); }
.adm-table th, .adm-table td { padding: 10px 12px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--line); }
.adm-table thead th { background: var(--paper-100); color: var(--ink-700); font-family: var(--font-heading); font-weight: 800; white-space: nowrap; }
.adm-table tbody tr:hover { background: var(--paper-50); }
.adm-table .chip { font-size: .72rem; }

.adm-inline { display: inline-flex; gap: 6px; align-items: center; margin: 0; }
.adm-reason { min-height: 34px; width: 130px; font-size: var(--step--1); padding: 0 8px; }
.adm-receipt { font-weight: 700; }

/* ---- pager ---------------------------------------------------------------- */
.adm-pager { display: flex; align-items: center; gap: var(--sp-3); margin-top: var(--sp-4); flex-wrap: wrap; }

/* ---- app-bar admin entry (shown on player pages to admins) ----------------- */
.appbar__admin {
  font-weight: 800; font-size: var(--step--1); color: var(--orange-600);
  padding: 6px 12px; border: 1.5px solid var(--orange-500); border-radius: var(--r-full);
}
.appbar__admin:hover { text-decoration: none; background: var(--orange-500); color: #fff; }

@media (max-width: 720px) {
  .adm-stats { grid-template-columns: repeat(2, 1fr); }
  .adm-bar__nav { order: 3; width: 100%; }
  .adm-shell { padding-left: var(--sp-3); padding-right: var(--sp-3); }
}
