.rex-assistant { width: min(1040px, 100%); height: auto; min-height: calc(100dvh - 58px); margin: 0 auto; display: flex; flex-direction: column; background: var(--card); color: var(--ink); font: 14px/1.65 var(--mono); }
.rex-assistant[hidden] { display: none; }
body.chat-open { height: auto; min-height: 100dvh; overflow: visible; }
body.chat-open > main.catalog-workspace { display: block; height: auto; min-height: 0; overflow: visible; margin: 0; width: 100%; }
body.chat-open > footer { display: none; }
.rex-assistant > header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.rex-assistant h1 { margin: 0; font: 600 20px var(--mono); }
.assistant-scroll { flex: 1; overflow: visible; padding: 24px; }
.assistant-intro { color: var(--muted); }
.terminal-entry { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; margin: 0 0 24px; }
.terminal-label { color: var(--category-climate); }
.terminal-user .terminal-label { color: var(--ink); font-weight: 600; }
.terminal-error .terminal-label { color: var(--ink); font-weight: 700; }
.terminal-entry pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
.terminal-entry button { grid-column: 2; justify-self: start; }
.assistant-composer { position: sticky; bottom: var(--terminal-keyboard-inset, 0px); z-index: 10; flex-shrink: 0; padding: 12px 24px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--card); }
.assistant-composer form { display: flex; align-items: center; gap: 12px; }
.assistant-composer label { color: var(--category-climate); }
.assistant-composer input { min-width: 0; flex: 1; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); padding: 10px 0; font: inherit; font-size: 16px; border-radius: 0; }
.assistant-composer nav { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rex-assistant button { border: 1px solid var(--line); border-radius: 3px; background: var(--paper); color: var(--ink); padding: 7px 10px; font: inherit; cursor: pointer; }
.assistant-composer nav button { padding: 3px 8px; font-size: 12px; line-height: 1.5; min-height: 28px; }
.terminal-entry { scroll-margin-bottom: calc(160px + var(--terminal-keyboard-inset, 0px)); }
.rex-cli .cli-completions { max-height: max(0px, min(190px, calc(var(--terminal-visible-height, 100dvh) - var(--terminal-composer-height, 130px) - 12px))); }
.rex-assistant button:disabled { opacity: .5; cursor: wait; }
.rex-assistant :focus-visible { outline: 2px solid var(--category-climate); outline-offset: 3px; }
.rex-assistant [data-status] { color: var(--muted); }
@media (max-width: 600px) { body.chat-open .topbar-search { display: none; } .assistant-scroll { padding: 16px; } .assistant-composer { padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); } .terminal-entry { grid-template-columns: 36px minmax(0, 1fr); gap: 8px; } .assistant-composer form { gap: 8px; } }

.terminal-entry pre a { color: inherit; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }

.rex-cli .terminal-entry { line-height: 1.3; margin-bottom: 16px; }
.rex-cli .cli-table { white-space: pre; overflow-x: auto; padding-bottom: 6px; }

.terminal-entry[data-typing] pre::after { content: "▌"; color: var(--category-climate); }

.rex-cli { --cli-blue: #185ca5; --cli-green: #17683e; --cli-purple: #75409b; --cli-number: #934b12; --cli-error: #b52936; }
[data-theme="dark"] .rex-cli { --cli-blue: #8ac6ff; --cli-green: #8bd5a6; --cli-purple: #d2afff; --cli-number: #f4c27c; --cli-error: #ff9aa5; }
.rex-cli .cli-heading, .rex-cli .cli-key, .rex-cli .cli-command { color: var(--cli-blue); }
.rex-cli .cli-heading { font-weight: 600; }
.rex-cli .cli-string, .rex-cli .cli-success { color: var(--cli-green); }
.rex-cli .cli-flag, .rex-cli .cli-literal { color: var(--cli-purple); }
.rex-cli .cli-number { color: var(--cli-number); }
.rex-cli .cli-link { color: var(--cli-blue); text-decoration: underline; text-underline-offset: 3px; }
.rex-cli .cli-error, .rex-cli .terminal-error .terminal-label { color: var(--cli-error); }
.rex-cli .cli-separator { color: var(--muted); }

.chat-markdown { min-width: 0; overflow-wrap: anywhere; }
.chat-markdown p { margin: 0 0 .8em; white-space: pre-wrap; }
.chat-markdown ul, .chat-markdown ol { margin: .4em 0 .8em; padding-left: 1.8em; }
.chat-markdown li { margin: .2em 0; }
.chat-markdown h2, .chat-markdown h3, .chat-markdown h4, .chat-markdown h5, .chat-markdown h6 { margin: .8em 0 .4em; font: 600 1.05em var(--mono); }
.chat-markdown strong { font-weight: 700; }
.chat-markdown code { font: inherit; background: var(--soft); border-radius: 3px; padding: 1px 4px; }
.chat-markdown pre { margin: .6em 0 .8em; padding: 10px 12px; border: 1px solid var(--line); border-radius: 4px; background: var(--soft); white-space: pre-wrap; }
.chat-markdown pre code { padding: 0; background: none; }
.chat-markdown a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.chat-markdown > :first-child { margin-top: 0; }
.chat-markdown > :last-child { margin-bottom: 0; }
.terminal-entry[data-typing] .chat-markdown::after { content: "�"; color: var(--category-climate); }

.rex-cli .cli-image { margin: 0; min-width: 0; }
.rex-cli .cli-image img { display: block; max-width: 100%; height: auto; max-height: 70vh; object-fit: contain; object-position: left top; }
.rex-cli .cli-image figcaption { margin-top: 6px; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
