/* Academy page: coaches (large portraits) and confirmed members (face tiles grouped by belt).
   academy_card_coaches.php, academy_card_members.php. Light and dark through the --bc-* tokens. */

.bc-ap-head { display: flex; align-items: baseline; gap: 10px; margin: 0 0 16px; }
.bc-ap-head h2 { margin: 0; font-size: 20px; font-weight: 700; letter-spacing: -0.01em; color: var(--bc-ink); }
.bc-ap-head span { font-size: 13.5px; color: var(--bc-muted); }
.bc-ap-head a { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--bc-accent) !important; text-decoration: none !important; }

/* ---- Coaches ---------------------------------------------------------- */
.bc-ap-coaches { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; }
.bc-ap-coach { display: flex; flex-direction: column; gap: 8px; min-width: 0; color: inherit !important; text-decoration: none !important; }
.bc-ap-photo {
  position: relative; display: block; aspect-ratio: 4 / 5; border-radius: 20px; overflow: hidden;
  background: var(--bc-brand-grad, linear-gradient(135deg, #03c3e3, #6d5cf0 55%, #d4744f));
  box-shadow: 0 1px 2px rgba(16, 16, 30, 0.06), 0 14px 30px -18px rgba(16, 16, 30, 0.45);
  transition: transform 0.25s var(--bc-ease, ease), box-shadow 0.25s var(--bc-ease, ease);
}
.bc-ap-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bc-ap-photo b { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 44px; font-weight: 800; letter-spacing: -0.03em; }
.bc-ap-coach:hover .bc-ap-photo { transform: translateY(-3px); box-shadow: 0 1px 2px rgba(16, 16, 30, 0.06), 0 22px 40px -20px rgba(16, 16, 30, 0.55); }
.bc-ap-coach-name { font-size: 15px; font-weight: 700; line-height: 1.25; color: var(--bc-ink); overflow-wrap: anywhere; }
.bc-ap-coach-belt { margin-top: -5px; font-size: 13px; line-height: 1.35; color: var(--bc-muted); }

/* ---- Members ---------------------------------------------------------- */
.bc-ap-group + .bc-ap-group { margin-top: 20px; }
.bc-ap-grouphead { margin: 0 0 12px; line-height: 0; }
.bc-ap-grouphead > div { width: 100%; }
.bc-ap-faces { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 6px; }
.bc-ap-face { display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 0; padding: 10px 4px 8px; border-radius: 14px; text-align: center; color: inherit !important; text-decoration: none !important; transition: background-color 0.15s ease; }
.bc-ap-face:hover { background: var(--bc-surface-2); }
.bc-ap-face-av { line-height: 0; }
.bc-ap-belt { display: flex; justify-content: flex-end; width: 48px; height: 7px; border-radius: 2px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12); overflow: hidden; }
/* Stripes sit at the right end of the rank bar, as on a real belt */
.bc-ap-belt i { display: flex; align-items: stretch; justify-content: flex-end; gap: 2px; width: 15px; margin-right: 4px; padding: 0 2px; background: #141418; }
.bc-ap-belt.is-black i { background: #d23c3c; width: 17px; }
.bc-ap-belt b { width: 1.5px; background: #fff; }
.bc-ap-belt.is-wide { width: 100%; height: 12px; border-radius: 3px; margin-top: 2px; }
.bc-ap-belt.is-wide i { width: 24%; margin-right: 7%; gap: 4px; padding: 0 5px; }
.bc-ap-belt.is-wide b { width: 3px; }
.bc-ap-face-name { max-width: 100%; font-size: 12.5px; font-weight: 600; line-height: 1.25; color: var(--bc-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bc-ap-face-name small { display: block; font-weight: 500; color: var(--bc-muted); overflow: hidden; text-overflow: ellipsis; }
.bc-ap-pts { color: var(--bc-faint, var(--bc-muted)); font-size: 11px; font-weight: 600; line-height: 1.3; font-variant-numeric: tabular-nums; }
.bc-ap-pts.is-ok { color: var(--bc-green, #16a34a); }
.bc-ap-pts.is-ok::before { content: "\2713\00a0"; }
.bc-ap-pts.is-low { color: var(--bc-muted); }
.bc-ap-pts.is-bad { color: var(--bc-red, #d23c3c); }
.bc-ap-face .bc-promote-btn { margin-top: 2px; }
.bc-ap-more { margin-top: 12px; }

@media (max-width: 520px) {
  .bc-ap-coaches { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .bc-ap-faces { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .bc-ap-photo, .bc-ap-face { transition: none; } }

/* Total academy points (academy_card_totalpoints.php): one flat tile in a normal card */
.bc-points-card .bc-tiles { display: block; }
.bc-points-card .bc-tile { padding: 0; border: 0; background: none; box-shadow: none; }
.bc-points-card .bc-tile::before { display: none; }

