/* Structured Chef AI answers; everything stays inside the response column. */
.chat-log { min-height: 0; min-width: 0; }
.msg-row { min-width: 0; }
.msg-row.assistant { align-items: flex-start; }
.msg-row.assistant > .ai-mark { margin-top: 5px; }
.msg.assistant:not(.error) { flex: 1; width: 100%; min-width: 0; max-width: calc(100% - 44px); padding: 4px 0 8px; background: transparent; border: 0; border-radius: 0; }
.ai-content { min-width: 0; max-width: 100%; line-height: 1.75; font-size: 15px; }
.ai-content > :first-child { margin-top: 0; }
.ai-content > :last-child { margin-bottom: 0; }
.ai-content h2,.ai-content h3,.ai-content h4 { color: var(--color-text); font-family: var(--font-sans); font-weight: 650; letter-spacing: -.025em; line-height: 1.4; margin: 24px 0 10px; }
.ai-content h2 { font-size: 23px; }
.ai-content h3 { font-size: 20px; }
.ai-content h4 { font-size: 17px; }
.ai-content p { margin: 0 0 14px; }
.ai-content strong { font-weight: 650; }
.ai-content ul,.ai-content ol { margin: 12px 0 16px; padding-left: 24px; }
.ai-content li { padding-left: 3px; margin: 7px 0; }
.ai-content li > p { margin: 0; }
.ai-content li > ul,.ai-content li > ol { margin: 6px 0; }
.ai-content li::marker { color: var(--color-text-muted); }
.ai-content a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.ai-content blockquote { margin: 16px 0; padding: 4px 0 4px 16px; border-left: 3px solid var(--color-border-strong); color: var(--color-text-muted); }
.ai-content blockquote > :last-child { margin-bottom: 0; }
.ai-content hr { margin: 22px 0; }
.ai-content pre { max-width: 100%; overflow-x: auto; padding: 16px; margin: 16px 0; border: 1px solid var(--color-border); border-radius: 10px; background: var(--color-surface-sunken); overscroll-behavior-x: contain; }
.ai-content pre code { padding: 0; border-radius: 0; background: transparent; font-size: 14px; white-space: pre; overflow-wrap: normal; }
.ai-content :not(pre) > code { font-size: 14px; padding: 2px 5px; border: 1px solid var(--color-border); }
.ai-table-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; margin: 18px 0; border: 1px solid var(--color-border); border-radius: 10px; overscroll-behavior-x: contain; scrollbar-width: thin; }
.ai-table-scroll:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.ai-content table { width: 100%; min-width: calc(var(--ai-columns,2) * 140px); border-collapse: collapse; font-size: 14px; line-height: 1.6; }
.ai-content th,.ai-content td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--color-border); border-right: 1px solid var(--color-border); vertical-align: top; overflow-wrap: anywhere; }
.ai-content th { color: var(--color-text); background: var(--color-surface-sunken); font-weight: 650; }
.ai-content th:last-child,.ai-content td:last-child { border-right: 0; }
.ai-content tbody tr:last-child td { border-bottom: 0; }
.ai-content tbody tr:nth-child(even) { background: color-mix(in srgb,var(--color-surface-sunken) 40%,transparent); }
.ai-content table code { background: var(--color-surface); }
@media(max-width:767px) {
 .chat-log { padding: 16px; gap: 20px; }
 .msg-row.assistant { gap: 10px; }
 .msg-row.assistant > .ai-mark { width: 28px; height: 28px; flex-shrink: 0; }
 .msg.assistant:not(.error) { max-width: calc(100% - 38px); }
 .ai-content { font-size: 15px; }
 .ai-content h2 { font-size: 22px; }
 .ai-content h3 { font-size: 19px; }
 .ai-content th,.ai-content td { padding: 10px 12px; }
}
