Files
lgcosta 8eeb6b89f4 fix: responder a partir dos livros com embeddings em português
Usa o modelo multilingual, ignora trechos curtos e o template do Llama 3.2
para a resposta sair em uma frase completa. O chat deixa a API livre durante
a geração, o upload indexa o PDF e os agendamentos não são gravados duas vezes.
2026-11-01 12:34:54 -03:00

207 lines
3.1 KiB
CSS

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
padding: 20px;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
header {
background: white;
padding: 20px;
border-radius: 10px;
margin-bottom: 20px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
header h1 {
color: #667eea;
font-size: 2rem;
}
header p {
color: #666;
margin-top: 5px;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 20px;
}
.card {
background: white;
padding: 20px;
border-radius: 10px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.card h2 {
color: #667eea;
margin-bottom: 15px;
font-size: 1.25rem;
}
.chat-container {
height: 500px;
display: flex;
flex-direction: column;
}
.chat-messages {
flex: 1;
overflow-y: auto;
padding: 15px;
background: #f5f5f5;
border-radius: 5px;
margin-bottom: 15px;
}
.message {
padding: 10px;
margin-bottom: 10px;
border-radius: 5px;
}
.message.user {
background: #667eea;
color: white;
}
.message.bot {
background: #e3f2fd;
}
.message-content {
line-height: 1.6;
white-space: pre-wrap;
}
.message-source {
font-size: 0.8rem;
color: #666;
margin-top: 5px;
font-style: italic;
}
input[type="text"],
input[type="datetime-local"],
input[type="number"] {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 5px;
margin-bottom: 10px;
font-size: 1rem;
}
button {
width: 100%;
padding: 12px;
background: #667eea;
color: white;
border: none;
border-radius: 5px;
font-size: 1rem;
cursor: pointer;
transition: background 0.3s;
}
button:hover {
background: #5568d3;
}
button:disabled {
background: #ccc;
cursor: not-allowed;
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 10px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background: #f5f5f5;
}
.status-badge {
padding: 5px 10px;
border-radius: 5px;
font-size: 0.8rem;
display: inline-block;
}
.status-badge.active {
background: #4caf50;
color: white;
}
.status-badge.inactive {
background: #f44336;
color: white;
}
.file-input {
border: 2px dashed #ddd;
padding: 20px;
text-align: center;
border-radius: 5px;
cursor: pointer;
}
.file-input:hover {
border-color: #667eea;
background: #f9f9f9;
}
.book-item {
display: flex;
gap: 8px;
align-items: center;
padding: 8px 0;
border-bottom: 1px solid #eee;
}
.schedule-item {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
padding: 8px 0;
border-bottom: 1px solid #eee;
}
.schedule-info {
display: flex;
flex-direction: column;
gap: 4px;
}
button.schedule-delete {
width: auto;
padding: 8px 12px;
}
#upload-status {
margin-top: 10px;
min-height: 1.2em;
}