.tpv-root {
  --tpv-text: #e9edf4;
  --tpv-muted: #a9b6c8;
  --tpv-surface: #0c1727;
  --tpv-soft: #142338;
  --tpv-line: #2d3c51;
  --tpv-accent: #67dbe4;
  --tpv-good: #89d8bb;
  color: var(--tpv-text);
  margin: 24px 0 32px;
  width: 100%;
  min-width: 0;
}
html.light-mode .tpv-root, html[data-ft-mode="paper"] .tpv-root {
  --tpv-text: #252b34;
  --tpv-muted: #596577;
  --tpv-surface: #fffaf1;
  --tpv-soft: #f1eadf;
  --tpv-line: #d6ccbe;
  --tpv-accent: #17626b;
  --tpv-good: #236148;
}
.tpv-root *, .tpv-root *::before, .tpv-root *::after { box-sizing: border-box; }
.tpv-root [hidden] { display: none !important; }
.tpv-heading, .tpv-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.tpv-heading > div { min-width: 0; }
.tpv-eyebrow { color: var(--tpv-accent); font-size: 12px; letter-spacing: .1em; margin: 0 0 8px; }
.tpv-heading h2 { font-size: clamp(21px, 3vw, 27px); line-height: 1.4; margin: 0 0 8px; font-weight: 700; color: var(--tpv-text); }
.tpv-note { color: var(--tpv-muted); font-size: 13px; line-height: 1.65; margin: 6px 0 16px; }
.tpv-heading .tpv-note { margin-bottom: 0; }
.tpv-status { color: var(--tpv-muted); font-size: 12px; line-height: 1.8; margin: 14px 0 18px; }
.tpv-status.tpv-error { color: var(--tpv-accent); border-left: 3px solid var(--tpv-accent); padding-left: 10px; }
.tpv-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: start; gap: 20px; }
.tpv-ranking, .tpv-victories { background: var(--tpv-surface); border: 1px solid var(--tpv-line); border-radius: 12px; padding: 20px; min-width: 0; }
.tpv-panel-heading { align-items: center; flex-wrap: wrap; gap: 8px; }
.tpv-panel-heading h3 { font-size: 18px; font-weight: 700; line-height: 1.5; margin: 0; color: var(--tpv-text); }
.tpv-subtle { color: var(--tpv-muted); font-size: 12px; line-height: 1.6; }
.tpv-search, .tpv-round { display: grid; gap: 6px; font-size: 12px; color: var(--tpv-muted); margin-bottom: 12px; }
.tpv-root input, .tpv-root select, .tpv-button {
  background: var(--tpv-soft); color: var(--tpv-text); border: 1px solid var(--tpv-line);
  border-radius: 6px; min-height: 44px; font: inherit; font-size: 14px; padding: 10px 12px;
}
.tpv-root input, .tpv-root select { width: 100%; min-width: 0; }
.tpv-root input::placeholder { color: var(--tpv-muted); opacity: 1; }
.tpv-button { cursor: pointer; font-weight: 600; }
.tpv-button:hover, .tpv-root select:hover { border-color: var(--tpv-accent); }
.tpv-button:disabled { opacity: .6; cursor: wait; }
.tpv-root :is(button, input, select, summary):focus-visible { outline: 3px solid var(--tpv-accent); outline-offset: 3px; }
.tpv-found { color: var(--tpv-muted); font-size: 12px; line-height: 1.65; margin: 10px 0; }
.tpv-list-head, .tpv-person-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) 124px; gap: 10px; }
.tpv-list-head { font-size: 11px; color: var(--tpv-muted); padding: 10px 0; border-bottom: 1px solid var(--tpv-line); }
.tpv-list-head > :last-child { text-align: right; }
.tpv-people, .tpv-history, .tpv-winners { list-style: none; padding: 0; margin: 0; }
.tpv-person-row { padding: 12px 0; border-bottom: 1px solid var(--tpv-line); align-items: start; }
.tpv-rank { color: var(--tpv-muted); font-size: 12px; line-height: 1.6; padding-top: 3px; overflow-wrap: anywhere; }
.tpv-person-row:first-child .tpv-rank { color: var(--tpv-accent); font-weight: 700; }
.tpv-person { min-width: 0; }
.tpv-person summary { display: block; cursor: pointer; min-height: 44px; }
.tpv-person summary::-webkit-details-marker { display: none; }
.tpv-person summary strong { display: block; color: var(--tpv-text); font-size: 15px; line-height: 1.5; }
.tpv-team { color: var(--tpv-muted); display: block; line-height: 1.5; font-size: 11px; overflow-wrap: anywhere; margin-top: 3px; }
.tpv-source-trigger { display: inline-block; color: var(--tpv-accent); font-size: 11px; line-height: 1.5; margin-top: 4px; }
.tpv-source-trigger::after { content: " +"; }
.tpv-person[open] .tpv-source-trigger::after { content: " −"; }
.tpv-total { text-align: right; font-variant-numeric: tabular-nums; min-width: 0; }
.tpv-total strong { display: block; color: var(--tpv-accent); font-size: 21px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.tpv-breakdown { display: block; color: var(--tpv-muted); font-size: 11px; line-height: 1.6; margin-top: 4px; overflow-wrap: anywhere; }
.tpv-history { margin: 10px 0 0; display: grid; gap: 8px; }
.tpv-history li { background: var(--tpv-soft); border-radius: 6px; padding: 10px; display: grid; gap: 4px; }
.tpv-history strong { color: var(--tpv-text); font-size: 12px; line-height: 1.6; }
.tpv-source-button { display: block; text-align: left; cursor: pointer; border: 0; background: transparent; color: var(--tpv-accent); font: inherit; font-size: 12px; min-height: 44px; padding: 8px 0; }
.tpv-ranking > .tpv-button { width: 100%; margin-top: 16px; }
.tpv-winners { display: grid; gap: 12px; }
.tpv-winner { background: var(--tpv-soft); border: 1px solid var(--tpv-line); border-radius: 8px; padding: 16px; min-width: 0; }
.tpv-winner-meta { display: flex; gap: 12px; justify-content: space-between; color: var(--tpv-muted); font-size: 12px; line-height: 1.6; }
.tpv-score { color: var(--tpv-accent); font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tpv-winner-name { display: block; color: var(--tpv-good); font-size: 16px; line-height: 1.6; overflow-wrap: anywhere; margin: 10px 0 5px; }
.tpv-opponent { color: var(--tpv-muted); font-size: 12px; line-height: 1.65; display: block; overflow-wrap: anywhere; }
.tpv-empty { color: var(--tpv-muted); font-size: 13px; padding: 16px 0; line-height: 1.65; }
@media (max-width: 960px) { .tpv-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 620px) {
  .tpv-heading { flex-direction: column; gap: 12px; }
  .tpv-ranking, .tpv-victories { padding: 16px; }
  .tpv-list-head, .tpv-person-row { grid-template-columns: 29px minmax(0, 1fr) 88px; gap: 8px; }
  .tpv-total strong { font-size: 20px; }
  .tpv-history li { padding: 8px; }
  .tpv-history strong { font-size: 11px; }
  .tpv-winner { padding: 14px; }
}
.tpv-review-notice{margin:0 0 22px;padding:18px;border:1px solid #d9a54a88;border-radius:10px;background:color-mix(in srgb,#d9a54a 8%,transparent);line-height:1.7}.tpv-review-notice h3{margin:0;color:#f2c562;font-size:1rem}.tpv-review-notice p,.tpv-review-notice ul{margin:10px 0 0;font-size:.88rem}.tpv-review-notice ul{padding-left:20px}.tpv-review-notice li{overflow-wrap:anywhere}html.light-mode .tpv-review-notice h3,html[data-ft-mode=paper] .tpv-review-notice h3{color:#956319}
