:root { --primary-color: #0A2342; --accent-color: #2CA58D; --background-color: #F8F9FA; --surface-color: #FFFFFF; --text-color: #212529; --font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } body { background-color: var(--background-color); font-family: var(--font-family); color: var(--text-color); display: flex; flex-direction: column; height: 100vh; margin: 0; } .header { background: linear-gradient(135deg, var(--primary-color), #123A63); color: white; padding: 1rem 1.5rem; display: flex; align-items: center; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .header h1 { margin: 0; font-size: 1.5rem; font-weight: 600; } .header .icon { margin-right: 0.75rem; } .chat-container { flex-grow: 1; overflow-y: auto; padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; } .chat-bubble { padding: 0.75rem 1.25rem; border-radius: 0.75rem; max-width: 75%; line-height: 1.6; box-shadow: 0 1px 3px rgba(0,0,0,0.05); } .chat-bubble.user { background-color: var(--primary-color); color: white; align-self: flex-end; border-bottom-right-radius: 0.25rem; } .chat-bubble.ai { background-color: var(--surface-color); color: var(--text-color); align-self: flex-start; border-bottom-left-radius: 0.25rem; } .chat-bubble.ai pre { white-space: pre-wrap; font-family: inherit; margin: 0; } .chat-input-form { display: flex; padding: 1rem 1.5rem; background-color: var(--surface-color); border-top: 1px solid #dee2e6; } .chat-input-form input { flex-grow: 1; border: 1px solid #ced4da; padding: 0.75rem 1rem; border-radius: 0.5rem; margin-right: 0.5rem; font-size: 1rem; } .chat-input-form input:focus { outline: none; border-color: var(--accent-color); box-shadow: 0 0 0 2px rgba(44, 165, 141, 0.25); } .chat-input-form button { background-color: var(--accent-color); border: none; color: white; padding: 0.75rem 1.25rem; border-radius: 0.5rem; cursor: pointer; display: flex; align-items: center; gap: 0.5rem; font-size: 1rem; font-weight: 500; transition: background-color 0.2s ease; } .chat-input-form button:hover { background-color: #238a75; } .thinking-indicator span { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background-color: #999; animation: bounce 1.4s infinite ease-in-out both; } .thinking-indicator span:nth-child(1) { animation-delay: -0.32s; } .thinking-indicator span:nth-child(2) { animation-delay: -0.16s; } @keyframes bounce { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1.0); } }