/* BCVL Dashboard — shared styles (mockup, sample data) */
.bcvl-dash { font-family: 'Open Sans', Arial, sans-serif; color: #22282f; padding-bottom: 48px; font-size: 16px; line-height: 1.6; }
.bcvl-dash h1, .bcvl-dash h2, .bcvl-dash h3, .bcvl-dash .display {
  font-family: 'Jost', 'Open Sans', sans-serif;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.bcvl-login-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  background: #eef2fa;
  border: 1px solid #d7e0f0;
  border-radius: 8px;
  padding: 8px 14px;
  margin-bottom: 20px;
  font-size: 12.5px;
  color: #3e62a8;
}
.bcvl-login-bar input { transform: scale(1.1); }
.bcvl-login-bar .mock-note { color: #8a8f98; font-weight: 400; margin-right: auto; }

.bcvl-btn {
  font-family: inherit;
  font-size: 12.5px;
  border: 1px solid #d7dde6;
  background: #fff;
  color: #22282f;
  padding: 7px 13px;
  border-radius: 6px;
  cursor: pointer;
}
.bcvl-btn.primary { background: #3e62a8; color: #fff; border-color: #3e62a8; }
.bcvl-btn:hover { filter: brightness(0.97); }

.bcvl-subtabs { display: flex; gap: 8px; margin-bottom: 16px; }
.bcvl-subtabs button {
  font-family: 'Jost', sans-serif; font-size: 12.5px; font-weight: 500;
  padding: 7px 16px; border-radius: 18px; border: 1px solid #d7dde6;
  background: #fff; color: #6b7280; cursor: pointer;
}
.bcvl-subtabs button.active { background: #3e62a8; color: #fff; border-color: #3e62a8; }

.bcvl-card { background: #fff; border: 1px solid #e2e6ec; border-radius: 10px; overflow: hidden; margin-bottom: 22px; text-align: left; }
.bcvl-card-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; color: #fff; }
.bcvl-card-head .name { font-size: 17px; font-family: 'Jost', sans-serif; font-weight: 600; }
.bcvl-card-head .bcvl-btn { background: rgba(255,255,255,0.16); border-color: rgba(255,255,255,0.4); color: #fff; }

.bcvl-dash table { border-collapse: collapse; width: 100%; font-size: 16px; }
.bcvl-dash th, .bcvl-dash td { padding: 8px 10px; text-align: center; border-bottom: 1px solid #e2e6ec; white-space: nowrap; }
.bcvl-dash th { background: #fafbfc; color: #667; font-weight: 600; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.03em; position: sticky; top: 0; }
.bcvl-dash td.team-name { text-align: left; font-weight: 600; }
.bcvl-dash td.rank { color: #aab; font-weight: 700; width: 28px; }
.bcvl-dash td.total { font-weight: 700; background: #f2f4f8; }
.bcvl-dash .tie-note { font-size: 11px; color: #8a8f98; font-weight: 400; }

/* Results page standings tables (regular-season + archived/Pending-page
   "Final Standings"): each division renders as its own separate <table>,
   so with the default table-layout: auto every table sized its # / Team /
   Total Points columns independently off that division's own longest team
   name — the Team column landed at a different width in every division.
   table-layout: fixed plus explicit widths on the # and Total Points
   columns pins those two to the same width everywhere and lets Team take
   whatever's left, so the column boundaries now line up division to
   division regardless of team-name length. */
.bcvl-standings-table { table-layout: fixed; }
.bcvl-standings-table th:first-child, .bcvl-standings-table td.rank { width: 40px; }
.bcvl-standings-table th:last-child, .bcvl-standings-table td.total { width: 130px; }

.bcvl-matrix-scroll { overflow-x: auto; }
.bcvl-dash td.freeze1, .bcvl-dash th.freeze1 { position: sticky; left: 0; background: #fff; z-index: 2; min-width: 160px; }
.bcvl-dash td.freeze2, .bcvl-dash th.freeze2 { position: sticky; left: 160px; background: #f2f4f8; z-index: 2; min-width: 70px; }
.bcvl-dash th.freeze1, .bcvl-dash th.freeze2 { background: #fafbfc; z-index: 3; }

.bcvl-week-picker { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.bcvl-week-picker select { padding: 6px 10px; border-radius: 6px; border: 1px solid #d7dde6; font-size: 13px; }

.bcvl-slots-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.bcvl-slot { border: 1px dashed #d7dde6; border-radius: 8px; padding: 12px; background: #fafbfc; min-height: 92px; text-align: left; }
.bcvl-slot.played { border-style: solid; background: #fff; }
.bcvl-slot .slot-label { font-size: 11px; color: #8a8f98; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.03em; }
.bcvl-slot .matchup { font-size: 15.5px; font-weight: 600; }
.bcvl-slot .matchup .vs { color: #8a8f98; font-weight: 400; margin: 0 4px; }
.bcvl-slot .result { font-size: 16px; font-weight: 700; }
.bcvl-slot .result .score { color: #3e62a8; }
.bcvl-slot select { width: 100%; padding: 5px; margin-top: 4px; font-size: 12.5px; border-radius: 5px; border: 1px solid #d7dde6; }
.bcvl-slot .division-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }

.bcvl-score-slot {
  display: grid;
  grid-template-columns: 130px 1fr 40px 16px 40px 1fr;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #e2e6ec;
}
.bcvl-score-slot:last-child { border-bottom: none; }
.bcvl-score-slot .gym-time { font-size: 11.5px; color: #8a8f98; }
.bcvl-score-slot .team-a { text-align: right; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bcvl-score-slot .team-b { text-align: left; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bcvl-score-slot .dash { text-align: center; color: #8a8f98; }
.bcvl-score-slot input {
  width: 40px;
  text-align: center;
  padding: 6px 2px;
  border: 1px solid #d7dde6;
  border-radius: 5px;
  font-size: 13px;
  justify-self: center;
}

.bcvl-empty-state { padding: 30px; text-align: center; color: #8a8f98; font-size: 15px; }

.bcvl-legend { display: flex; gap: 16px; margin-bottom: 16px; font-size: 12.5px; color: #6b7280; flex-wrap: wrap; }
.bcvl-legend span { display: flex; align-items: center; gap: 6px; }
.bcvl-legend .dot { width: 10px; height: 10px; border-radius: 50%; }

.bcvl-roster ul { list-style: none; margin: 0; padding: 0; }
.bcvl-roster li { display: flex; justify-content: space-between; align-items: center; padding: 8px 16px; border-bottom: 1px solid #e2e6ec; font-size: 16px; }

/* Team rows (Teams page only — the Referees list above still uses the
   plain flex .bcvl-roster li rule). Every row uses the SAME fixed-width
   grid-template-columns for its view mode, which is what makes the columns
   actually line up top to bottom — team name flexes/ellipsizes, everything
   else sits in a fixed-width column so it lands in the same horizontal
   spot on every row regardless of how long any given team or captain name
   is. Three modes:
     public    (no class)   3 cols — Team, Captain, Players
     committee (.is-admin)  6 cols — + Phone, E-mail, trailing Remove button
     captain   (.is-captain) 5 cols — + Phone, E-mail (read-only, no Remove)
*/
.bcvl-roster li.bcvl-team-row {
  display: grid;
  grid-template-columns: minmax(120px, 1.4fr) minmax(70px, 1fr) minmax(50px, 0.6fr);
  column-gap: 14px;
  align-items: center;
}
.bcvl-team-list.is-admin li.bcvl-team-row {
  grid-template-columns: minmax(120px, 1.3fr) minmax(70px, 1fr) minmax(60px, 0.9fr) minmax(90px, 1.3fr) minmax(50px, 0.6fr) minmax(40px, 0.5fr);
}
.bcvl-team-list.is-captain li.bcvl-team-row {
  grid-template-columns: minmax(120px, 1.3fr) minmax(70px, 1fr) minmax(60px, 0.9fr) minmax(90px, 1.3fr) minmax(50px, 0.6fr);
}
/* The 6-column committee view and 5-column captain view don't fit
   comfortably on a phone screen no matter how tight the columns get — past
   a point, squeezing the team-name column to make room just breaks
   readability. Rather than that, each list gets a minimum total width and
   the roster card scrolls horizontally (overflow-x on .bcvl-roster,
   overridden further down from the base .bcvl-card's `overflow: hidden`)
   once the viewport is narrower than that, same trade a real HTML table
   would make. */
.bcvl-roster { overflow-x: auto; }
.bcvl-team-list { min-width: 420px; }
.bcvl-team-list.is-admin { min-width: 720px; }
.bcvl-team-list.is-captain { min-width: 660px; }
.bcvl-team-row--head {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: #8a8f98; padding-top: 10px; padding-bottom: 8px; border-bottom: 2px solid #d7dde6;
}
.bcvl-team-row .cell-captain, .bcvl-team-row .cell-phone, .bcvl-team-row .cell-email { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bcvl-team-row .cell-count { text-align: right; }
.bcvl-team-row .cell-remove { text-align: right; }
.bcvl-team-row .cell-email a { color: #3e62a8; text-decoration: none; }
.bcvl-team-row .cell-email a:hover { text-decoration: underline; }
/* Data rows: smaller than the 16px base so five-plus columns of Team/
   Captain/Phone/E-mail/Players breathe instead of crowding each other, now
   that columns share width more evenly (see grid-template-columns above)
   instead of team-name absorbing all the leftover space. Also fixes
   descenders (g/y/p/q/j) getting visually clipped: the site theme's global
   `span { line-height: 1; }` reset (assets/theme/css/style.css) left no
   room below the baseline once combined with overflow:hidden on these
   cells — 1.35 restores normal spacing without inflating row height much. */
.bcvl-roster li.bcvl-team-row { font-size: 13.5px; }
.bcvl-team-row .team-name,
.bcvl-team-row .cell-captain,
.bcvl-team-row .cell-phone,
.bcvl-team-row .cell-email,
.bcvl-team-row .cell-count,
.bcvl-team-row .cell-games-played,
.bcvl-team-row .cell-eligible { line-height: 1.35; }
.bcvl-add-team-form { display: flex; gap: 8px; padding: 12px 16px; }
.bcvl-add-team-form input { flex: 1; padding: 7px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }
.bcvl-remove { color: #c0392b; cursor: pointer; font-size: 12px; background: none; border: none; }

/* Referee rows (committee-only management tab) — Name / Phone / E-mail /
   Monday Availability (dropdown) / Tuesday Availability (dropdown) /
   Remove. Each night has its OWN Full Time/Part Time/Occasional/None
   dropdown — a referee can be available differently night to night, so
   this is deliberately two independent selects rather than one shared
   availability value plus day checkboxes (the original design). Contact
   info and availability are never sent to a non-committee viewer (see
   api/teams.php) — this whole tab only ever renders for a committee
   session in the first place, so there's no separate public/captain
   layout to worry about, unlike the Teams list above. */
.bcvl-roster li.bcvl-referee-row {
  display: grid;
  grid-template-columns: minmax(110px, 1.2fr) minmax(90px, 1fr) minmax(130px, 1.3fr) minmax(104px, 1fr) minmax(104px, 1fr) minmax(50px, 0.5fr);
  column-gap: 14px;
  align-items: center;
  font-size: 13.5px;
}
.bcvl-referee-row .ref-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bcvl-referee-row input.referee-phone-input,
.bcvl-referee-row input.referee-email-input { font-size: 12px; padding: 4px 8px; border: 1px solid #d7dde6; border-radius: 5px; width: 100%; box-sizing: border-box; }
.bcvl-referee-row select.referee-availability-input { font-size: 12px; padding: 4px 6px; border: 1px solid #d7dde6; border-radius: 5px; width: 100%; box-sizing: border-box; }
.bcvl-referee-row .cell-remove { text-align: right; }
.bcvl-referee-row--head {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: #8a8f98; padding: 10px 16px 8px; border-bottom: 2px solid #d7dde6;
}
.bcvl-roster .bcvl-referee-list { min-width: 660px; }

.bcvl-add-division-card { background: #fff; border: 1px solid #e2e6ec; border-radius: 10px; padding: 16px; margin-bottom: 22px; text-align: left; }
.bcvl-add-division-form { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.bcvl-add-division-form input[type=text] { padding: 7px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; width: 170px; }
.bcvl-add-division-form select { padding: 7px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }
.bcvl-add-division-form input[type=color] { width: 40px; height: 34px; border: 1px solid #d7dde6; border-radius: 6px; padding: 2px; }
.bcvl-add-division-form input[type=date] { padding: 7px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }

.bcvl-mock-banner {
  background: #fff7e6; border: 1px solid #f0d9a6; color: #8a6416;
  font-size: 12px; padding: 8px 14px; border-radius: 6px; margin-bottom: 18px;
}

/* Page status toggle (pending/active) */
.bcvl-status-toggle { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #6b7280; margin-bottom: 16px; }
.bcvl-status-btn {
  font-family: 'Jost', sans-serif; font-size: 12px; font-weight: 500;
  padding: 5px 12px; border-radius: 14px; border: 1px solid #d7dde6;
  background: #fff; color: #6b7280; cursor: pointer;
}
.bcvl-status-btn.active { background: #3e62a8; color: #fff; border-color: #3e62a8; }

.bcvl-pending-notice {
  background: #eef2fa; border: 1px solid #d7e0f0; border-radius: 10px;
  padding: 26px 20px; text-align: center; color: #3e62a8; font-size: 14.5px;
}
.bcvl-pending-notice strong { display: block; font-family: 'Jost', sans-serif; font-size: 17px; margin-bottom: 8px; }

/* Rules */
.bcvl-rule-item { display: flex; gap: 10px; align-items: flex-start; padding: 10px 16px; border-bottom: 1px solid #e2e6ec; }
.bcvl-rule-item:last-child { border-bottom: none; }
.bcvl-rule-tag { font-weight: 700; font-size: 11.5px; padding: 2px 8px; border-radius: 10px; white-space: nowrap; margin-top: 2px; }
.bcvl-rule-number { font-weight: 700; color: #3e62a8; font-family: 'Jost', sans-serif; min-width: 26px; text-align: right; margin-top: 1px; }
.bcvl-rule-tag.NEW { color: #c0392b; background: #fbe6e4; }
.bcvl-rule-tag.UPDATED { color: #1e232b; background: #eef0f3; }
.bcvl-rule-text { flex: 1; font-size: 16px; line-height: 1.6; white-space: pre-line; }
.bcvl-rule-controls { display: flex; flex-direction: column; gap: 2px; }
.bcvl-rule-controls button { background: none; border: 1px solid #d7dde6; border-radius: 4px; width: 22px; height: 22px; font-size: 11px; cursor: pointer; color: #6b7280; line-height: 1; }
.bcvl-rule-controls button:hover { background: #f2f4f8; }
.bcvl-add-rule-form { padding: 14px 16px; display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; border-top: 1px solid #e2e6ec; }
.bcvl-add-rule-form textarea { flex: 1; min-width: 220px; padding: 8px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 40px; }
.bcvl-add-rule-form select { padding: 8px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }
.bcvl-rules-meta { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; font-size: 12.5px; color: #6b7280; }
.bcvl-rules-meta input[type=text] { padding: 6px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }

/* Teams / captain (logged-in editable fields — each fills its grid cell,
   which is what actually sizes the column; see .bcvl-team-row above) */
.bcvl-roster li input.captain-input,
.bcvl-roster li input.captain-phone-input,
.bcvl-roster li input.captain-email-input { font-size: 12px; padding: 4px 8px; border: 1px solid #d7dde6; border-radius: 5px; width: 100%; box-sizing: border-box; }
.bcvl-privacy-note { font-size: 11px; color: #8a8f98; padding: 8px 16px 0; }

/* Team Captain login (public view) — collapsed toggle button, or the
   expanded login form once clicked. Deliberately scoped to this page only:
   unlike the committee login, there's no site-wide nav link for this. */
.bcvl-captain-login-toggle {
  display: block; width: 100%; text-align: left; margin-bottom: 18px;
  background: #eef2fa; border: 1px solid #d7e0f0; border-radius: 8px;
  padding: 12px 16px; font-size: 13.5px; color: #3e62a8; cursor: pointer;
  font-family: inherit;
}
.bcvl-captain-login-toggle:hover { background: #e3eaf7; }
.bcvl-captain-login-form {
  background: #fff; border: 1px solid #e2e6ec; border-radius: 10px;
  padding: 16px; margin-bottom: 18px; max-width: 360px;
}
.bcvl-captain-login-form strong { display: block; font-family: 'Jost', sans-serif; font-size: 14.5px; margin-bottom: 6px; }
.bcvl-captain-login-form p { font-size: 12.5px; color: #6b7280; margin: 0 0 12px; line-height: 1.5; }
.bcvl-captain-login-form input { display: block; width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13.5px; margin-bottom: 10px; }
.bcvl-captain-login-error { color: #c0392b; font-size: 12.5px; margin-bottom: 10px; }

.bcvl-roster li .team-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Roster count ("X of Y") — public, from the Jotform waiver-count sync.
   inline-block so text-align:right on the parent .cell-count actually
   right-aligns the whole pill rather than just the text inside it. */
.bcvl-roster li .roster-count { display: inline-block; font-size: 12px; color: #6b7280; font-weight: 600; background: #eef2fa; border-radius: 10px; padding: 2px 8px; white-space: nowrap; }
.bcvl-roster li .roster-count.full { color: #a13a3a; background: #fbeaea; }

/* "Your Roster" (captain view only) — a separate 3-column grid mode from
   the Team/Captain/Phone/E-mail/Players table below it, reusing the same
   .bcvl-team-row grid-row mechanics (see the big comment above) so header
   and data rows line up the same way, just with its own column set: Name,
   Games Played, Tournament Eligible. */
.bcvl-your-roster { margin-bottom: 22px; }
.bcvl-team-list.is-your-roster li.bcvl-team-row {
  grid-template-columns: minmax(120px, 1.3fr) minmax(90px, 1fr) minmax(90px, 1fr);
}
.bcvl-team-list.is-your-roster { min-width: 460px; }
.bcvl-team-row .cell-games-played { text-align: right; }
.bcvl-team-row .cell-eligible { text-align: center; }
.eligible-yes { color: #1e8a4c; font-weight: 700; }
.eligible-no { color: #a13a3a; font-weight: 700; }
.eligible-unknown { color: #8a8f98; }

/* Referees */
.bcvl-referee-badge { font-size: 11.5px; color: #3e62a8; background: #eef2fa; border-radius: 10px; padding: 2px 8px; margin-top: 6px; display: inline-block; }

/* Waiver */
.bcvl-waiver-url-form { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 12px 16px; background: #fafbfc; border-bottom: 1px solid #e2e6ec; }
.bcvl-waiver-url-form input[type=text] { flex: 1; min-width: 220px; padding: 7px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }
.bcvl-waiver-frame-wrap { position: relative; width: 100%; min-height: 480px; }
.bcvl-waiver-frame-wrap iframe { width: 100%; height: 480px; border: 0; }
.bcvl-waiver-static-text { padding: 18px 16px; font-size: 16px; line-height: 1.65; color: #22282f; white-space: pre-line; }

.cid-bcvl-champions {
  padding-top: 3rem;
  padding-bottom: 2rem;
  background-color: #3364ae;
}

@media (max-width: 640px) {
  .bcvl-slots-grid { grid-template-columns: 1fr; }
  .bcvl-score-slot { grid-template-columns: 90px 1fr 34px 12px 34px 1fr; gap: 6px; font-size: 13.5px; }
  .bcvl-score-slot input { width: 34px; }
  .bcvl-matrix-scroll table { font-size: 13.5px; }
  .bcvl-week-picker { flex-direction: column; align-items: stretch; }
  .bcvl-week-picker > * { margin-left: 0 !important; }
  .bcvl-add-division-form, .bcvl-add-rule-form, .bcvl-waiver-url-form { flex-direction: column; align-items: stretch; }
  .bcvl-add-division-form input, .bcvl-add-division-form select { width: 100%; }
  .bcvl-rule-item { flex-direction: column; }
  .bcvl-rule-controls { flex-direction: row; }
}

/* Announcements (Home page) */
.bcvl-announcement-actions { display: flex; gap: 6px; align-items: flex-start; }

/* update = normal body text/weight, theme color */
.bcvl-announcements-plain { padding: 6px 0; }
.bcvl-announcement-plain-text {
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 19px;
  line-height: 1.4;
  white-space: pre-line;
}
.bcvl-announcement-plain-date {
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.65);
  margin-top: 6px;
}
.bcvl-announcement-plain-item.type-update .bcvl-announcement-plain-text { color: #ffffff; font-weight: 400; }
.bcvl-announcement-plain-item.type-announcement .bcvl-announcement-plain-text { color: #ff9966; font-weight: 700; }
.bcvl-announcement-plain-item.type-cancellation .bcvl-announcement-plain-text { color: #ff6b5e; font-weight: 700; }
.bcvl-announcements-plain .bcvl-announcement-actions .bcvl-btn { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.35); color: #fff; }
.bcvl-add-announcement-form { background: transparent; border-top: 1px solid rgba(255,255,255,0.25); padding-top: 16px; margin-top: 10px; }

.bcvl-add-announcement-form { padding: 14px 16px; display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; border-top: 1px solid #e2e6ec; }
.bcvl-add-announcement-form select { padding: 8px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; }
.bcvl-add-announcement-form textarea { flex: 1; min-width: 220px; padding: 8px 10px; border: 1px solid #d7dde6; border-radius: 6px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 40px; }

/* FAQ (Info page) */
.bcvl-faq-item { border-bottom: 1px solid #e2e6ec; }
.bcvl-faq-item:last-child { border-bottom: none; }
.bcvl-faq-question { display: flex; align-items: center; gap: 10px; padding: 14px 16px; cursor: pointer; font-weight: 600; font-size: 16px; }
.bcvl-faq-question:hover { background: #fafbfc; }
.bcvl-faq-arrow { color: #3e62a8; font-size: 11px; }
.bcvl-faq-answer { padding: 0 16px 16px 16px; font-size: 16px; line-height: 1.65; color: #444a52; white-space: pre-line; }
.bcvl-faq-item.open .bcvl-faq-question { background: #fafbfc; }

/* Champions (Home page) — one row per division, Champion left / Runner-up right, additional divisions just add rows */
.bcvl-champions-flex {
  width: 96%;
  margin: 0 auto;
}
.bcvl-champ-row {
  margin-bottom: 32px;
  text-align: center;
  background: #ffffff;
  border-radius: 18px;
  padding: 28px 26px 30px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.16);
}
.bcvl-champ-row:last-child { margin-bottom: 0; }
.bcvl-champ-divlabel {
  font-family: 'Jost', sans-serif;
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 18px;
}
.bcvl-champ-row-cols {
  display: flex;
  gap: 20px;
}
.bcvl-champ-photo-wrap { flex: 1 1 50%; min-width: 0; }
.bcvl-champ-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 6px;
}
.bcvl-champ-placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  background: #f2f4f8;
  border: 1px dashed #c9cfe0;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8a8f98;
  font-size: 12px;
}
.bcvl-champ-caption { margin-top: 18px; }
.bcvl-champ-caption .team-name {
  display: block;
  font-family: 'Jost', sans-serif;
  font-weight: 600;
  font-size: 16px;
  color: #14161c;
}
.bcvl-champ-caption .slot-label {
  display: block;
  font-size: 11px;
  color: #3a3f4b;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin-top: 2px;
}
.bcvl-champion-edit { margin-top: 8px; display: flex; flex-direction: column; gap: 5px; }
.bcvl-champion-edit input[type=text] { padding: 5px 8px; border: 1px solid #d7dde6; border-radius: 5px; font-size: 12px; }
.bcvl-champion-edit input[type=file] { font-size: 11px; color: #4b5468; }

@media (max-width: 768px) {
  .bcvl-champions-flex { width: 100%; }
  .bcvl-champ-row-cols { flex-direction: column; gap: 18px; }
}

.btn-style-chip { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 2px 8px; border-radius: 10px; white-space: nowrap; }
.btn-style-chip.solid { background: #3e62a8; color: #fff; }
.btn-style-chip.outline { background: #eef2fa; color: #3e62a8; border: 1px solid #3e62a8; }

/* Registration page editable spans (month, intro paragraph, step titles/bodies) sit inline
   inside native Mobirise headings/paragraphs — force them to always inherit that context's
   size/color/weight, since the section's own theme CSS (a bare "span" rule scoped to this
   section's cid class, originally meant only for the numbered step-circle spans) otherwise
   overrides them to white/oversized and makes the text invisible. */
[id^="regMonth-"],
[id="regIntro"],
[id^="regStepTitle-"],
[id^="regStepBody-"] {
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}

.bcvl-inline-editor-link {
  font-size: 11px !important;
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-weight: 400 !important;
  color: #3e62a8 !important;
  margin-left: 6px;
  text-decoration: underline;
}
.bcvl-inline-editor-select {
  font-size: 13px !important;
  font-family: 'Open Sans', Arial, sans-serif !important;
  font-weight: 400 !important;
  color: #22282f !important;
  background: #fff !important;
  padding: 1px 4px;
  border: 1px solid #d7dde6;
  border-radius: 4px;
}

/* Fix: assets/mobirise/css/mbr-additional.css ships 18 auto-generated
   rule blocks of the form
     .cid-XXXX .dropdown-item:hover, .cid-XXXX .dropdown-item:focus {
       background: rgb(255,255,255) !important; color: white !important;
     }
   which forces a hovered/focused nav-dropdown row to solid white
   background AND white text simultaneously, making it fully illegible.
   This file loads last in every page's <head>, so an equal-specificity
   !important rule here wins the cascade without editing the generated
   theme file (which risks being clobbered by a future Mobirise export).
   Replaces the solid-white fill with a subtle semi-transparent white
   highlight over the dropdown panel's blue background, matching
   Bootstrap's own .dropdown-menu-dark hover treatment, while keeping
   the white text readable. Covers all 18 cid-* selectors found in the
   generated file; 6 of them (cid-tg3brk41IC, cid-vqGKGU6Sxz,
   cid-vqHjGC9HBA, cid-vqHlwm1QQB, cid-vrtBxKpBoY, cid-tfQsXmqCvd) are
   not present in any current page's markup (orphaned/leftover from a
   prior Mobirise export) — included anyway since the override is inert
   where the selector never matches. */
.cid-sFHpMqcXGj .dropdown-item:hover, .cid-sFHpMqcXGj .dropdown-item:focus,
.cid-tfQi1TXWce .dropdown-item:hover, .cid-tfQi1TXWce .dropdown-item:focus,
.cid-tfQkeBu4JB .dropdown-item:hover, .cid-tfQkeBu4JB .dropdown-item:focus,
.cid-tfQkiCLMdc .dropdown-item:hover, .cid-tfQkiCLMdc .dropdown-item:focus,
.cid-tfQkwutGe7 .dropdown-item:hover, .cid-tfQkwutGe7 .dropdown-item:focus,
.cid-tfQsUBGHiy .dropdown-item:hover, .cid-tfQsUBGHiy .dropdown-item:focus,
.cid-tfQsXmqCvd .dropdown-item:hover, .cid-tfQsXmqCvd .dropdown-item:focus,
.cid-tg2NAFT4uL .dropdown-item:hover, .cid-tg2NAFT4uL .dropdown-item:focus,
.cid-tg3brk41IC .dropdown-item:hover, .cid-tg3brk41IC .dropdown-item:focus,
.cid-tg5JFVvnhz .dropdown-item:hover, .cid-tg5JFVvnhz .dropdown-item:focus,
.cid-uGnlXqLEX0 .dropdown-item:hover, .cid-uGnlXqLEX0 .dropdown-item:focus,
.cid-uTATlzxIFB .dropdown-item:hover, .cid-uTATlzxIFB .dropdown-item:focus,
.cid-viF6C1wmcI .dropdown-item:hover, .cid-viF6C1wmcI .dropdown-item:focus,
.cid-vqGKGU6Sxz .dropdown-item:hover, .cid-vqGKGU6Sxz .dropdown-item:focus,
.cid-vqHjGC9HBA .dropdown-item:hover, .cid-vqHjGC9HBA .dropdown-item:focus,
.cid-vqHlwm1QQB .dropdown-item:hover, .cid-vqHlwm1QQB .dropdown-item:focus,
.cid-vrtBA0o91i .dropdown-item:hover, .cid-vrtBA0o91i .dropdown-item:focus,
.cid-vrtBxKpBoY .dropdown-item:hover, .cid-vrtBxKpBoY .dropdown-item:focus {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
}
