/* Vista Temporada. Todo con prefijo tp-; los componentes base vienen de app.css. */
.tp-kpis{margin-bottom:28px}
.tp-kpis > div{min-width:0}
.tp-kpis dd.sub{font-size:12px;font-weight:500;letter-spacing:0;line-height:1.4;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-kpis dd.sub.is-warn{color:var(--warn);font-weight:600}
#hdrActs .tp-closed{align-self:center}

.tp-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.tp-bar .segmented{max-width:100%;overflow-x:auto;scrollbar-width:none}
.tp-meta,.tp-hnote{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.tp-hnote{color:var(--ink-4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-enter{animation:tp-in var(--dur-panel) var(--ease-out)}
@keyframes tp-in{from{opacity:0;transform:translateX(var(--tp-dx,12px))}}
@keyframes tp-up{from{opacity:0;transform:translateY(12px)}}
.tp-scroll{padding:0 12px 8px}
.tp-tc{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink-3)}
.tp-rk{font-size:12px;font-weight:600;color:var(--ink-4);font-variant-numeric:tabular-nums}

/* Posiciones */
.tp-st{grid-template-columns:minmax(200px,2.6fr) repeat(2,minmax(40px,.5fr)) repeat(2,minmax(56px,.7fr)) repeat(3,minmax(48px,.7fr)) minmax(56px,.7fr) 104px}
.tp-st > span{min-height:52px;color:var(--ink-2)}
.tp-st > span.h{min-height:36px}
.tp-st > span:nth-last-child(-n+10){border-bottom:0}
.tp-tm{position:relative;gap:10px}
.tp-tm .tp-rk{width:16px;flex:none}
.tp-sw{width:8px;height:8px;border-radius:50%;flex:none}
.tp-tm b{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-first::before{content:"";position:absolute;left:-10px;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--accent)}
.tp-st > span.tp-pct{color:var(--ink);font-weight:600}
.tp-st > span.tp-pos{color:var(--ok)}
.tp-st > span.tp-neg{color:var(--bad)}
.tp-dots{display:flex;gap:6px}
.tp-dots i{width:8px;height:8px;border-radius:50%;background:var(--sunken)}
.tp-dots i.w{background:var(--ok)}
.tp-dots i.l{background:var(--bad)}

/* Campeones */
.tp-champs{margin-bottom:28px;padding:20px 24px 22px}
.tp-champs-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px}
.tp-champs-head h2{font-size:20px;font-weight:700;letter-spacing:-.02em}
.tp-champs dl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.tp-champ{padding:0 16px;border-left:1px solid var(--line);min-width:0}
.tp-champ:first-child{padding-left:0;border-left:0}
.tp-champ dd{margin:0}
.tp-champ .tp-val{margin-top:6px;font-size:28px;font-weight:700;line-height:1.1;letter-spacing:-.025em}
.tp-champ .tp-nm{margin-top:4px;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-champs.is-anim{animation:tp-up 520ms var(--ease-out) both}
.tp-champs.is-anim .tp-champ{animation:tp-up 600ms var(--ease-out) both;animation-delay:calc(var(--i) * 80ms + 120ms)}

/* Líderes */
.tp-sec + .tp-sec{margin-top:32px}
.tp-sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}
.tp-sec-head h2{font-size:15px;font-weight:700;letter-spacing:-.01em}
.tp-sec-head span{font-size:12px;color:var(--ink-3)}
.tp-lead{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.tp-lead.pit{grid-template-columns:repeat(6,minmax(0,1fr))}
.tp-lead.pit .tp-lp{grid-column:span 2}
.tp-lead.pit .tp-lp:nth-child(n+4){grid-column:span 3}
.tp-lp{padding:18px 20px 10px;min-width:0}
.tp-lp-head{display:flex;flex-direction:column;gap:2px;min-width:0}
.tp-lp-head h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-lp-note{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}
.tp-top{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:12px -12px 6px;padding:10px 12px;border-radius:var(--r-md);transition:background var(--dur-color) var(--ease-std)}
.tp-who{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.tp-tag{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:4px}
.tp-top .tp-nm{font-size:16px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-top .tp-tc{margin-top:2px}
.tp-top .tp-val{font-size:28px;font-weight:700;line-height:1;letter-spacing:-.03em}
.tp-lp.is-champ .tp-top{background:var(--accent-soft)}
.tp-lp.is-champ .tp-top::after{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--accent)}
.tp-lp.is-champ .tp-tag{color:var(--accent-ink)}
.tp-lp-list li{display:grid;grid-template-columns:22px minmax(0,1fr) 34px auto;gap:8px;align-items:center;min-height:36px;border-top:1px solid var(--line);font-size:13px}
.tp-lp-list .tp-nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-lp-list .tp-val{text-align:right;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.tp-lp-empty{padding:16px 0 12px;font-size:13px;color:var(--ink-3)}

/* Jugadores */
.tp-tools{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.tp-count{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.tp-search{position:relative;margin-left:auto}
.tp-search svg{position:absolute;left:12px;top:10px;width:16px;height:16px;stroke:var(--ink-3);fill:none;stroke-width:1.75;stroke-linecap:round;pointer-events:none}
.tp-search input{width:260px;height:36px;padding:0 12px 0 36px;border:0;border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--ring-strong);font:500 14px var(--font);color:var(--ink);-webkit-appearance:none;appearance:none;transition:box-shadow var(--dur-color) var(--ease-std)}
.tp-search input::placeholder{color:var(--ink-4)}
.tp-ptable .tp-scroll{padding-top:4px}
.tp-pt.bat{grid-template-columns:minmax(170px,2.4fr) 56px repeat(16,minmax(44px,1fr))}
.tp-pt.pit{grid-template-columns:minmax(170px,2.4fr) 56px repeat(13,minmax(48px,1fr))}
.tp-pt > span{padding:0 6px;color:var(--ink-2)}
.tp-pt.bat > span:nth-last-child(-n+18),.tp-pt.pit > span:nth-last-child(-n+15){border-bottom:0}
.tp-pt > span.h.n{justify-content:flex-end}
.tp-sortb{min-height:40px;white-space:nowrap;transition:color var(--dur-color) var(--ease-std)}
.tp-sortb:hover{color:var(--ink)}
.tp-sortb svg{width:12px;height:12px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;transform:rotate(90deg);transition:transform var(--dur-pop) var(--ease-pop)}
.tp-sortb.is-asc svg{transform:rotate(-90deg)}
.tp-pt > span.tp-key{color:var(--ink);font-weight:600}
.tp-pt > span.dim{color:var(--ink-4)}
.tp-pn b{flex:none;min-width:18px;margin-right:8px;text-align:right;font-weight:600;color:var(--ink-4)}
.tp-pn em{font-style:normal;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Partidos */
.tp-games{padding:0 8px 8px}
.tp-g{position:relative;display:grid;grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:56px;padding:6px 12px;border-radius:var(--r-md);transition:background var(--dur-color) var(--ease-std)}
.tp-g + .tp-g::before{content:"";position:absolute;left:12px;right:12px;top:0;border-top:1px solid var(--line);transition:opacity var(--dur-color) var(--ease-std)}
.tp-g:hover{background:var(--hover)}
.tp-g:hover::before,.tp-g:hover + .tp-g::before{opacity:0}
.tp-when{font-variant-numeric:tabular-nums}
.tp-what{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.tp-what b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
.tp-what small{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tp-state{display:flex;align-items:center;justify-content:flex-end;gap:8px}

/* Drawer de cierre */
.tp-steps{margin-top:10px}
.tp-steps li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:10px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.4}
.tp-steps li:first-child{border-top:0;padding-top:0}
.tp-steps .tp-rk{padding-top:1px}
.tp-pend ul{margin-top:8px}
.tp-pend li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--line);font-weight:500;font-variant-numeric:tabular-nums}
.tp-pend li b{font-weight:600;color:var(--ink)}

@media (max-width:1100px){
  .tp-scroll{overflow-x:auto}
  .tp-pt{min-width:980px}
  .tp-st{min-width:760px}
  .tp-pt > span.h,.tp-st > span.h{position:static}
  .tp-lead,.tp-lead.pit{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tp-lead.pit .tp-lp,.tp-lead.pit .tp-lp:nth-child(n+4){grid-column:auto}
  .tp-champs dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 0}
  .tp-champ:nth-child(4){padding-left:0;border-left:0}
}
@media (max-width:768px){
  .tp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}
  .tp-kpis > div:nth-child(3){padding-left:0;border-left:0}
  .tp-bar{flex-direction:column;align-items:flex-start}
  .tp-lead,.tp-lead.pit{grid-template-columns:1fr}
  .tp-champs{padding:18px 20px}
  .tp-champs dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tp-champ:nth-child(odd){padding-left:0;border-left:0}
  .tp-champ:nth-child(4){padding-left:16px;border-left:1px solid var(--line)}
  .tp-tools{flex-wrap:wrap;gap:12px}
  .tp-search{flex:1 1 100%;margin-left:0}
  .tp-search input{width:100%}
  .tp-g{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px 12px}
  .tp-g .tp-when{grid-column:1 / -1}
}
@media (max-width:600px){
  #hdrActs .tp-csv{display:none}
  .tp-g{grid-template-columns:1fr}
  .tp-state{justify-content:flex-start}
}
