{% extends "base.html" %} {% block title %}AI Assistant{% endblock %} {% block page_title %}AI Assistant{% endblock %} {% block extra_css %} #chatMessages { height: 440px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding: 16px; scroll-behavior: smooth; } .msg-user { align-self: flex-end; max-width: 75%; background: #3b82f6; color: #fff; border-radius: 16px 16px 4px 16px; padding: 10px 14px; font-size: 13.5px; line-height: 1.5; } .msg-ai { align-self: flex-start; max-width: 82%; background: #1e293b; color: #e2e8f0; border-radius: 16px 16px 16px 4px; padding: 10px 14px; font-size: 13.5px; line-height: 1.6; } .msg-ai.streaming { border-left: 2px solid #818cf8; } .msg-system { align-self: center; font-size: 12px; color: var(--muted); font-style: italic; } .suggestion-btn { background: #f1f5f9; border: 1px solid var(--border); border-radius: 20px; padding: 6px 14px; font-size: 12px; color: var(--text); cursor: pointer; transition: all .15s; white-space: nowrap; } .suggestion-btn:hover { background: #e2e8f0; border-color: #94a3b8; } .typing-dot { width: 6px; height: 6px; border-radius: 50%; background: #818cf8; display: inline-block; animation: bounce .8s infinite; } .typing-dot:nth-child(2) { animation-delay: .15s; } .typing-dot:nth-child(3) { animation-delay: .3s; } @keyframes bounce { 0%,60%,100% { transform: translateY(0); } 30% { transform: translateY(-6px); } } {% endblock %} {% block topbar_actions %} History {% endblock %} {% block content %}
{{ latest_insight.content }}
No insight generated yet.