/* ============ Top Ranking — Estilo perfil (títulos centrados + botones modernos + modal) ============ */
.tr-container{
  /* Paleta y variables internas */
  --verde:#0ea769; --verde-dark:#0a7c4e; --bg:#f7fbf9; --card:#fff; --line:#e5efe9; --text:#15352a; --muted:#55786a;
  --tr-cols: 3; --tr-gap: 16px;

  /* Asegura que no se “encoga”: hereda del tema */
  font-size: inherit;
  line-height: 1.5;

  background:var(--bg);
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,.06);
  width:100%;
  max-width:100%;
}

/* Toolbar */
.tr-toolbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-bottom:14px; flex-wrap:wrap;
}
.tr-tabs{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; flex:1; }

/* Botón moderno (pill) */
.tr-tab{
  appearance:none; border:none; background:rgba(255,255,255,.85); color:#15352a;
  padding:8px 14px; border-radius:999px; cursor:pointer; font-weight:700; letter-spacing:.2px;
  box-shadow:0 2px 8px rgba(0,0,0,.06), inset 0 0 0 1px var(--line);
  transition:transform .12s ease, box-shadow .12s ease, background .12s ease, color .12s ease;
}
.tr-tab:hover{ transform:translateY(-1px); box-shadow:0 4px 14px rgba(0,0,0,.09), inset 0 0 0 1px #dfe9e4; }
.tr-tab:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(14,167,105,.25), 0 2px 10px rgba(0,0,0,.08); }
.tr-tab.is-active{ color:#fff; background:linear-gradient(135deg, #10af71, #0ea769); box-shadow:0 6px 16px rgba(14,167,105,.35); }

/* Leyenda + badges */
.tr-legend{ display:flex; gap:8px; align-items:center; margin-left:auto; }
.tr-badge{
  display:inline-flex; align-items:center; justify-content:center; padding:0 8px; height:22px; font-size:12px;
  border-radius:999px; background:#eaf6f0; color:var(--verde-dark); border:1px solid var(--line);
}
.tr-badge-m{ background:#e8f2ff; color:#0a5fb8; }
.tr-badge-f{ background:#ffeaf5; color:#b80a6f; }

/* Nota de filtro (cuando no hay toggle) */
.tr-filter-note{ font-size:13px; color:var(--muted); }

/* Toggle (Activos ↔ Todos) */
.tr-toggle {
  display:inline-flex; align-items:center; gap:.6rem; cursor:pointer; user-select:none;
  font-size:13px; color:var(--muted);
}
.tr-toggle__input { position:absolute; inline-size:1px; block-size:1px; opacity:0; pointer-events:none; }
.tr-toggle__track {
  inline-size:42px; block-size:24px; border-radius:999px; position:relative;
  background:#cfdad5; transition:background .18s ease;
  box-shadow:inset 0 0 0 1px var(--line);
}
.tr-toggle__thumb {
  inline-size:18px; block-size:18px; border-radius:999px; background:#fff; position:absolute; inset-block-start:3px; inset-inline-start:3px;
  box-shadow:0 1px 4px rgba(0,0,0,.18); transition:transform .18s ease;
}
.tr-toggle__input:checked + .tr-toggle__track { background:var(--verde); }
.tr-toggle__input:checked + .tr-toggle__track .tr-toggle__thumb { transform:translateX(18px); }
.tr-toggle__label b { color:var(--text); }

/* Scopes y panels */
.tr-scope[hidden] { display:none !important; }
.tr-panel{ display:none; }
.tr-panel.is-active{ display:block; }

/* Títulos centrados */
.tr-subtitle{ font-size:16px; margin:16px 4px 10px; color:var(--muted); font-weight:800; letter-spacing:.2px; text-align:center; }

/* Grid configurable */
.tr-grid{ display:grid; grid-template-columns: repeat(var(--tr-cols, 3), minmax(0,1fr)); gap: var(--tr-gap,16px); }
@media (max-width:980px){ .tr-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){ .tr-grid{ grid-template-columns: 1fr; } }

/* Card */
.tr-card{
  position:relative; background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; padding:14px; gap:12px;
  text-align:center; box-shadow:0 4px 14px rgba(0,0,0,.05); cursor:pointer;
  transition: box-shadow .12s ease, transform .12s ease;
}
.tr-card:hover{ box-shadow:0 6px 20px rgba(0,0,0,.08); transform:translateY(-1px); }
.tr-rank{ position:absolute; top:10px; right:10px; background:var(--verde); color:#fff; padding:2px 10px; border-radius:999px; font-weight:700; font-size:12px; z-index:2; }

/* Encabezado */
.tr-head{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:4px; }
.tr-flag{ font-size:26px; line-height:1; }
.tr-name{ margin:0; font-weight:900; color:var(--text); font-size:20px; line-height:1.1; text-align:center; }
.tr-link{ color:inherit; text-decoration:none; }
.tr-link:hover{ text-decoration:underline; }

/* Foto grande y cuadrada */
.tr-photo{ position:relative; width:100%; border-radius:14px; overflow:hidden; border:1px solid var(--line); background:#f2f6f4; aspect-ratio:1/1; }
@supports not (aspect-ratio: 1 / 1) { .tr-photo{ padding-top:100%; } .tr-photo > *{ position:absolute; inset:0; } }
.tr-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.tr-photo .tr-link{ display:block; width:100%; height:100%; }
.tr-avatar{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:40px; color:#6b8f7f; }

/* Debajo de la foto */
.tr-info{ width:100%; display:flex; flex-direction:column; gap:8px; align-items:center; }
.tr-elo-line{ display:flex; align-items:center; gap:10px; font-size:16px; color:var(--text); }
.tr-elo-label{ font-weight:800; letter-spacing:.3px; }
.tr-elo-value{ font-size:22px; color:#0a3b2a; }
.tr-meta{ display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:#6a8d7e; justify-content:center; }
.tr-meta-item{ background:#f1f6f3; border:1px solid var(--line); border-radius:999px; padding:.2rem .55rem; }

/* Avisos */
.tr-empty{ grid-column:1/-1; padding:18px; text-align:center; color:#6a8d7e; background:#fff; border:1px dashed var(--line); border-radius:12px; }
.tr-notice{ padding:12px; background:#fff5f5; border:1px solid #ffd2d2; color:#8a1f1f; border-radius:12px; }

/* ===== Modal (ficha) ===== */
.tr-modal[hidden]{ display:none; }
.tr-modal{ position:fixed; inset:0; z-index:9999; }
.tr-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.45); backdrop-filter:saturate(1.2) blur(2px); }
.tr-modal__dialog{
  position:relative; width:min(880px, 92vw); max-height:85vh; margin:6vh auto 0; background:#fff; border-radius:18px;
  border:1px solid #e8efe9; box-shadow:0 18px 40px rgba(0,0,0,.25); padding:18px; overflow:auto;
  outline:none;
}
.tr-modal__close{ position:absolute; top:8px; right:10px; border:0; background:#fff; width:34px; height:34px; border-radius:999px;
  box-shadow:0 1px 6px rgba(0,0,0,.15); cursor:pointer; font-size:18px;
}
.tr-modal__title{ margin:10px 0 8px; font-size:24px; font-weight:900; color:var(--text); text-align:center; display:flex; gap:10px; align-items:center; justify-content:center; }
.tr-modal__flag{ font-size:28px; line-height:1; }
.tr-modal__meta{ text-align:center; color:#6a8d7e; margin-bottom:10px; }
.tr-modal__photo{ width:min(460px, 80vw); aspect-ratio:1/1; margin:0 auto 12px; border-radius:16px; overflow:hidden; border:1px solid var(--line); background:#f2f6f4; }
.tr-modal__img{ width:100%; height:100%; object-fit:cover; display:block; }
.tr-modal__avatar{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:56px; color:#6b8f7f; background:#eef3f1; }
.tr-modal__elos{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin:8px 0 14px; }
.tr-modal__elos > div{ background:#f7fbf9; border:1px solid #e6efe9; border-radius:12px; padding:8px 12px; min-width:120px; text-align:center; }

/* Botones de acción */
.tr-modal__actions{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.tr-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:9px 14px; border-radius:12px; font-weight:800; text-decoration:none; }
.tr-btn-primary{ color:#fff; background:linear-gradient(135deg, #10af71, #0ea769); box-shadow:0 8px 16px rgba(14,167,105,.25); border:1px solid transparent; }
.tr-btn-primary:hover{ filter:brightness(1.02); }
.tr-btn-ghost{ color:#0a5fb8; background:#eaf3ff; border:1px solid #d7e6ff; }
.tr-btn-ghost:hover{ background:#e1eeff; }

/* ===== Accesibilidad: foco visible ===== */
.tr-tab:focus-visible,
.tr-toggle__track:focus-visible,
.tr-modal__close:focus-visible,
.tr-btn:focus-visible{
  outline:3px solid color-mix(in srgb, var(--verde) 35%, #fff);
  outline-offset:2px;
  box-shadow:0 0 0 2px #fff, 0 0 0 4px color-mix(in srgb, var(--verde) 35%, #fff);
}

/* ===== Preferencia de usuario: reduce motion ===== */
@media (prefers-reduced-motion: reduce){
  .tr-tab, .tr-toggle__track, .tr-toggle__thumb, .tr-card { transition:none !important; }
}

/* ===== Modo oscuro (auto) ===== */
@media (prefers-color-scheme: dark){
  .tr-container{ --bg:#0e1513; --card:#121a17; --line:#20312a; --text:#eaf5f1; --muted:#9ac4b5; }
  .tr-tab{ background:rgba(255,255,255,.06); color:var(--text); box-shadow:0 1px 6px rgba(0,0,0,.4), inset 0 0 0 1px var(--line); }
  .tr-tab.is-active{ box-shadow:0 10px 22px rgba(14,167,105,.22); }
  .tr-card{ border-color:var(--line); box-shadow:0 6px 20px rgba(0,0,0,.35); }
  .tr-photo{ background:#101613; border-color:var(--line); }
  .tr-modal__dialog{ background:#121a17; border-color:var(--line); color:var(--text); }
  .tr-btn-ghost{ background:#0f2236; color:#b8d7ff; border-color:#1e3a57; }
}
