:root { --bg-primary: #0D1117; --bg-secondary: #161B22; --bg-tertiary: #21262D; --border-primary: #30363D; --text-primary: #C9D1D9; --text-secondary: #8B949E; --accent-user: #2F81F7; --accent-user-hover: #58A6FF; --font-family-sans: 'Inter', sans-serif; --font-family-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; } body { font-family: var(--font-family-sans); background-color: var(--bg-primary); color: var(--text-primary); display: flex; justify-content: center; align-items: center; height: 100vh; padding: 1rem; } .chat-container { background-color: var(--bg-secondary); border: 1px solid var(--border-primary); border-radius: 0.75rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); width: 100%; max-width: 800px; height: 90vh; display: flex; flex-direction: column; overflow: hidden; } .chat-header { padding: 0.75rem 1.5rem; border-bottom: 1px solid var(--border-primary); display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; } .chat-header h1 { font-size: 1.25rem; font-weight: 600; } .header-controls { display: flex; align-items: center; gap: 0.75rem; } #chat-window { flex-grow: 1; padding: 1.5rem; overflow-y: auto; display: flex; flex-direction: column; gap: 1rem; } .message-bubble { max-width: 75%; padding: 0.75rem 1.25rem; border-radius: 1.25rem; line-height: 1.6; word-wrap: break-word; } .message-bubble.user { background-color: var(--accent-user); color: white; align-self: flex-end; border-bottom-right-radius: 0.375rem; } .message-bubble.bot { background-color: var(--bg-tertiary); color: var(--text-primary); align-self: flex-start; border-bottom-left-radius: 0.375rem; } .bot .content-block { border-top: 1px solid var(--border-primary); margin-top: 0.75rem; padding-top: 0.75rem; } .bot .content-block:first-child { margin-top: 0; padding-top: 0; border-top: none; } .bot h3 { font-size: 0.75rem; text-transform: uppercase; color: var(--text-secondary); margin-bottom: 0.5rem; font-weight: 600; } .bot pre { font-family: var(--font-family-mono); font-size: 0.9rem; background-color: var(--bg-primary); padding: 0.75rem; border-radius: 0.5rem; white-space: pre-wrap; word-break: break-all; } .typing-indicator { display: flex; gap: 0.25rem; align-items: center; padding: 0.75rem 1.25rem; } .typing-indicator span { width: 8px; height: 8px; border-radius: 50%; background-color: var(--text-secondary); animation: bounce 1.4s infinite ease-in-out both; } .typing-indicator span:nth-child(1) { animation-delay: -0.32s; } .typing-indicator span:nth-child(2) { animation-delay: -0.16s; } @keyframes bounce { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1.0); } } .chat-input-area { padding: 1rem 1.5rem; border-top: 1px solid var(--border-primary); display: flex; gap: 1rem; align-items: center; } .chat-input-area textarea { flex-grow: 1; background-color: var(--bg-tertiary); border: 1px solid var(--border-primary); border-radius: 1.5rem; padding: 0.75rem 1.25rem; color: var(--text-primary); resize: none; outline: none; transition: all 0.2s; } .chat-input-area textarea:focus { border-color: var(--accent-user); box-shadow: 0 0 0 3px rgba(47, 129, 247, 0.3); } .btn-send { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background-color: var(--accent-user); color: white; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s; border: none; } .btn-send:hover:not(:disabled) { background-color: var(--accent-user-hover); } .btn-send:disabled { background-color: var(--text-secondary); cursor: not-allowed; } .btn-send svg { width: 24px; height: 24px; } /* Utility for session management buttons */ .btn-icon { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 0.5rem; border-radius: 50%; transition: all 0.2s; } .btn-icon:hover { background-color: var(--bg-tertiary); color: var(--text-primary); } .btn-icon svg { width: 20px; height: 20px; } /* Hiding original elements not needed in chat UI */ #historyContainer, #rawResponseDisplay, #getHistoryBtn { display: none !important; }