/* Geometry mirrors CodeBlock and TerminalBlock (12px radius, code-block surface + banner row, markdown code-block font) so a search card reads as one family with them. The deliberate divergence they share: the result rows keep `white-space: pre` and scroll horizontally, because folding a long match line or path destroys the alignment a reader scans by. */ .block { --dsl-search-radius: 12px; --dsl-search-line-height: 22px; position: relative; margin: 16px 0; color: var(--dsw-alias-label-primary); background: var(--dsw-alias-markdown-code-block); border-radius: var(--dsl-search-radius); } /* The banner: result summary on the left, the copy control holding its intrinsic width on the right. */ .header { display: flex; align-items: center; gap: 12px; padding: 9px 14px; background: var(--dsw-alias-markdown-code-block-banner); border-top-left-radius: var(--dsl-search-radius); border-top-right-radius: var(--dsl-search-radius); } .summary { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: var(--dsw-font-xs-13); color: var(--dsw-alias-label-secondary); } .copyButton { flex: none; background-color: transparent; border: none; padding: 0; margin: 0; color: var(--dsw-alias-label-secondary); cursor: pointer; font: var(--dsw-font-xs-13); } .body { padding: 8px 14px 12px 0; font: var(--dsw-font-markdown-code-block); overflow-x: auto; overflow-y: hidden; } /* No wrapping: a match line or a path keeps its content on one row and scrolls sideways instead of folding. */ .line { min-height: var(--dsl-search-line-height); padding-left: 14px; white-space: pre; } /* The 1-based line number ahead of a grep match line, dimmed so the match text stays the salient content. */ .lineNumber { color: var(--dsw-alias-label-tertiary); } /* A file group's header: a bold path label plus its match count, the whole row the collapse control. */ .fileHeader { display: flex; align-items: baseline; gap: 8px; width: 100%; min-height: var(--dsl-search-line-height); padding: 0 14px; border: none; background-color: transparent; cursor: pointer; font: inherit; text-align: left; } .filePath { min-width: 0; font-weight: 600; color: var(--dsw-alias-label-primary); white-space: pre; } .fileCount { flex: none; color: var(--dsw-alias-label-tertiary); } .expand { display: block; width: 100%; padding: 0 14px; border: none; background-color: transparent; color: var(--dsw-alias-label-tertiary); cursor: pointer; font: inherit; text-align: left; } .expand:hover { color: var(--dsw-alias-label-secondary); } .empty { padding: 12px 14px; font: var(--dsw-font-markdown-code-block); color: var(--dsw-alias-label-tertiary); }