/* Badges: tags, status pills, counters, avatars, small photos. */
.tag{font-family:var(--mono);font-size:var(--fs-micro);border:1px solid var(--hair);padding:2px 8px;white-space:nowrap}
.tag.hi{background:var(--accent);color:var(--on-accent);border-color:var(--on-accent)}
/* ---------- status chips ---------- */
.status{font-family:var(--mono);text-transform:uppercase;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-micro);font-weight:500;line-height:1.3;letter-spacing:.05em;padding:3px 8px;min-height:24px;border:1px solid currentColor;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;flex:0 1 auto}
.status.ok{color:var(--ok);background:var(--ok-bg)}
.status.warn{color:var(--warn);background:var(--warn-bg)}
.status.bad{color:var(--bad);background:var(--bad-bg)}
.status.info{color:var(--ink);background:var(--mint);border-color:var(--ink)}
.stars{font-family:var(--mono);letter-spacing:.1em}
.nb{font-family:var(--mono);font-size:var(--fs-micro);font-weight:500;background:var(--accent);color:var(--on-accent);border:1px solid var(--on-accent);padding:0 6px;min-width:20px;text-align:center}
.nb:empty{display:none}
.av{display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--mono);font-size:var(--fs-caption);border:1px solid var(--on-accent);border-radius:var(--r-round);flex:0 0 auto}
.photo-prev{width:96px;height:96px;border:1px solid var(--hair-strong);background:var(--mint);display:grid;place-items:center;overflow:hidden}
.photo-prev img{width:100%;height:100%;object-fit:cover}
.mini-photo{width:40px;height:40px;flex:0 0 40px;border:1px solid var(--hair-strong);background:var(--accent);display:grid;place-items:center;font-family:var(--mono);font-size:var(--fs-micro);overflow:hidden}
.mini-photo.big{width:88px;height:88px;flex-basis:88px}
.mini-photo img{width:100%;height:100%;object-fit:cover}
/* ---------- Fix round 2026-09-25, audit 02 (producer) ---------- */
/* status chips: neutral grey for outcomes that are not errors (P-24); in lists they wrap instead of clipping (P-12) */
.status.neutral{color:var(--muted);background:var(--paper);border-color:var(--hair-strong)}
/* My tracks: older versions sit under the newest one, on the same left edge and with the same button slots.
   They are marked by the muted "v1 · older" tag and a dimmed waveform; a version group has no divider between its rows
   and a tighter gap (founder, 2026-09-25). Clips under 30 s say why they cannot be sent (P-08, P-09) */
.tag.tag-muted{color:var(--muted);border-color:var(--hair);background:transparent}
.photo-prev.big{width:160px;height:160px;flex:0 0 160px}
.status::before{content:"";width:6px;height:6px;border-radius:var(--r-round);background:currentColor;flex:0 0 6px}
