/* Expedientes de liga y rótulos públicos. Los adornos ocupan solo los bordes:
   ninguna línea decorativa atraviesa retratos, nombres ni cifras. */
.card-method{margin:-8px 0 19px;max-width:760px;color:#bac6c0;font:600 13px var(--f-texto)}.card-method summary{width:max-content;max-width:100%;cursor:pointer;color:#ecd59e;letter-spacing:.04em}.card-method p{margin:10px 0 0;line-height:1.5}
.cartas{grid-template-columns:repeat(auto-fill,minmax(min(100%,470px),1fr));gap:20px}
.league-file{--metal:#8796a0;--ink:#101b20;position:relative;display:grid;grid-template-columns:38% 62%;grid-template-rows:minmax(168px,1fr) auto;min-width:0;min-height:280px;isolation:isolate;color:#f2ead2;text-decoration:none;border:1px solid #4e5c63;background:#0e171b url(../img/astra-competitive-league.webp) center/100% 100% no-repeat;box-shadow:0 15px 32px #0008,0 0 0 1px #0008;transition:transform .2s,box-shadow .2s}
.league-file::before{content:"";position:absolute;inset:8px;border:1px solid #151d18;pointer-events:none;z-index:1}
.league-file::after{content:"";position:absolute;inset:0;border:1px solid #c2976240;pointer-events:none;z-index:4}
.league-file:hover{transform:translateY(-3px);box-shadow:0 20px 38px #000a,0 0 0 1px var(--metal)}
.league-file:focus-visible,.pub-strip:focus-visible{outline:3px solid #ffd181;outline-offset:4px}
.league-file-photo{position:relative;grid-row:1;grid-column:1;margin:17px 17px 0;min-height:0;overflow:hidden;background:linear-gradient(150deg,#293d42,#0b151a);border:2px solid #87949b;box-shadow:0 0 0 3px #0b1217,0 9px 17px #0008;z-index:2}
.league-file-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.league-file-initial{position:absolute;inset:0;display:grid;place-items:center;font:46px var(--f-display);color:#ecdfb4}
.league-file-identity{position:relative;grid-row:2;grid-column:1;display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:11px 54px 16px 18px;background:#101b20d9;z-index:2}
.league-file-identity strong{font:clamp(19px,2vw,27px)/1 var(--f-display);overflow-wrap:anywhere}
.league-file-identity>span{font:700 11px var(--f-texto);text-transform:uppercase;letter-spacing:.1em;color:#c2c5ae}
.league-file-identity .escudo{position:absolute;right:12px;bottom:13px;--t:30px}
.league-file-data{grid-row:1 / span 2;grid-column:2;display:flex;flex-direction:column;min-width:0;padding:22px 20px 17px 24px;background:linear-gradient(90deg,#101b20cc,#101b2099);box-shadow:inset 1px 0 #a7744880;z-index:2}
.league-file-index{display:flex;align-items:end;justify-content:space-between;gap:8px;padding:0 0 11px;border-bottom:3px solid var(--metal)}
.league-file-index span{font:800 11px var(--f-texto);text-transform:uppercase;letter-spacing:.12em;color:#c8cbb3}
.league-file-index strong{font:clamp(38px,4.4vw,52px)/.9 var(--f-impacto);font-variant-numeric:tabular-nums}
.league-file-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;flex:1;gap:11px 7px;padding-top:14px}
.league-file-metrics div{min-width:0}.league-file-metrics span{display:block;color:#d5d9c6;font:800 11px var(--f-texto);letter-spacing:.04em}.league-file-metrics strong{display:block;font:27px/1.1 var(--f-impacto);font-variant-numeric:tabular-nums}
.league-file-tab{position:absolute;right:22px;top:-17px;z-index:3;background:#a33427;color:#fff0d9;border:3px solid #e8c882;border-bottom:0;padding:4px 16px 6px;font:800 12px var(--f-texto);letter-spacing:.15em}
.league-file.t-bronce{--metal:#aa7d63}.league-file.t-plata{--metal:#a3b8c1}.league-file.t-oro{--metal:#d7b57a}.league-file.t-leyenda{--metal:#f0cf91;box-shadow:0 18px 40px #000a,0 0 20px #b05c2744}
.league-file.t-leyenda .league-file-data{background:linear-gradient(90deg,#171b1bcc,#241e1b99)}
.league-file.t-leyenda .league-file-index{border-bottom-width:4px}
.perfil-jugador .league-file{min-height:360px;max-width:600px;transform:none}.perfil-jugador .league-file-photo{margin:20px 20px 0}.perfil-jugador .league-file-data{padding:28px 24px}.perfil-jugador .league-file-metrics strong{font-size:32px}

/* Rótulo horizontal público: la banda de ranking termina antes del retrato.
   Las dos líneas claras son bordes de columnas y no pasan por el texto. */
.pub-grid{display:grid;grid-template-columns:1fr;gap:15px;max-width:1080px}
.pub-strip{--frame:#788996;--rank-base:#263039;--rank-accent:#b9c6cb;position:relative;display:grid;grid-template-columns:122px 108px minmax(180px,235px) minmax(0,1fr);align-items:stretch;min-height:153px;isolation:isolate;border:1px solid var(--frame);clip-path:polygon(1.5% 0,98.5% 0,100% 12%,100% 100%,1.5% 100%,0 88%,0 12%);color:#f4e9d0;background:#101a1d;box-shadow:0 11px 24px #0008}
.pub-strip::before{content:"";position:absolute;inset:0;border:12px solid transparent;border-image:url(../img/astra-competitive-public.webp) 24 30 24 30 fill / 12px 12px 12px 12px stretch;pointer-events:none;z-index:0}
.pub-strip::after{content:"";position:absolute;inset:9px;border:1px solid var(--frame);opacity:.38;pointer-events:none;z-index:4}
.pub-strip>*{position:relative;z-index:1;min-width:0}
.pub-strip-rank{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:12px 0 12px 12px;padding:8px;background:linear-gradient(150deg,var(--rank-base),#162126 90%);text-align:center;border-left:2px solid var(--frame);box-shadow:inset 0 2px var(--rank-accent)}
.pub-strip-rank span{font:800 10px var(--f-texto);text-transform:uppercase;letter-spacing:.08em}.pub-strip-rank strong{font:clamp(40px,5vw,68px)/.9 var(--f-impacto);font-variant-numeric:tabular-nums;color:var(--rank-accent)}
.pub-strip-photo{position:relative;align-self:stretch;margin:17px 0 17px 12px;overflow:hidden;border:2px solid var(--photo-border,var(--frame));background:radial-gradient(circle at 50% 30%,#31434a,#101a1e);display:grid;place-items:center;font:36px var(--f-display)}
.pub-strip-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%}
.pub-strip-identity{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:16px 14px 14px 18px}
.pub-strip-identity>strong{font:clamp(24px,2.7vw,34px)/.95 var(--f-display);overflow-wrap:anywhere}
.pub-strip-identity>span{font:800 10px var(--f-texto);text-transform:uppercase;letter-spacing:.1em;color:var(--elo-accent,var(--frame))}
.pub-strip-identity div{display:flex;align-items:baseline;gap:6px}.pub-strip-identity b{font:32px/1 var(--f-impacto)}.pub-strip-identity small{font:800 10px var(--f-texto);letter-spacing:.05em}
.pub-strip-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:8px;margin:13px 15px 13px 0;padding:0 0 0 18px;border-left:2px solid var(--frame)}
.pub-strip-stats div{min-width:0;text-align:center}.pub-strip-stats dt{display:flex;flex-direction:column;gap:3px;min-height:36px;font:800 11px var(--f-texto);text-transform:uppercase;color:#d4d9c8;overflow-wrap:anywhere}.pub-strip-stats dt span{font-size:11px;color:var(--frame)}.pub-strip-stats dd{margin:3px 0 0;font:27px/1 var(--f-impacto);font-variant-numeric:tabular-nums}
.pub-strip.t-bronce{--frame:#aa7a61;--elo-accent:#aa7a61}.pub-strip.t-plata{--frame:#adc1ca;--elo-accent:#adc1ca}.pub-strip.t-oro{--frame:#d9b67b;--elo-accent:#d9b67b}.pub-strip.t-leyenda{--frame:#efcb8b;--elo-accent:#efcb8b}
.pub-strip.pub-top-resto{--rank-base:#263039;--rank-accent:#b9c6cb}
.pub-strip.pub-top-100{--rank-base:#283840;--rank-accent:#adc5cd;--frame:#78939d}
.pub-strip.pub-top-50{--rank-base:#3c3530;--rank-accent:#c6a588;--frame:#a78c74}
.pub-strip.pub-top-10{--rank-base:#5a302f;--rank-accent:#efaaa0;--frame:#d18379}
.pub-strip.pub-top-3{--rank-base:#74452d;--rank-accent:#f1b584;--frame:#d68d5b;box-shadow:0 12px 25px #0009}
.pub-strip.pub-top-2{--rank-base:#445a65;--rank-accent:#d6ecf4;--frame:#a3c9d8;box-shadow:0 12px 25px #0009}
.pub-strip.pub-top-1{--rank-base:#96652a;--rank-accent:#ffe6ae;--frame:#f5ce82;box-shadow:0 13px 27px #0009,0 0 14px #d1a05b55}
.pub-strip.pub-top-1 .pub-strip-rank{box-shadow:inset 0 3px #ffe6ae,inset -3px 0 #ffe6ae}
.pub-strip.pub-top-2 .pub-strip-rank,.pub-strip.pub-top-3 .pub-strip-rank{box-shadow:inset 0 3px var(--rank-accent)}
.pub-strip.pub-top-1 .pub-strip-rank strong{text-shadow:0 1px 10px #f4bd7380}
.pub-strip.pub-top-1,.pub-strip.pub-top-2,.pub-strip.pub-top-3,.pub-strip.pub-top-10{--photo-border:var(--rank-accent)}
.pub-strip.pub-top-1::after,.pub-strip.pub-top-2::after,.pub-strip.pub-top-3::after,.pub-strip.pub-top-10::after{border-top:3px solid var(--rank-accent);opacity:.8}
.pub-strip.pub-top-1 .pub-strip-identity{background:linear-gradient(90deg,#8b612d26,transparent)}
.pub-strip.pub-top-2 .pub-strip-identity{background:linear-gradient(90deg,#b5d6e326,transparent)}
.pub-strip.pub-top-3 .pub-strip-identity{background:linear-gradient(90deg,#b66e3f27,transparent)}
.pub-strip.pub-top-10 .pub-strip-identity{background:linear-gradient(90deg,#a4494320,transparent)}
@media(max-width:1000px){.pub-strip{grid-template-columns:122px 108px minmax(0,1fr)}.pub-strip-stats{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));margin:0 16px 15px;padding:13px 0 0;border-left:0;border-top:2px solid var(--frame)}.pub-strip-stats dt{min-height:0}}
@media(max-width:800px){[data-ficha]{grid-template-columns:1fr!important}.perfil-jugador .league-file{width:100%;max-width:600px}}
@media(max-width:760px){
  .pub-strip{grid-template-columns:86px 90px minmax(0,1fr);min-height:0;clip-path:none}
  .pub-strip-rank strong{font-size:43px}.pub-strip-photo{height:104px;margin:12px 0 12px 10px}
  .pub-strip-identity{padding:12px}.pub-strip-identity>strong{font-size:25px}
  .pub-strip-stats{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 12px 12px;padding:11px 0 0;border-left:0;border-top:2px solid var(--frame);gap:10px 4px}
  .pub-strip-stats dt{min-height:0}.pub-strip-stats dd{font-size:23px}
}
@media(max-width:520px){
  .cartas{grid-template-columns:1fr}.league-file{min-height:245px;grid-template-columns:39% 61%}
  .league-file{grid-template-rows:145px auto}.league-file-photo{margin:12px 12px 0}.league-file-identity{padding:9px 10px 13px 13px}.league-file-identity strong{font-size:20px}.league-file-identity>span{font-size:10px}.league-file-identity .escudo{display:none}
  .league-file-data{padding:16px 11px 12px 13px}.league-file-index span{font-size:10px}.league-file-index strong{font-size:38px}.league-file-metrics{gap:8px 3px}.league-file-metrics span{font-size:10px}.league-file-metrics strong{font-size:20px}
  [data-ficha]>div:first-child{max-width:none}.perfil-jugador .league-file{min-height:300px}.perfil-jugador .league-file-data{padding:20px 13px}.perfil-jugador .league-file-metrics strong{font-size:23px}
  .pub-strip{grid-template-columns:72px 77px minmax(0,1fr)}.pub-strip-rank{padding:8px 2px}.pub-strip-rank span{font-size:9px}.pub-strip-rank strong{font-size:35px}.pub-strip-photo{height:83px;margin:10px 0 10px 7px}.pub-strip-identity{padding:9px}.pub-strip-identity>strong{font-size:21px}.pub-strip-identity>span{font-size:10px}.pub-strip-identity b{font-size:24px}.pub-strip-identity small{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.league-file{transition:none}}
