* { 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; color: #333; line-height: 1.6; } .container { max-width: 800px; margin: 0 auto; padding: 2rem; min-height: 100vh; display: flex; flex-direction: column; } header { text-align: center; margin-bottom: 2rem; } h1 { color: white; font-size: 2.5rem; margin-bottom: 0.5rem; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } header p { color: rgba(255, 255, 255, 0.9); font-size: 1.2rem; } main { flex: 1; background: white; border-radius: 20px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); padding: 2rem; } .upload-section { margin-bottom: 2rem; } .upload-area { border: 2px dashed #cbd5e0; border-radius: 15px; padding: 3rem; text-align: center; cursor: pointer; transition: all 0.3s ease; background: #f7fafc; } .upload-area:hover, .upload-area.dragover { border-color: #667eea; background: #edf2f7; } .upload-content { display: flex; flex-direction: column; align-items: center; gap: 1rem; } .upload-icon { width: 48px; height: 48px; color: #667eea; } .upload-area p { color: #4a5568; font-size: 1.1rem; } .upload-area span { color: #667eea; font-weight: 600; } .image-preview { position: relative; display: inline-block; margin: 0 auto; } .image-preview img { max-width: 100%; max-height: 400px; border-radius: 15px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .remove-btn { position: absolute; top: -10px; right: -10px; width: 30px; height: 30px; border-radius: 50%; background: #e53e3e; color: white; border: none; font-size: 20px; cursor: pointer; transition: transform 0.2s; } .remove-btn:hover { transform: scale(1.1); } .query-section { margin-bottom: 2rem; } .input-group { display: flex; gap: 0.5rem; } #questionInput { flex: 1; padding: 0.75rem 1rem; border: 1px solid #e2e8f0; border-radius: 10px; font-size: 1rem; transition: border-color 0.3s; } #questionInput:focus { outline: none; border-color: #667eea; } #askBtn { padding: 0.75rem 2rem; background: #667eea; color: white; border: none; border-radius: 10px; font-size: 1rem; cursor: pointer; transition: background-color 0.3s; } #askBtn:hover:not(:disabled) { background: #5a67d8; } #askBtn:disabled { background: #cbd5e0; cursor: not-allowed; } .response-section h2 { margin-bottom: 1rem; color: #2d3748; } .response-content { background: #f7fafc; border-radius: 10px; padding: 1.5rem; min-height: 100px; } .loading { display: flex; flex-direction: column; align-items: center; gap: 1rem; } .spinner { width: 40px; height: 40px; border: 4px solid #e2e8f0; border-top-color: #667eea; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .response-text { color: #2d3748; line-height: 1.8; } footer { text-align: center; margin-top: 2rem; } footer p { color: rgba(255, 255, 255, 0.8); } footer a { color: white; text-decoration: none; font-weight: 600; } footer a:hover { text-decoration: underline; } @media (max-width: 600px) { .container { padding: 1rem; } h1 { font-size: 2rem; } header p { font-size: 1rem; } main { padding: 1.5rem; } .upload-area { padding: 2rem; } .input-group { flex-direction: column; } #askBtn { align-self: flex-end; } }