Tooltip
TooltipComponent (trigger: icon/text, content: slot). Rich hover/focus detail panel — not a title attribute: title can't hold structured multi-line content and isn't reliably reachable by keyboard or announced consistently by screen readers. See flows/order-refund/index.html's Payment column for the reference usage (a payment breakdown: subtotal, coupon, shipping, tax, paid).
Trigger + panel
Shown via :hover/:focus-within on the wrapper — no JS required, consistent with this system's <details>-based popovers elsewhere. The trigger is a real <button> (focusable by default), linked to the panel via aria-describedby so assistive tech gets the same content on keyboard focus as on mouse hover, not just one or the other.
- Subtotal
- $232.99
- Coupon (SUMMER20)
- −$20.00
- Shipping
- $0.00
- Tax
- $0.00
- Paid
- $212.99
Payment flag icons (companion pattern, not the tooltip itself)
.payment-flag is a compact, icon-only sibling to .badge/.pill for a binary "this order has X" signal in a dense cell where a full text badge would be too wide to sit two-up. Pair with a real accessible name (title is acceptable here since it's a single short label, not structured content) — distinct from the tooltip trigger above, which needs the richer pattern because its content is multi-line.
Usage guidance
Anchor the panel to the side that has room: bottom: 100% (opens upward) reads well in a table row near the top of the viewport; flip to top: 100% for rows near the bottom of a tall page. Right-align the panel to its trigger (right: 0) rather than centering, to avoid the same horizontal clipping .filter-popover__panel already accounts for — .table-scroll only clips overflow-x, so a vertically-anchored tooltip is never cut off, but one that overflows sideways past the table's right edge would be. Keep panel content short: a payment breakdown (4-6 rows) is the ceiling: this is a glance-and-dismiss detail view, not a place for paragraphs.