/* Baby Bull Lux — sales leaderboards, star slot, avatar rings. */

/* ---------- star slot: museum plaque ---------- */
.star-slot{margin:26px 0 36px;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(150deg,#3a2d16,#221a0b 58%,#33270f);
  border:1px solid rgba(217,164,65,.55);box-shadow:var(--shadow);color:#f3e6c2}
.star-banner{background:linear-gradient(90deg,#8a6414,#e9bd55 45%,#8a6414);color:#221a0b;
  font-weight:900;letter-spacing:.2em;font-size:11px;text-align:center;padding:11px 8px}
.star-body{display:flex;gap:20px;align-items:center;padding:24px 24px 8px}
.star-id h3{margin:0;font-size:clamp(24px,4vw,38px);color:#ffe9a8;letter-spacing:.01em}
.star-id .star-sub{color:#cdb87e;font-size:12px;letter-spacing:.08em;margin-top:6px}
.star-stats{display:flex;gap:26px;flex-wrap:wrap;padding:6px 24px 22px}
.star-stats .ss .k{font-size:9px;letter-spacing:.16em;color:#a68d55}
.star-stats .ss .v{font-weight:900;font-size:22px;color:#fff3d6;margin-top:3px}
.star-note{margin:0;padding:0 24px 20px;color:#a68d55;font-size:12px}
.star-empty{padding:30px 24px;text-align:center;color:#cdb87e}

/* ---------- tabs ---------- */
.lb-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}
.lb-tab{border:1px solid var(--line-strong);background:#fffdf4;color:var(--ink);
  border-radius:999px;padding:11px 20px;font-weight:800;font-size:12px;letter-spacing:.1em;cursor:pointer}
.lb-tab.active{background:linear-gradient(135deg,#e9bd55,#d9a441);border-color:#b98a2a;color:#241b0c;
  box-shadow:0 6px 18px rgba(217,164,65,.35)}
/* Inactive tabs: deep gold on dark luxe, crisp and readable (James 2026-09-28) */
body.dark-mode .lb-tab{background:linear-gradient(150deg,#2a2010,#16110a);border-color:rgba(217,164,65,.55);color:#d9a441;text-shadow:0 0 14px rgba(217,164,65,.35)}
body.dark-mode .lb-tab:hover{border-color:#d9a441;color:#f5c542}
.lb-definition{margin:10px 0 2px}
.lb-window{margin:0 0 6px;font-size:11px;letter-spacing:.06em}

/* ---------- table leader highlight (daily / trending #1) ---------- */
.lb tr.leader-row td{background:linear-gradient(90deg,rgba(217,164,65,.16),rgba(217,164,65,.05))}
.lb tr.leader-row .rankcell{color:#b98a2a}
.lb-empty td{text-align:center;padding:38px 16px!important}
.lb-empty .empty-title{font-size:17px;font-weight:900;color:var(--ink);margin-bottom:8px}
.lb-empty .empty-sub{font-size:13px;color:var(--muted);max-width:420px;margin:0 auto 14px}
.bids-col{text-align:right!important}
.hide-bids .bids-col{display:none}
.house-tag{display:inline-block;font-size:9px;letter-spacing:.14em;color:#7a6a45;
  border:1px solid var(--line-strong);border-radius:999px;padding:3px 9px;margin-left:8px;vertical-align:2px}
.artist-cell{display:flex;align-items:center;gap:12px}
.artist-cell .avatar{--asize:44px;font-size:18px}

/* ---------- race hero: yearly top three, always visible ---------- */
.race-hero{margin:26px 0 8px;border:1px solid rgba(217,164,65,.55);border-radius:var(--radius);
  background:linear-gradient(150deg,#fffdf4,#f7ecc9);box-shadow:var(--shadow);padding:20px 20px 22px}
.race-hero-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.race-hero-head span{color:var(--gold);font-size:16px}
.race-hero-head b{letter-spacing:.14em;font-size:13px}
.race-hero-head .hint{margin-left:auto}

/* ---------- total gallery revenue panel ---------- */
.race-hero-body{display:flex;gap:16px;align-items:stretch}
.revenue-panel{flex:0 0 290px;display:flex;flex-direction:column;justify-content:center;gap:8px;
  background:linear-gradient(150deg,#2e2410,#1f180a);border:1px solid rgba(217,164,65,.6);
  border-radius:18px;padding:20px;box-shadow:var(--shadow)}
.rev-eyebrow{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:900;
  letter-spacing:.18em;color:#d9a441}
.rev-amount{font-size:34px;font-weight:900;color:#f5c542;letter-spacing:-.01em;line-height:1.1}
.rev-sub{font-size:12px;color:#c9b586}
.rev-bar{height:10px;border-radius:999px;background:#4a3d20;overflow:hidden;margin-top:4px}
.rev-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#d9a441,#f5c542);
  width:0;transition:width 1s ease}
.rev-goal{font-size:11px;color:#a68d55}
.race-hero-body .top3{flex:1;margin:0}
@media (max-width:720px){
  .race-hero-body{flex-direction:column}
  .revenue-panel{flex:none}
}

/* ---------- live sales feed ---------- */
.live-feed{display:flex;gap:12px;align-items:center;margin:18px 0 6px;
  border:1px solid var(--line-strong);border-radius:16px;background:#fffdf4;padding:10px 14px}
.live-feed-label{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:900;
  letter-spacing:.18em;color:#8a6414;white-space:nowrap}
.pulse-dot{width:9px;height:9px;border-radius:50%;background:#d9a441;animation:dot-ping 1.8s ease-out infinite}
@keyframes dot-ping{0%{box-shadow:0 0 0 0 rgba(217,164,65,.55)}70%{box-shadow:0 0 0 9px rgba(217,164,65,0)}100%{box-shadow:0 0 0 0 rgba(217,164,65,0)}}
.live-feed-track{display:flex;gap:10px;overflow-x:auto;padding:6px 2px;scrollbar-width:thin;flex:1}
.sale-chip{flex:0 0 auto;display:flex;align-items:center;gap:8px;
  background:linear-gradient(150deg,#2e2410,#1f180a);color:#f3e6c2;
  border:1px solid rgba(217,164,65,.5);border-radius:999px;padding:8px 14px;font-size:12px}
.sale-chip .sc-bolt{color:#f5c542}
.sale-chip .sc-time{color:#a68d55;font-size:10px;white-space:nowrap}
.flash-in{animation:chip-in .6s ease both}
@keyframes chip-in{from{opacity:0;transform:translateX(-18px) scale(.96);box-shadow:0 0 0 0 rgba(217,164,65,.8)}
  60%{box-shadow:0 0 22px 4px rgba(217,164,65,.5)}to{opacity:1;transform:none;box-shadow:none}}

/* ---------- rank shuffle ---------- */
@keyframes climb-glow{0%{background:rgba(217,164,65,.45)}100%{background:transparent}}
@keyframes fell-dim{0%{opacity:.3}100%{opacity:1}}
.lb tr.climbed td{animation:climb-glow 2.4s ease}
.lb tr.fell td{animation:fell-dim 2.4s ease}
@media (prefers-reduced-motion:reduce){
  .flash-in,.pulse-dot,.lb tr.climbed td,.lb tr.fell td{animation:none}
}

/* ---------- dark mode: Year One Race in deep gold on dark luxe, always readable (James 2026-09-28) ---------- */
body.dark-mode .race-hero{background:linear-gradient(150deg,#2a2010,#16110a);border:1px solid rgba(217,164,65,.75)}
body.dark-mode .race-hero-head b{color:#d9a441;text-shadow:0 0 18px rgba(217,164,65,.45)}
body.dark-mode .race-hero-head .hint{color:#c9b586}
body.dark-mode .live-feed{background:linear-gradient(150deg,#2a2010,#16110a);border-color:rgba(217,164,65,.5)}
body.dark-mode .live-feed-label{color:#d9a441}

/* ---------- footnote ---------- */
.lb-foot{margin:26px 0 10px}
.lb-foot p{font-size:12px;color:var(--muted);max-width:640px}

/* ---------- responsive ---------- */
@media (max-width:720px){
  .top3{grid-template-columns:1fr}
  .race-top3{grid-template-columns:1fr}
  .star-body{flex-direction:column;text-align:center}
  .star-stats{justify-content:center;padding:6px 16px 18px}
  .lb-tab{flex:1 1 auto;text-align:center;padding:11px 8px;font-size:11px}
  .avatar.ring-1{--asize:76px}
}

/* Fix horizontal overflow on tab switch */
.lb-wrap, .board-wrap { overflow-x: hidden; max-width: 100%; }
#lbTable { width: 100%; max-width: 100%; table-layout: fixed; }
#lbTable td, #lbTable th { overflow: hidden; text-overflow: ellipsis; }

/* Mobile: prevent leaderboard table from shifting right */
@media (max-width: 820px) {
  .table-scroll { overflow-x: hidden; }
  .lb { min-width: 0; width: 100%; }
  .lb th, .lb td { padding: 10px 8px; font-size: 11px; }
  .lb-empty td { text-align: center; }
}
