/* Progress indicator — hidden by default, shown during HTMX requests or manual re-attach */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator { display: inline-flex; }
.htmx-request.htmx-indicator { display: inline-flex; }
#progress.progress-active { display: inline-flex; opacity: 1; }

/* Prose styling for rendered Markdown */
.prose h1 { font-size: 1.6rem; font-weight: 700; margin-bottom: 0.75rem; color: #1e293b; }
.prose h2 { font-size: 1.2rem; font-weight: 600; margin-top: 1.75rem; margin-bottom: 0.5rem;
             border-bottom: 1px solid #e2e8f0; padding-bottom: 0.3rem; color: #1e3a5f; }
.prose h3 { font-size: 1rem; font-weight: 600; margin-top: 1.25rem; margin-bottom: 0.3rem; color: #334155; }
.prose p { margin-bottom: 0.75rem; line-height: 1.65; color: #374151; }
.prose blockquote { border-left: 3px solid #3b82f6; padding-left: 1rem; color: #475569;
                    font-style: italic; margin: 0.75rem 0; background: #f8faff;
                    border-radius: 0 0.25rem 0.25rem 0; padding: 0.5rem 1rem; }
.prose ul { list-style-type: disc; padding-left: 1.5rem; margin-bottom: 0.75rem; }
.prose ol { list-style-type: decimal; padding-left: 1.5rem; margin-bottom: 0.75rem; }
.prose li { margin-bottom: 0.3rem; line-height: 1.55; color: #374151; }
.prose a { color: #1d4ed8; text-decoration: underline; }
.prose a:hover { color: #1e40af; }
.prose code { background: #f1f5f9; padding: 0.1rem 0.35rem; border-radius: 4px;
               font-size: 0.83em; color: #0f172a; }
.prose hr { border-color: #e2e8f0; margin: 1.75rem 0; }
.prose strong { font-weight: 600; color: #1e293b; }

/* Chat panel prose — smaller margins */
.chat-rendered.prose p { margin-bottom: 0.4rem; }
.chat-rendered.prose ul { margin-bottom: 0.4rem; }
.chat-rendered.prose h3 { margin-top: 0.75rem; }

/* Smooth chat panel transition */
#chat-panel { transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
