.tm-wrap { max-width: 560px; margin: 0 auto; width: 100%; }
.tm-stage { min-height: 250px; }
.tm-goal { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-weight: 700; color: var(--text-2); }
.tm-goal b { color: var(--text); font-family: var(--font-num); }
.tm-disp {
  display: flex; align-items: baseline; justify-content: center; gap: 4px; margin: 4px 0;
  font-family: var(--font-num); font-weight: 900; letter-spacing: -0.03em; font-variant-numeric: tabular-nums;
  transition: color .2s;
}
.tm-num { font-size: clamp(64px, 21vw, 116px); line-height: 1; }
.tm-unit { font-size: clamp(20px, 5vw, 28px); color: var(--text-3); }
.tm-disp.is-running .tm-num { color: var(--text); }
.tm-disp.is-blind .tm-num { color: var(--text-3); animation: bb-pulse 1.2s ease-in-out infinite; }
.tm-disp.is-stopped .tm-num { color: var(--primary); }
.tm-disp.is-great .tm-num { color: var(--green); }
.tm-disp.is-far .tm-num { color: var(--red); }
.tm-res { min-height: 3em; display: flex; flex-direction: column; align-items: center; gap: 2px; font-weight: 700; color: var(--text-2); }
.tm-diff { font-family: var(--font-num); font-size: 20px; font-weight: 900; color: var(--text); }
.tm-comment { font-size: 15px; }
.tm-big { min-height: 88px; font-size: 26px; touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.tm-big.is-stop { font-size: 30px; }
.tm-big.is-next { font-size: 20px; }
.tm-after .btn { min-width: 0; }
.tm-rank .panel-title { margin-bottom: 8px; }
.tm-table { display: grid; gap: 4px; }
.tm-tr {
  --c: var(--text-3);
  display: grid; grid-template-columns: 2.6em minmax(0, 1fr) auto 5.4em; gap: 8px; align-items: center;
  padding: 8px 12px; border-radius: 12px; background: var(--surface); border: 1px solid var(--border); font-weight: 700; font-size: 15px;
}
.tm-th { background: transparent; border-color: transparent; font-size: 12.5px; color: var(--text-3); padding-top: 0; padding-bottom: 0; }
.tm-tr.is-new { border-color: var(--c); animation: bb-pop .35s ease-out; }
.tm-rk { font-family: var(--font-num); font-weight: 900; color: var(--text-3); }
.tm-nm { display: flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--c); flex: none; }
.tm-tv, .tm-dv { font-family: var(--font-num); text-align: right; font-variant-numeric: tabular-nums; }
.tm-dv { color: var(--text-2); }
.tm-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.tm-stats > div { background: var(--surface-2); border-radius: 14px; padding: 10px; text-align: center; display: flex; flex-direction: column; }
.tm-stats span { font-size: 12.5px; color: var(--text-3); font-weight: 700; }
.tm-stats b { font-family: var(--font-num); font-size: 18px; }
.tm-solo-list { margin: 10px 0 0; padding-left: 2.2em; display: grid; gap: 2px; font-weight: 600; color: var(--text-2); }
.tm-solo-list b { color: var(--text); font-family: var(--font-num); }
.tm-podium { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.tm-pod { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 8px; border-radius: 16px; border: 2px solid var(--border); }
.tm-pod span { font-size: 13px; font-weight: 800; color: var(--text-2); }
.tm-pod b { font-size: 19px; color: var(--text); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-pod small { font-size: 12.5px; color: var(--text-3); font-weight: 700; }
.tm-pod.is-win { border-color: var(--green); background: color-mix(in srgb, var(--green) 10%, var(--surface)); }
.tm-pod.is-lose { border-color: var(--primary); background: var(--primary-soft); }
@media (max-width: 400px) {
  .tm-tr { grid-template-columns: 2em minmax(0, 1fr) auto 4.8em; padding: 8px 10px; font-size: 14px; gap: 6px; }
}
