:root { --primary: #4285f4; --secondary: #34a853; --background: #202124; --surface: #303134; --text: #e8eaed; --error: #ea4335; } * { box-sizing: border-box; margin: 0; padding: 0; } body { background: var(--background); color: var(--text); font-family: 'Roboto Mono', monospace; height: 100vh; overflow: hidden; } .terminal-container { display: grid; grid-template-rows: 1fr auto; height: 100vh; max-width: 800px; margin: 0 auto; padding: 20px; } .chat-output { flex: 1; overflow-y: auto; padding: 20px; background: var(--surface); border-radius: 8px; margin-bottom: 20px; } .message { margin: 10px 0; padding: 15px; border-radius: 8px; animation: slideIn 0.3s ease; } .message.user { background: rgba(66, 133, 244, 0.1); border-left: 3px solid var(--primary); } .message.text { background: rgba(52, 168, 83, 0.1); border-left: 3px solid var(--secondary); } .message.error { background: rgba(234, 67, 53, 0.1); border-left: 3px solid var(--error); } .message.system { background: rgba(255, 255, 255, 0.05); border-left: 3px solid #666; } .input-container { display: flex; gap: 10px; align-items: center; padding: 15px; background: var(--surface); border-radius: 8px; } input { flex: 1; padding: 12px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--primary); color: var(--text); border-radius: 6px; font-family: inherit; font-size: 1em; } button { background: var(--primary); color: white; border: none; padding: 12px 24px; border-radius: 6px; cursor: pointer; transition: all 0.3s ease; } button:hover { background: #1a73e8; } .download-link { color: var(--secondary); text-decoration: none; margin-top: 10px; display: inline-block; } .dot-flashing { position: relative; width: 10px; height: 10px; border-radius: 5px; background-color: var(--secondary); animation: dotFlashing 1s infinite linear; } @keyframes slideIn { from { transform: translateX(30px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes dotFlashing { 0% { opacity: 0.2; } 50% { opacity: 1; } 100% { opacity: 0.2; } }