/* Inline projection of sent user text: plain runs and reference chips flow in the consumer's own line box (bubble or queue row); nothing here is block. White-space policy stays with the consumer: the bubble wraps with pre-wrap, the queue preview keeps its single nowrap/ellipsis line. */ .plainRun { font-size: inherit; line-height: inherit; } .refChip { /* Plain inline, NOT inline-flex: a flex container takes its baseline from its first flex item — the icon svg, which has no text baseline — so the chip's label rode ~3px above the surrounding text in both surfaces. An inline chip shares the consumer's baseline by construction. */ display: inline; margin: 0 2px; color: var(--dsw-alias-state-business-primary); font-weight: 500; white-space: nowrap; } /* Skill and command tokens read as code: the theme's code family at the consumer's own size and line height, so the chip sits on the bubble line like the plain runs around it. `@` chips keep the body face — a file or session name is a label, not code. */ .slashChip { font-family: var(--dsw-font-markdown-code-font-family); } /* Inline reference glyphs (always ReferenceIcon svgs) ride the consumer's own font: 1em keeps the glyph at the text's size in the bubble (14px + user setting), the queue preview's fixed 13px line, and any future consumer — a px+delta size followed only the bubble axis and left the glyph oversized in the queue row. */ .refIcon { width: 1em; height: 1em; margin-right: 4px; /* Optical centering against the text: drops the glyph below the baseline by a font-relative amount, so it holds across the font axis. */ vertical-align: -0.125em; }