/* Stage 4: history, revision controls, dialogs and rendered content. */
.history-panel { display:flex;flex:1;min-height:0;flex-direction:column;gap:10px;padding:12px;overflow-y:auto; }
.history-filters { display:grid;gap:8px; }
.history-filters input,.history-filters select,.conversation-actions select { width:100%;min-width:0;padding:9px;border:1px solid var(--border);border-radius:10px;background:var(--bg-input,transparent);color:var(--text-main);font-size:13px; }
.history-filters option,.conversation-actions option {background:var(--bot-bg);color:var(--text-main);}
.history-list {display:flex;flex-direction:column;gap:8px;}
.history-row {position:relative;display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:12px;min-width:0;}
.history-open {flex:1;min-width:0;display:flex;flex-direction:column;text-align:start;gap:3px;padding:12px 9px;color:var(--text-main);}
.history-open>span {max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}
.history-open small {color:var(--text-muted);font-size:11px;}
.history-open[aria-current=true] {background:rgba(147,51,234,.15);border-radius:10px;}
.history-menu>summary {list-style:none;cursor:pointer;min-width:36px;min-height:44px;display:grid;place-content:center;}
.history-menu>summary::-webkit-details-marker {display:none;}
.history-menu[open] {z-index:10;}
.history-menu>div {position:absolute;inset-inline-end:0;top:90%;min-width:175px;display:grid;padding:6px;background:var(--bot-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 35px #0005;}
.history-menu button {padding:10px;text-align:start;min-height:44px;color:var(--text-main);font-size:13px;}
.history-menu button:hover {background:rgba(147,51,234,.12);}
.history-pager {display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;}
.history-pager button {min-height:44px;padding:6px;}
.history-pager button:disabled {opacity:.35;}
.conversation-actions {display:flex;gap:6px;flex-wrap:wrap;max-width:100%;opacity:1;transform:none;align-items:center;color:var(--text-muted);font-size:12px;}
.conversation-actions>button {min-height:36px;padding:6px 9px;border:1px solid var(--border);border-radius:9px;}
.conversation-actions button[aria-pressed=true] {background:rgba(147,51,234,.22);color:var(--text-main);border-color:#9333ea;}
.conversation-actions label {display:flex;align-items:center;gap:6px;}
.conversation-actions select {width:auto;}
.conversation-dialog {width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--border);border-radius:16px;padding:22px;background:var(--bot-bg);color:var(--text-main);box-shadow:0 20px 80px #0008;}
.conversation-dialog::backdrop {background:#0009;backdrop-filter:blur(3px);}
.conversation-dialog label {display:grid;gap:12px;line-height:1.8;}
.conversation-dialog input,.conversation-dialog textarea {width:100%;min-width:0;max-width:100%;border:1px solid var(--border);border-radius:10px;padding:12px;background:transparent;color:inherit;font-size:16px;}
.conversation-dialog textarea {height:180px;resize:vertical;}
.dialog-actions {display:flex;justify-content:flex-end;gap:10px;margin-top:20px;}
.dialog-actions button {min-height:44px;padding:8px 16px;border:1px solid var(--border);border-radius:10px;}
.dialog-actions button[type=submit] {background:#7e22ce;color:white;}
.rich-message {overflow-wrap:anywhere;}
.rich-message p {margin:.6em 0;white-space:normal;}
.rich-message h1,.rich-message h2,.rich-message h3 {font-weight:700;line-height:1.6;margin:1em 0 .5em;}
.rich-message h1 {font-size:1.35em;}.rich-message h2 {font-size:1.2em;}
.rich-message ul,.rich-message ol {padding-inline-start:1.6em;margin:.65em 0;}
.rich-message ul {list-style:disc;}.rich-message ol {list-style:decimal;}
.rich-message a {color:#a855f7;text-decoration:underline;text-underline-offset:3px;}
.rich-message blockquote {border-inline-start:3px solid #9333ea;padding-inline-start:12px;color:var(--text-muted);}
.rich-message code {font-family:ui-monospace,Consolas,monospace;background:rgba(127,127,127,.12);border-radius:4px;padding:2px 4px;direction:ltr;unicode-bidi:isolate;}
.rich-message pre {text-align:left;direction:ltr;background:#111218;color:#e4e4e7;padding:14px;border-radius:0 0 10px 10px;max-width:100%;overflow:auto;}
.rich-message pre code {padding:0;background:transparent;white-space:pre;overflow-wrap:normal;}
.code-toolbar {display:flex;justify-content:space-between;align-items:center;background:#20212b;color:#e4e4e7;padding:5px 12px;border-radius:10px 10px 0 0;margin-top:12px;direction:ltr;font-size:12px;}
.code-toolbar button {min-height:36px;padding:4px 8px;}
.table-scroll {overflow:auto;max-width:100%;margin:12px 0;}
.rich-message table {border-collapse:collapse;min-width:100%;}
.rich-message td,.rich-message th {border:1px solid var(--border);padding:8px 12px;text-align:start;}
.rich-message th {background:rgba(147,51,234,.1);}
.rich-message .katex-display {direction:ltr;text-align:center;overflow:auto;max-width:100%;padding:8px 0;}
@media(max-width:767px) { .conversation-actions>button,.code-toolbar button {min-height:44px;}.history-menu>summary{min-width:44px;}.conversation-dialog{padding:16px;}.rich-message{font-size:15px;} }

.load-older {align-self:center;min-height:44px;padding:8px 16px;border:1px solid var(--border);border-radius:12px;font-size:13px;}
#chatInner .msg-user-bubble {white-space:pre-wrap;}

#input {scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent;}

/* Keyboard visibility and touch targets for conversation controls. */
.conversation-actions>button,.conversation-actions select,.history-menu>summary {min-height:44px;min-width:44px;}
.conversation-dialog :focus-visible,.conversation-actions :focus-visible,.history-panel :focus-visible {outline:2px solid var(--accent,#a855f7);outline-offset:3px;}

.demo-status {font-size:11px;max-width:12rem;line-height:1.5;text-align:center;color:var(--text-main);}

@media (max-width:480px) {
  #chatContainer header:has(.demo-status) {flex-wrap:wrap;row-gap:4px;}
  .demo-status {order:4;flex-basis:100%;max-width:none;text-align:start;}
}
