/* Shared leaderboard chrome — lifted from leaderboard.html (venue tournament view)
 * so the league live leaderboard (live.html) and the commissioner "Rounds & Scores"
 * panel can render with the same visual treatment. */

:root {
  --lbs-bg:      #192b1c;
  --lbs-surface: #1e3222;
  --lbs-card:    #243b28;
  --lbs-green:   #7ec850;
  --lbs-gold:    #c8a84b;
  --lbs-red:     #e05c5c;
  --lbs-blue:    #60a8e0;
  --lbs-text:    #f0ede4;
  --lbs-muted:   #8aab8e;
  --lbs-border:  rgba(126,200,80,.18);
  --lbs-r:       12px;
}

.lbs-wrap { max-width: 900px; margin: 0 auto; }

/* ── Header row ── */
.lbs-header {
  display: grid;
  gap: 4px;
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 700;
  color: var(--lbs-muted);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.lbs-header span:not(:first-child) { text-align: right; }

/* ── Card row ── */
.lbs-row {
  display: grid;
  gap: 4px;
  align-items: center;
  padding: 12px;
  background: var(--lbs-card);
  border: 1px solid var(--lbs-border);
  border-radius: var(--lbs-r);
  margin-bottom: 6px;
  transition: background .15s, border-color .15s;
  cursor: pointer;
}
.lbs-row:hover { background: #2a4530; }
.lbs-row.you    { border-color: var(--lbs-green); background: rgba(126,200,80,.07); }
.lbs-row.leader { background: rgba(200,168,75,.06); border-color: rgba(200,168,75,.3); }

/* ── Place / position ── */
.lbs-place-cell { text-align: center; }
.lbs-place-num {
  font-family: 'Playfair Display', 'DM Sans', serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--lbs-muted);
}
.lbs-place-num.p1 { color: var(--lbs-gold); }
.lbs-place-num.p2 { color: #b0b8c1; }
.lbs-place-num.p3 { color: #c9855a; }

/* ── Player name cell ── */
.lbs-name-cell { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lbs-player-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--lbs-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lbs-you-badge {
  display: inline-block;
  font-size: 10px; font-weight: 700; letter-spacing: .06em;
  color: var(--lbs-green); background: rgba(126,200,80,.15);
  padding: 1px 6px; border-radius: 4px; margin-left: 6px;
  vertical-align: middle;
}
.lbs-sub-text { font-size: 12px; color: var(--lbs-muted); }
.lbs-live-dot {
  display: inline-block; width: 7px; height: 7px; border-radius: 50%;
  background: var(--lbs-green); margin-right: 4px; vertical-align: middle;
  box-shadow: 0 0 6px rgba(126,200,80,.7);
  animation: lbs-pulse 1.4s infinite;
}
@keyframes lbs-pulse { 0%,100%{opacity:1} 50%{opacity:.35} }

/* ── Numeric cells ── */
.lbs-num-cell { text-align: right; font-size: 15px; font-weight: 600; color: var(--lbs-text); font-variant-numeric: tabular-nums; }
.lbs-num-cell.gold  { color: var(--lbs-gold); }
.lbs-num-cell.green { color: var(--lbs-green); }
.lbs-num-cell.red   { color: var(--lbs-red); }
.lbs-num-cell.muted { color: var(--lbs-muted); font-weight: 500; }
.lbs-num-cell.dim   { color: var(--lbs-muted); font-weight: 500; font-size: 14px; }
.lbs-num-cell.strong { font-size: 16px; font-weight: 800; }

/* ── 7-column grid: POS · PLAYER · STR · THRU · GRS · NET · NET ± ──
 * "NET ±" is net-to-par (gross − startingStrokes vs par). It sits in the
 * rightmost slot — the headline ranking number — so it reads naturally
 * as "the player's score relative to par after strokes are given." */
.lbs-header.seven-col,
.lbs-row.seven-col {
  grid-template-columns: 44px 1fr 56px 52px 60px 60px 68px;
}

@media (max-width: 480px) {
  .lbs-header.seven-col,
  .lbs-row.seven-col {
    grid-template-columns: 32px 1fr 40px 36px 44px 44px 52px;
    padding: 10px 8px;
    gap: 2px;
  }
  .lbs-place-num { font-size: 16px; }
  .lbs-player-name { font-size: 13px; }
  .lbs-num-cell { font-size: 13px; }
}
