/* Triple Crown — Teams & Stages components (shared: /stages, results) */
.tcst-champ{position:relative;overflow:hidden;background:linear-gradient(110deg,rgba(20,22,25,.96),rgba(12,13,15,.96));
  border:1px solid var(--border);border-left:4px solid var(--accent,var(--red));padding:26px 28px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.tcst-champ__l{flex:1;min-width:240px}
.tcst-champ__badge{font-family:var(--font-heading);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent,var(--red))}
.tcst-champ__team{display:flex;align-items:center;gap:15px;font-family:var(--font-display);font-size:clamp(34px,4.5vw,56px);line-height:.9;text-transform:uppercase;margin-top:8px}
.tcst-champ__mark{width:clamp(36px,4.5vw,50px);height:clamp(36px,4.5vw,50px);flex-shrink:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.tcst-champ__riders{font-family:var(--font-body);font-size:15px;color:var(--text-2);margin-top:10px;letter-spacing:.02em}
.tcst-champ__riders b{color:var(--text);font-weight:700}
.tcst-champ__pts{text-align:right;font-family:var(--font-display);line-height:.82}
.tcst-champ__pts b{display:block;font-size:clamp(52px,8vw,82px);color:var(--accent,#fff)}
.tcst-champ__pts span{font-family:var(--font-heading);font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-3)}

.tcst-tbl{margin-top:24px;border:1px solid var(--border);background:var(--bg);border-top:2px solid var(--red)}
.tcst-thead{display:grid;grid-template-columns:42px 1fr 150px 150px 84px;gap:14px;padding:11px 20px;border-bottom:1px solid var(--border);
  font-family:var(--font-heading);font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}
.tcst-thead .r{text-align:right}
.tcst-row{display:grid;grid-template-columns:42px 1fr 150px 150px 84px;align-items:center;gap:14px;padding:0 20px;height:64px;
  border-bottom:1px solid rgba(255,255,255,.05);position:relative}
/* stage-column variants: base cols + one 70px col per started stage */
.tcst-tbl--s1 .tcst-thead,.tcst-tbl--s1 .tcst-row{grid-template-columns:42px 1fr 150px 150px 70px 84px}
.tcst-tbl--s2 .tcst-thead,.tcst-tbl--s2 .tcst-row{grid-template-columns:42px 1fr 150px 150px 70px 70px 84px}
.tcst-tbl--s3 .tcst-thead,.tcst-tbl--s3 .tcst-row{grid-template-columns:42px 1fr 150px 150px 70px 70px 70px 84px}
.tcst-stagept{font-family:var(--font-heading);font-weight:700;font-size:16px;text-align:right;color:var(--text-2)}
.tcst-stagept.is-live{color:var(--red)}
.tcst-row:last-child{border-bottom:none}
.tcst-row:nth-child(even){background:rgba(255,255,255,.018)}
.tcst-row--p1{background:var(--lead-bg,transparent)}
.tcst-rk{font-family:var(--font-display);font-size:26px;color:var(--text-2);text-align:center}
.tcst-row--p1 .tcst-rk{color:var(--lead,#fff)}
.tcst-tm{display:flex;align-items:center;gap:14px;min-width:0}
.tcst-tm__logo{width:30px;height:30px;flex-shrink:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.tcst-tm__name{font-family:var(--font-display);font-size:clamp(20px,2.4vw,28px);line-height:.95;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.tcst-tm__mfg{font-family:var(--font-heading);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-top:3px}
.tcst-rider{min-width:0}
.tcst-rider__cls{font-family:var(--font-heading);font-weight:700;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:3px}
.tcst-rider__name{font-family:var(--font-body);font-weight:600;font-size:14px;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.tcst-rider__name .num,.tcst-card__rname .num{font-family:var(--font-mono);font-size:11px;color:var(--text-3);margin-right:5px}
.tcst-rider__pts{font-family:var(--font-mono);font-size:11px;color:var(--text-2);margin-top:2px}
.tcst-total{font-family:var(--font-display);font-size:34px;text-align:right;color:var(--text)}
.tcst-row--p1 .tcst-total{color:var(--lead,#fff)}
.tcst-note{padding:30px 20px;text-align:center;color:var(--text-3);font-family:var(--font-body);font-size:13px;letter-spacing:.06em;text-transform:uppercase}

/* roster cards */
.tcst-rosters{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2px;background:var(--border)}
.tcst-card{background:var(--surface);border-top:3px solid var(--accent,var(--red));padding:22px 22px 18px}
.tcst-card__head{display:flex;align-items:center;gap:13px;margin-bottom:16px}
.tcst-card__logo{width:34px;height:34px;flex-shrink:0;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.tcst-card__name{font-family:var(--font-display);font-size:26px;line-height:.95;text-transform:uppercase;color:var(--text)}
.tcst-card__mfg{font-family:var(--font-heading);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-top:3px}
.tcst-card__rider{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}
.tcst-card__cls{font-family:var(--font-heading);font-weight:700;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);width:46px;flex-shrink:0}
.tcst-card__rname{flex:1;font-family:var(--font-body);font-weight:600;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcst-card__rpts{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--text-2)}
.tcst-card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}
.tcst-card__foot span{font-family:var(--font-heading);font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}
.tcst-card__foot b{font-family:var(--font-display);font-size:24px;color:var(--accent,var(--text))}

@media(max-width:760px){
  .tcst-thead,.tcst-row,
  .tcst-tbl--s1 .tcst-thead,.tcst-tbl--s1 .tcst-row,
  .tcst-tbl--s2 .tcst-thead,.tcst-tbl--s2 .tcst-row,
  .tcst-tbl--s3 .tcst-thead,.tcst-tbl--s3 .tcst-row{grid-template-columns:30px 1fr 64px}
  .tcst-row{height:auto;padding:13px 14px}
  .hide-sm{display:none}
  .tcst-champ__pts{text-align:left}
}
