/* Chat tools (search, history, admin) and the rich message text: markdown,
   GitHub references and code blocks. The code block palette stays dark in
   every theme; themes may still change its background. */
@layer tokens {
:root {
  --comp-message-text-link: var(--sys-accent);
  --comp-code-block-background: #10141e;
  --comp-code-block-color: #e7eaf0;
  --comp-code-block-heading: #ffffff0a;
  --comp-code-keyword: #c792ea;
  --comp-code-string: #c3e88d;
  --comp-code-number: #f78c6c;
  --comp-code-comment: #8996a9;
}
}

@layer legacy {
.chat-tools { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:8px 12px; flex-shrink:0; border-bottom:1px solid var(--comp-panel-line); font:12px system-ui; }
.chat-tools[hidden] { display:none !important; }
.chat-tools button,.chat-tools select,.chat-tools-dialog button,.chat-tools-dialog input,.chat-tools-dialog select { color:inherit; background:transparent; border:1px solid var(--comp-panel-line-strong); border-radius:6px; padding:6px 8px; font:inherit; }
.chat-tools button,.chat-tools-dialog button { cursor:pointer; }
.chat-tools label { display:flex; align-items:center; gap:4px; }
.chat-tools [hidden],.chat-tools-dialog [hidden],.history-pin-only { display:none !important; }
.chat-tools-notice { max-width:100%; color:inherit; }
.chat-tools-dialog { color:inherit; background:var(--comp-panel-bg); color:var(--comp-panel-fg); border:1px solid var(--comp-panel-line-strong); border-radius:12px; width:min(680px,90vw); max-height:85vh; overflow:auto; padding:20px; font:14px system-ui; }
.chat-tools-dialog::backdrop { background:var(--comp-dialog-backdrop); }
.chat-tools-dialog h2 { margin:0 0 12px; font-size:18px; }
.chat-search-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-top:16px; }
.chat-search-form label,.chat-admin-user label { display:flex; flex-direction:column; gap:6px; }
.chat-tools-dialog option { background:var(--comp-panel-bg); color:var(--comp-panel-fg); }
.chat-search-results { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.chat-search-results button { text-align:left; white-space:pre-wrap; overflow-wrap:anywhere; }
.chat-admin-user { display:flex; gap:8px; flex-wrap:wrap; border-top:1px solid var(--comp-panel-line); padding:14px 0; }
.chat-admin-user strong { flex-basis:100%; }
.message-text { white-space:normal; }
.message-text p { margin:0 0 .65em; white-space:normal; line-height:1.5; }
.message-text > :first-child { margin-top:0; }
.message-text > :last-child { margin-bottom:0; }
.message-text strong { display:inline; margin:0; font-size:inherit; }
.message-text :is(h1, h2, h3, h4, h5, h6) { margin:.85em 0 .4em; line-height:1.3; font-weight:700; }
.message-text h1 { font-size:1.45em; } .message-text h2 { font-size:1.25em; }
.message-text h3 { font-size:1.1em; } .message-text :is(h4, h5, h6) { font-size:1em; }
.message-text :is(ul, ol) { margin:.5em 0; padding-left:1.6em; }
.message-text ul { list-style:disc; }
.message-text ul ul { list-style:circle; }
.message-text ol { list-style:decimal; }
.message-text li { margin:.25em 0; }
.message-text li > p { margin:.25em 0; }
.message-text blockquote { margin:.65em 0; padding:.2em .75em; border-left:3px solid var(--comp-panel-line-strong); background:var(--comp-panel-soft); }
.message-text blockquote > :last-child { margin-bottom:0; }
.message-text hr { margin:.85em 0; border:0; border-top:1px solid var(--comp-panel-line-strong); }
.message-text a { color:var(--comp-message-text-link); overflow-wrap:anywhere; }
.github-ref { display:inline-flex; align-items:center; gap:5px; max-width:100%; padding:0 6px; border:1px solid var(--comp-panel-line-strong); border-radius:6px; background:var(--comp-panel-soft); text-decoration:none; font-size:.92em; line-height:1.6; vertical-align:baseline; }
.github-ref:hover,.github-ref:focus-visible { background:var(--comp-panel-hover); text-decoration:none; }
.github-ref::before { content:""; flex:none; width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.55; }
.github-ref-title { min-width:0; max-width:32ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; opacity:.9; }
.github-ref-state { flex:none; padding:0 5px; border-radius:999px; font-size:.82em; font-weight:600; color:var(--domain-github-on-state); background:var(--domain-github-draft); }
.github-ref-checks { flex:none; font-weight:700; }
.github-ref[data-github-state="open"]::before,.github-ref[data-github-state="open"] .github-ref-state { background:var(--domain-github-open); opacity:1; }
.github-ref[data-github-state="draft"]::before,.github-ref[data-github-state="draft"] .github-ref-state { background:var(--domain-github-draft); opacity:1; }
.github-ref[data-github-state="merged"]::before,.github-ref[data-github-state="merged"] .github-ref-state,
.github-ref[data-github-state="completed"]::before,.github-ref[data-github-state="completed"] .github-ref-state { background:var(--domain-github-merged); opacity:1; }
.github-ref[data-github-state="closed"]::before,.github-ref[data-github-state="closed"] .github-ref-state { background:var(--domain-github-closed); opacity:1; }
.github-ref[data-github-checks="success"] .github-ref-checks { color:var(--domain-github-success); }
.github-ref[data-github-checks="failure"] .github-ref-checks { color:var(--domain-github-failure); }
.github-ref[data-github-checks="pending"] .github-ref-checks { color:var(--domain-github-pending); }
@media (max-width:560px) { .github-ref-title { max-width:16ch; } }
.message-text .markdown-table { max-width:100%; overflow-x:auto; margin:.65em 0; }
.message-text table { border-collapse:collapse; font-size:inherit; }
.message-text :is(th, td) { border:1px solid var(--comp-panel-line-strong); padding:.35em .65em; }
.message-text th { background:var(--comp-panel-hover); }

.code-block { min-width:0; max-width:100%; margin:8px 0; background:var(--comp-code-block-background); color:var(--comp-code-block-color); border:1px solid var(--comp-panel-line); border-radius:7px; overflow:hidden; text-align:left; }
.code-heading { display:flex; justify-content:space-between; gap:16px; padding:6px 10px; background:var(--comp-code-block-heading); font:12px system-ui; }
.code-heading button { color:inherit; background:none; border:1px solid var(--comp-panel-line-strong); border-radius:4px; cursor:pointer; }
.code-block pre { overflow:auto; max-width:100%; padding:10px; margin:0; white-space:pre; tab-size:2; }
.code-block code { font:12px/1.6 Consolas,monospace; background:none; }
code { font-family:Consolas,monospace; background:var(--comp-panel-hover); border-radius:3px; }
.syntax-keyword { color:var(--comp-code-keyword); } .syntax-string { color:var(--comp-code-string); } .syntax-number { color:var(--comp-code-number); } .syntax-comment { color:var(--comp-code-comment); }
[data-direct-user] { cursor:pointer; } [data-direct-user]:hover { text-decoration:underline; }
.message-file { display:block; padding:12px; overflow-wrap:anywhere; }
.message-highlight { outline:2px solid var(--sys-accent); outline-offset:-2px; }
}
