# CSS Profissional CUSTOM_CSS = """ /* Importar fontes profissionais do Google Fonts */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap'); /* Aplicar fonte Inter em todo o app */ * { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; } /* Fonte monospace para código */ code, pre, .message code { font-family: 'JetBrains Mono', 'Courier New', monospace !important; } /* Header principal */ .gradio-container h1 { font-size: 2.5rem !important; font-weight: 700 !important; background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 1rem !important; letter-spacing: -0.02em; } /* Subtítulos */ .gradio-container h3 { font-size: 1.25rem !important; font-weight: 600 !important; color: #1e293b; margin-bottom: 1rem !important; } /* Descrições */ .gradio-container p { font-size: 1rem !important; color: #475569; line-height: 1.6; } /* Tabs - Estilo profissional */ .tabs button { font-size: 1rem !important; font-weight: 600 !important; padding: 0.75rem 1.5rem !important; border-radius: 0.5rem 0.5rem 0 0 !important; transition: all 0.2s ease !important; } .tabs button[aria-selected="true"] { background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%) !important; color: white !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important; } .tabs button:not([aria-selected="true"]) { background: #f1f5f9 !important; color: #64748b !important; } .tabs button:hover:not([aria-selected="true"]) { background: #e2e8f0 !important; color: #334155 !important; } /* Botões principais */ button[variant="primary"] { background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 100%) !important; border: none !important; font-weight: 600 !important; font-size: 1rem !important; padding: 0.75rem 1.5rem !important; border-radius: 0.5rem !important; box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.3) !important; transition: all 0.3s ease !important; } button[variant="primary"]:hover { transform: translateY(-2px); box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.4) !important; } /* Botões secundários */ button[variant="secondary"] { background: #f8fafc !important; border: 2px solid #cbd5e1 !important; color: #475569 !important; font-weight: 500 !important; border-radius: 0.5rem !important; transition: all 0.2s ease !important; } button[variant="secondary"]:hover { background: #e2e8f0 !important; border-color: #94a3b8 !important; } /* Chatbot - Design limpo e profissional */ .message-wrap { padding: 1rem !important; margin: 0.5rem 0 !important; border-radius: 0.75rem !important; font-size: 1rem !important; line-height: 1.6 !important; } .message-wrap.user { background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%) !important; border-left: 4px solid #3b82f6 !important; } .message-wrap.bot { background: #f8fafc !important; border-left: 4px solid #10b981 !important; } /* Input de texto */ .gr-textbox textarea { font-size: 1rem !important; padding: 0.875rem !important; border-radius: 0.5rem !important; border: 2px solid #e2e8f0 !important; transition: all 0.2s ease !important; } .gr-textbox textarea:focus { border-color: #3b82f6 !important; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important; outline: none !important; } /* Exemplos */ .examples { border-radius: 0.75rem !important; padding: 1rem !important; background: #f8fafc !important; border: 1px solid #e2e8f0 !important; } .examples button { background: white !important; border: 1px solid #e2e8f0 !important; border-radius: 0.5rem !important; padding: 0.75rem 1rem !important; font-size: 0.95rem !important; color: #475569 !important; transition: all 0.2s ease !important; } .examples button:hover { background: #f1f5f9 !important; border-color: #3b82f6 !important; color: #1e3a8a !important; transform: translateY(-1px); } /* Imagem de visualização */ .gr-image { border-radius: 0.75rem !important; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important; border: 1px solid #e2e8f0 !important; } /* Labels */ label { font-weight: 600 !important; color: #334155 !important; font-size: 0.95rem !important; margin-bottom: 0.5rem !important; } /* Container principal */ .gradio-container { max-width: 1400px !important; margin: 0 auto !important; } /* Animação suave */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Badge de status */ .status-badge { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 9999px; font-size: 0.875rem; font-weight: 600; background: #dcfce7; color: #166534; } /* Scrollbar personalizada */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 10px; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } """