/* Visual spec mirrors deepsuite @deepseek/ui Tooltip.css (size m, no arrow), except padding tightened 6/12 -> 3/7, type 14/22 -> 13/20, radius 10 -> 8, a tooltip-bg plate, one text color across both themes (the plate stays dark in light and dark mode). Behavior (fixed positioning off the anchor rect) is local — the upstream Floating stack is intentionally not vendored. */ .bubble { position: fixed; z-index: 100; /* Fixed-position shrink-to-fit measures only the space from `left` to the viewport edge, so anchors near the right edge would wrap early; max-content sizes by the label alone, capped at half the viewport. */ width: max-content; max-width: 50vw; padding: 3px 7px; border-radius: 8px; background: var(--dsw-alias-tooltip-bg); color: var(--dsw-static-neutral-bluish-00); font-size: 13px; line-height: 20px; white-space: pre-line; /* Unbreakable tokens (URLs, paths) must not push past max-width. */ overflow-wrap: break-word; pointer-events: none; animation: tooltip-in 150ms var(--ds-ease-in-out); } .bubble[data-side='right'] { transform: translateY(-50%); } .bubble[data-side='bottom'] { transform: translateX(-50%); } .bubble[data-side='top'] { transform: translate(-50%, -100%); } @keyframes tooltip-in { from { opacity: 0; } } @media (prefers-reduced-motion: reduce) { .bubble { animation: none; } }