* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 20px; } .container { max-width: 900px; margin: 0 auto; background: white; border-radius: 20px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); overflow: hidden; } header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; text-align: center; } header h1 { font-size: 2em; margin-bottom: 10px; } .subtitle { opacity: 0.9; font-size: 0.95em; } .attribution { margin-top: 10px; font-size: 0.85em; opacity: 0.8; } .attribution a { color: #fff; text-decoration: underline; font-weight: 600; } .attribution a:hover { opacity: 0.9; } .status-bar { background: #f8f9fa; border-bottom: 1px solid #e9ecef; padding: 15px 30px; } .status-content { display: flex; align-items: center; gap: 15px; } #statusText { font-size: 0.9em; color: #495057; font-weight: 500; } .progress-container { flex: 1; height: 6px; background: #e9ecef; border-radius: 3px; overflow: hidden; } .progress-bar { height: 100%; background: linear-gradient(90deg, #667eea, #764ba2); width: 0%; transition: width 0.3s ease; } .chat-container { height: 500px; display: flex; flex-direction: column; } .messages { flex: 1; overflow-y: auto; padding: 20px 30px; display: flex; flex-direction: column; gap: 15px; } .message { display: flex; animation: slideIn 0.3s ease; } @keyframes slideIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .message-content { max-width: 80%; padding: 15px 20px; border-radius: 15px; line-height: 1.5; } .message.user { justify-content: flex-end; } .message.user .message-content { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; } .message.assistant .message-content { background: #f8f9fa; color: #212529; } .message-content strong { display: block; margin-bottom: 5px; font-size: 0.85em; opacity: 0.8; } .message-content p { margin: 0; white-space: pre-wrap; word-wrap: break-word; } .typing-indicator { display: inline-flex; gap: 4px; padding: 10px 0; } .typing-indicator span { width: 8px; height: 8px; background: #667eea; border-radius: 50%; animation: bounce 1.4s infinite ease-in-out; } .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); } } .input-container { padding: 20px 30px; border-top: 1px solid #e9ecef; display: flex; gap: 10px; background: #f8f9fa; } #userInput { flex: 1; padding: 12px 15px; border: 2px solid #e9ecef; border-radius: 10px; font-family: inherit; font-size: 0.95em; resize: none; transition: border-color 0.3s ease; } #userInput:focus { outline: none; border-color: #667eea; } #userInput:disabled { background: #e9ecef; cursor: not-allowed; } button { padding: 12px 24px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border: none; border-radius: 10px; cursor: pointer; font-weight: 600; font-size: 0.95em; display: flex; align-items: center; gap: 8px; transition: transform 0.2s ease, opacity 0.2s ease; } button:hover:not(:disabled) { transform: translateY(-2px); opacity: 0.9; } button:active:not(:disabled) { transform: translateY(0); } button:disabled { opacity: 0.5; cursor: not-allowed; } .clear-btn { background: #dc3545; padding: 12px 20px; } .info-panel { background: #f8f9fa; padding: 20px 30px; border-top: 1px solid #e9ecef; } .info-panel h3 { color: #495057; margin-bottom: 10px; font-size: 1em; } .info-panel ul { list-style: none; color: #6c757d; font-size: 0.9em; } .info-panel li { padding: 5px 0; padding-left: 20px; position: relative; } .info-panel li:before { content: "→"; position: absolute; left: 0; color: #667eea; } /* Scrollbar styling */ .messages::-webkit-scrollbar { width: 8px; } .messages::-webkit-scrollbar-track { background: #f1f1f1; } .messages::-webkit-scrollbar-thumb { background: #667eea; border-radius: 4px; } .messages::-webkit-scrollbar-thumb:hover { background: #764ba2; } /* Responsive design */ @media (max-width: 768px) { body { padding: 10px; } .container { border-radius: 15px; } header { padding: 20px; } header h1 { font-size: 1.5em; } .chat-container { height: 400px; } .messages { padding: 15px; } .message-content { max-width: 90%; } .input-container { flex-direction: column; padding: 15px; } button { width: 100%; justify-content: center; } }