.roster { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); }

.who {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 14px 16px 16px;
  background: var(--surface);
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
a.who { color: var(--text); }
a.who:hover { background: var(--hover); text-decoration: none; }
a.who:hover .who-name { color: var(--accent); }
.who > * { min-width: 0; }
.who-head { display: flex; align-items: center; gap: 10px; min-width: 0; }
.who-head > div { min-width: 0; }
.who-icon { width: 34px; height: 34px; flex: none; }
.who-name { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who-class { font-family: var(--mono); font-size: 11px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.who-line { display: flex; align-items: center; gap: 7px; font-size: 12px; min-width: 0; }
.who-line .sprite { width: 17px; height: 17px; flex: none; }
.who-line span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who-foot + .who-foot { margin-top: -6px; }
.who-foot { display: flex; justify-content: space-between; gap: 10px; font-family: var(--mono); font-size: 11px; color: var(--faint); }
.who-foot span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who .meter-head span { overflow: hidden; text-overflow: ellipsis; }