.roster-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (min-width:720px){.roster-grid{grid-template-columns:repeat(3,1fr);gap:14px}}@media (min-width:1024px){.roster-grid{grid-template-columns:repeat(4,1fr);gap:16px}}.roster-card{background:var(--bg-card);border:1px solid var(--border);color:inherit;border-radius:8px;flex-direction:column;gap:10px;padding:16px 14px;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:flex;position:relative;overflow:hidden}.roster-card:hover{background:var(--bg-hover);border-color:var(--ink-dim)}.roster-card:before{content:"";background:var(--roster-accent,var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.roster-card__jersey{font-family:var(--ff-display);letter-spacing:-.02em;color:var(--roster-accent,var(--accent));font-size:24px;font-weight:900;line-height:1}.roster-card__identity{align-items:center;gap:8px;min-width:0;display:flex}.roster-card__avatar{background:var(--bg-alt);width:32px;height:32px;color:var(--ink-soft);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.roster-card__name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:700;overflow:hidden}.roster-card__meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;display:flex}.roster-card__position{font-family:var(--ff-mono);color:var(--ink-soft);font-size:12px;font-weight:700}@media (min-width:1024px){.roster-card__name{font-size:15px}.roster-card__jersey{font-size:28px}}
.team-stats-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media (max-width:720px){.team-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}}
