/* 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);
}
