/* Sentinela — complementos ao estilo.css do BI de Resíduos (mesma linguagem visual). */
.tab-wrap.texto th, .tab-wrap.texto td { text-align: left; white-space: normal; vertical-align: top; }
.tab-wrap.texto td.num, .tab-wrap.texto th.num { text-align: center; white-space: nowrap; }
tr.clica { cursor: pointer; } tr.clica:hover td { background: #f3f8f4; }
tr.clica:focus-visible td { outline: 2px solid var(--foco); outline-offset: -2px; }
.sub-linha { display: block; font: var(--text-legenda); color: var(--texto-suave); margin-top: 2px; }
.badge.neutro { color: var(--texto-suave); }
.badge.cls { color: var(--texto); border: 1px solid var(--borda); }
.cartao-branco { background: #fff; border-radius: var(--raio-md); padding: 16px 18px; }
.pilha > * + * { margin-top: 12px; }
.card h3 { font: var(--text-h3); color: var(--titulo); margin: 0 0 4px; }
.card h4 { font: var(--text-rotulo); color: var(--texto-suave); text-transform: uppercase; letter-spacing: .5px; margin: 18px 0 6px; }
h2.sec { font: var(--text-h3); color: var(--titulo); margin: 28px 0 12px; }

/* corpo do e-mail e textos longos */
.corpo-email { white-space: pre-wrap; font: var(--text-corpo-pequeno); background: #fff; border-radius: var(--raio-md); padding: 16px; max-height: 520px; overflow: auto; word-break: break-word; }

/* achados */
.achado { background: #fff; border-radius: var(--raio-md); padding: 14px 16px; margin-bottom: 10px; border-left: 5px solid var(--borda); }
.achado.alto { border-left-color: var(--status-erro); } .achado.medio { border-left-color: var(--status-alerta); } .achado.baixo { border-left-color: var(--status-sucesso); }
.achado .t { font-weight: 700; margin: 8px 0 4px; color: var(--texto); }
.achado ul { margin: 6px 0; padding-left: 18px; font: var(--text-corpo-pequeno); }
.achado p { margin: 4px 0; font: var(--text-corpo-pequeno); color: var(--texto-suave); }
.achado .acoes { margin-top: 10px; flex-wrap: wrap; }
.ev { font-style: italic; color: var(--texto-suave); }
.selos { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }

/* respostas sugeridas */
.resposta { background: #fff; border-radius: var(--raio-md); padding: 16px; margin-bottom: 12px; }
.resposta pre { white-space: pre-wrap; font: var(--text-corpo-pequeno); margin: 10px 0; }

/* listas */
.lista { margin: 0; padding-left: 18px; font: var(--text-corpo-pequeno); }
.lista li { margin-bottom: 6px; }
.vazio { color: var(--texto-suave); font: var(--text-corpo-pequeno); margin: 0; }

/* linha do tempo */
.trilha-tempo { border-left: 2px solid var(--verde-a); margin-left: 6px; padding-left: 20px; }
.trilha-tempo > div { position: relative; margin-bottom: 14px; font: var(--text-corpo-pequeno); }
.trilha-tempo > div::before { content: ""; position: absolute; left: -27px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--verde-lettering); }

/* avisos */
.nota { display: flex; gap: 8px; align-items: flex-start; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio-md); padding: 10px 14px; margin: 16px 0; font: var(--text-corpo-pequeno); }
.nota.erro { border-color: #f1b8b3; } .nota.ok { border-color: var(--status-sucesso); } .nota.alerta { border-color: var(--status-alerta); } .nota.info { border-color: var(--status-info); }

/* formulários */
.form label { display: block; font: var(--text-rotulo); color: var(--texto-suave); text-transform: uppercase; letter-spacing: .5px; margin: 14px 0 6px; }
.form input:not([type=checkbox]), .form select, .form textarea { width: 100%; border: 1px solid var(--borda); border-radius: var(--raio-md); padding: 10px 12px; font: var(--text-corpo-pequeno); background: #fff; color: var(--texto); }
.form input:focus-visible, .form select:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.form .duas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.marcar { display: flex; gap: 8px; align-items: center; font: var(--text-corpo-pequeno); color: var(--texto); text-transform: none; letter-spacing: 0; }
.marcar input { width: 18px; height: 18px; accent-color: var(--titulo); }
.form .acoes { margin-top: 20px; flex-wrap: wrap; }
.campo-txt { display: flex; flex-direction: column; min-width: 280px; }
button.btn { cursor: pointer; font-family: var(--font-sans); }
.btn[disabled] { opacity: .55; cursor: wait; }
.paginador { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 12px; font: var(--text-corpo-pequeno); color: var(--texto-suave); }

/* fluxograma */
.fluxo { background: #fff; border-radius: var(--raio-md); padding: 16px; overflow-x: auto; }

/* carregando e avisos rápidos */
.gira { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--cinza-claro); border-top-color: var(--verde-lettering); border-radius: 50%; animation: gira-s 1s linear infinite; vertical-align: -2px; }
.btn.primario .gira { border-color: rgba(255, 255, 255, .4); border-top-color: #fff; }
@keyframes gira-s { to { transform: rotate(360deg); } }
.toast { position: fixed; right: 24px; bottom: 24px; background: var(--verde-lettering); color: #fff; padding: 12px 18px; border-radius: var(--raio-pill); font: var(--text-botao); z-index: 90; animation: sobe .3s ease-out both; }
.carregando-pag { padding: 48px 0; color: var(--texto-suave); font: var(--text-corpo-pequeno); }
details summary { cursor: pointer; font: var(--text-corpo-pequeno); color: var(--link); margin-top: 8px; }
@media (max-width: 1024px) { .form .duas { grid-template-columns: 1fr; } .campo-txt { min-width: 0; flex: 1 1 100%; } }
.conteudo a.btn { text-decoration: none; }
.abas-painel { overflow-x: auto; scrollbar-width: thin; }
.abas-painel .aba-p { white-space: nowrap; flex: 0 0 auto; }

/* ================= Assistente (chat) ================= */
.chat-grade { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 16px; margin-top: 24px; align-items: start; }
.chat-lista { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; max-height: calc(100vh - 360px); overflow: auto; }
.chat-lista a { display: block; padding: 10px 12px; border-radius: var(--raio-md); background: #fff; color: var(--texto); text-decoration: none !important; font: var(--text-corpo-pequeno); }
.chat-lista a:hover { background: #f3f8f4; }
.chat-lista a.ativa { box-shadow: inset 0 0 0 2px var(--verde-lettering); font-weight: 500; }
.chat-lista a small { display: block; color: var(--texto-suave); font: var(--text-legenda); margin-top: 2px; }
.chat-painel { display: flex; flex-direction: column; height: calc(100vh - 250px); min-height: 520px; padding: 0; overflow: hidden; }
.chat-msgs { flex: 1 1 auto; overflow-y: auto; padding: 24px; display: flex; flex-direction: column; gap: 14px; scroll-behavior: smooth; }
.bolha { max-width: 86%; border-radius: 16px; padding: 12px 16px; font: var(--text-corpo-pequeno); white-space: pre-wrap; word-break: break-word; animation: sobe .35s ease-out both; }
.bolha.usuario { align-self: flex-end; background: var(--verde-lettering); color: #fff; border-bottom-right-radius: 4px; }
.bolha.assistente { align-self: flex-start; background: #fff; color: var(--texto); border-bottom-left-radius: 4px; }
.bolha.larga { max-width: 100%; width: 100%; white-space: normal; }
.bolha .quem { display: flex; align-items: center; gap: 8px; font: var(--text-rotulo); color: var(--texto-suave); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 6px; white-space: normal; }
.bolha .quem img { width: 18px; height: auto; }
.bolha.erro { box-shadow: inset 0 0 0 1px #f1b8b3; }
.bolha .tab-wrap { margin: 10px 0; max-height: 340px; }
.bolha td input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--titulo); }
.bolha .acoes { margin-top: 12px; flex-wrap: wrap; }
.bolha h4 { font: var(--text-rotulo); color: var(--texto-suave); text-transform: uppercase; letter-spacing: .5px; margin: 14px 0 6px; }
.bolha .rel-tit { font: var(--text-h3); color: var(--titulo); margin: 4px 0 8px; }
.bolha .obj { width: 100%; border: 1px solid var(--borda); border-radius: var(--raio-md); padding: 8px 12px; font: var(--text-corpo-pequeno); margin-top: 8px; }
.arquivo-linha { display: flex; align-items: center; gap: 12px; background: #f3f8f4; border-radius: var(--raio-md); padding: 10px 14px; margin-top: 10px; }
.arquivo-linha .ext { font: var(--text-rotulo); color: #fff; background: var(--verde-lettering); border-radius: 6px; padding: 6px 8px; }
.chat-entrada { border-top: 1px solid var(--cinza-claro); background: #fff; padding: 14px 16px; }
.chat-entrada form { display: flex; gap: 10px; align-items: flex-end; }
.chat-entrada textarea { flex: 1 1 auto; resize: none; min-height: 48px; max-height: 160px; border: 1px solid var(--borda); border-radius: var(--raio-lg); padding: 12px 16px; font: var(--text-corpo-pequeno); color: var(--texto); }
.chat-entrada textarea:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.sugestoes { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.sugestoes button { border: 1px solid var(--verde-lettering); background: #fff; color: var(--verde-lettering); border-radius: var(--raio-pill); padding: 6px 12px; font: 500 12px var(--font-sans); cursor: pointer; text-align: left; }
.sugestoes button:hover { background: #f3f8f4; }
.digitando { display: inline-flex; gap: 4px; } .digitando i { width: 6px; height: 6px; border-radius: 50%; background: var(--verde-c); animation: pisca 1s infinite; }
.digitando i:nth-child(2) { animation-delay: .15s; } .digitando i:nth-child(3) { animation-delay: .3s; }
@keyframes pisca { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
.nota-chat { font: var(--text-legenda); color: var(--texto-suave); margin-top: 8px; }
@media (max-width: 1024px) { .chat-grade { grid-template-columns: 1fr; } .chat-lista { max-height: 180px; } .chat-painel { height: 75vh; } .bolha { max-width: 100%; } }
.bolha td:nth-child(2) { white-space: nowrap; }
.arquivo-linha .ext { white-space: nowrap; }
.bolha .sub-linha { word-break: break-all; }
/* escolha do provedor de IA */
button.ia-op { text-align: left; cursor: pointer; border: 2px solid transparent; font-family: var(--font-sans); }
button.ia-op:hover { border-color: var(--cinza-guia); }
button.ia-op.ia-on { border-color: var(--verde-lettering); background: #f3f8f4; }
button.ia-op:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
.form .sub-linha { margin-top: 4px; }
