/* A tela do Kalypso. Segue a família katedra: papel quente, tinta, o verde acinzentado dos apps e a Inter, quando a
   máquina a tem (a família a leva junto; o Kalypso usa só o que já está instalado, sem arquivo de fonte). */

:root {
  --papel: #fcfbf9;
  --lateral: #f3f0e9;
  --superficie: #ffffff;
  --tinta: #1d1c1a;
  --suave: #615e58;          /* texto secundário: 6:1 sobre o papel */
  --linha: #e6e3dd;
  --linha-forte: #d6d1c8;
  --areia: #e9dfcf;
  --acento: #526d6f;
  --acento-escuro: #2f4a4c;
  --foco: #3b6e72;
  --proposta-fundo: #f6e8bd;
  --proposta-texto: #5a430b;
  --proposta-borda: #e6d193;
  --ativa-fundo: #dde9df;
  --ativa-texto: #2b4a33;
  --erro: #8a2c1f;
  --erro-fundo: #f8e4df;
  --erro-borda: #e5c1b9;
  --raio: 14px;
  color-scheme: light;
  font-family: Inter, "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--papel);
  color: var(--tinta);
  font-size: 1rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--acento-escuro); text-underline-offset: 3px; }
a:hover { color: var(--tinta); }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3 { letter-spacing: -.035em; line-height: 1.2; margin: 0; }
h1 { font-size: clamp(1.6rem, 3.2vw, 2.1rem); font-weight: 650; }
h2 { font-size: 1.15rem; font-weight: 650; }
h3 { font-size: 1rem; font-weight: 650; }
p { margin: 0; }

.so-leitor {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ------------------------------------------------------------------ trilho e menu completo */
.pular {
  position: absolute; left: .75rem; top: -4rem; z-index: 60;
  padding: .7rem 1rem; border-radius: 10px; border: 1px solid var(--tinta); background: var(--superficie);
  color: var(--tinta); font: inherit; font-weight: 600; cursor: pointer;
}
.pular:focus { top: .75rem; }

/* O trilho de ícones à esquerda (recolher, as três telas e, no pé, os apps do katedra e você) e, ao lado, o menu completo
   (a marca, as telas e o que espera, por app), que recolhe pelo botão do topo do trilho: o desenho dos outros apps do
   katedra. Em tela estreita o trilho vira uma faixa no topo e o menu completo mostra só a marca e as telas. */
:root { --trilho-l: 56px; --menu-l: 232px; }

.trilho {
  position: fixed; z-index: 20; inset: 0 auto 0 0; width: var(--trilho-l);
  display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 0 12px;
  background: #ece7dc; border-right: 1px solid var(--linha);
}
.trilho-item {
  position: relative; display: grid; place-items: center; width: 40px; height: 40px; min-height: 0; padding: 0;
  border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--suave);
  transition: background-color .15s ease, color .15s ease;
}
button.trilho-item:hover:not(:disabled), a.trilho-item:hover { background: #e2dccf; border-color: transparent; color: var(--tinta); }
.trilho-item[aria-current="page"] { background: #dcd5c6; border-color: var(--linha-forte); color: var(--tinta); }
.trilho-item svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.trilho-recolher { margin-bottom: 10px; }
.trilho-recolher .icone-abrir, .menu-recolhido .trilho-recolher .icone-fechar { display: none; }
.menu-recolhido .trilho-recolher .icone-abrir { display: block; }
.trilho-ponto {
  position: absolute; top: 7px; right: 7px; width: 8px; height: 8px; border-radius: 50%;
  background: var(--acento); box-shadow: 0 0 0 2px #ece7dc;
}
.trilho-pe { margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.trilho-menu { position: relative; }
.katedra-apps-botao img { display: block; width: 28px; height: 28px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--linha); }
.katedra-apps-botao:hover img, .katedra-apps-botao[aria-expanded="true"] img { box-shadow: 0 0 0 2px var(--linha-forte); }
.trilho-voce { display: grid; place-items: center; width: 40px; height: 40px; }
.voce-avatar { display: block; width: 28px; height: 28px; border-radius: 50%; background: var(--superficie); box-shadow: inset 0 0 0 1px var(--linha-forte); }

.menu-flutuante {
  position: absolute; z-index: 40; left: calc(100% + 10px); bottom: 0; width: 15.5rem; padding: 4px;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: 12px;
  box-shadow: 0 10px 24px rgb(29 28 26 / .14), 0 2px 6px rgb(29 28 26 / .08);
}
.katedra-apps-titulo { margin: 4px 8px; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--suave); }
.katedra-apps-item {
  display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px;
  color: var(--tinta); text-decoration: none;
}
.katedra-apps-item:hover, .katedra-apps-item:focus-visible { background: var(--lateral); color: var(--tinta); outline: none; }
.katedra-apps-item[aria-disabled="true"] { background: var(--lateral); cursor: default; }
.katedra-apps-item > img { flex: none; width: 28px; height: 28px; border-radius: 7px; }
.katedra-apps-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.katedra-apps-texto b { font-size: .8rem; font-weight: 650; }
.katedra-apps-texto span { font-size: .72rem; color: var(--suave); }

.menu-completo {
  position: fixed; z-index: 10; inset: 0 auto 0 var(--trilho-l); width: var(--menu-l);
  display: flex; flex-direction: column; padding: 22px 14px 20px; overflow: hidden auto;
  background: var(--lateral); border-right: 1px solid var(--linha);
}
.marca {
  padding: 0 10px; font-size: 1.4rem; font-weight: 700; letter-spacing: -.05em; text-transform: lowercase;
  color: var(--tinta); text-decoration: none;
}
.marca .ponto { color: var(--acento); }
.endosso { padding: 0 10px; font-size: .75rem; color: var(--suave); }
.endosso a { color: var(--suave); text-decoration: none; }
.endosso a:hover { color: var(--tinta); }

.menu { display: flex; flex-direction: column; gap: 2px; margin-top: 22px; }
.menu a {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .5rem .65rem; border-radius: 8px; border: 1px solid transparent;
  color: var(--suave); font-weight: 550; font-size: .88rem; text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.menu a:hover { background: #e9e5db; color: var(--tinta); }
.menu a[aria-current="page"] { background: #e4dfd5; border-color: var(--linha-forte); color: var(--tinta); font-weight: 650; }

.menu-grupo { margin-top: 26px; }
.menu-sessao { margin-top: 18px; padding: 0 10px; font-size: .8rem; color: var(--suave); overflow-wrap: anywhere; }
.menu-sessao .email { color: var(--tinta); font-weight: 550; }
.menu-rotulo { padding: 0 10px 6px; font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--suave); }
.menu-lista { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.menu-item {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .45rem .65rem; border-radius: 8px;
  color: var(--suave); font-size: .84rem; font-weight: 550; text-decoration: none;
}
.menu-item:hover { background: #e9e5db; color: var(--tinta); }
.menu-item-nome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-vazio { padding: .3rem .65rem; font-size: .82rem; line-height: 1.45; color: var(--suave); }

/* o conteúdo começa depois dos dois; recolhido, depois do trilho */
main, .avisos { margin-left: calc(var(--trilho-l) + var(--menu-l)); }
.menu-recolhido .menu-completo { display: none; }
.menu-recolhido main, .menu-recolhido .avisos { margin-left: var(--trilho-l); }

.contador {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.45rem; height: 1.45rem; padding: 0 .4rem; border-radius: 999px;
  background: var(--tinta); color: #fff; font-size: .75rem; font-weight: 700;
}

/* ------------------------------------------------------------------ página */
main { max-width: 62rem; margin-right: auto; padding: 2.25rem clamp(1rem, 4vw, 2.5rem) 5rem; outline: none; }
main[aria-busy="true"] { opacity: .55; transition: opacity .15s ease .2s; }
main > h1 { outline: none; }
.carregando, .vazio, .ajuda, .resumo { color: var(--suave); }
.resumo { margin-top: .4rem; }
.ajuda { font-size: .9rem; }
.vazio { font-size: .95rem; }
.sem-js { padding: 1.5rem; text-align: center; }

.cabecalho { margin-bottom: 1.5rem; }
.sobretitulo {
  margin: 0 0 .6rem; font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
  color: var(--suave);
}

/* ------------------------------------------------------------------ botões e campos */
button {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  min-height: 2.5rem; padding: .55rem 1.05rem;
  border: 1px solid var(--tinta); border-radius: 10px; background: var(--tinta); color: #fff;
  font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
button:hover:not(:disabled) { background: #3b3935; border-color: #3b3935; }
button:disabled { opacity: .5; cursor: not-allowed; }
button.secundario { background: var(--superficie); border-color: var(--linha-forte); color: #3b3935; }
button.secundario:hover:not(:disabled) { background: var(--lateral); border-color: #bdb6aa; color: var(--tinta); }
button.perigo { background: var(--superficie); border-color: #d9b3ab; color: var(--erro); }
button.perigo:hover:not(:disabled) { background: var(--erro-fundo); border-color: var(--erro); color: var(--erro); }
button.perigo.cheio { background: var(--erro); border-color: var(--erro); color: #fff; }
button.perigo.cheio:hover:not(:disabled) { background: #6f2217; border-color: #6f2217; color: #fff; }

input[type="search"], input[type="text"], select, textarea {
  width: 100%; min-height: 2.6rem; padding: .6rem .8rem;
  border: 1px solid var(--linha-forte); border-radius: 10px; background: var(--superficie); color: var(--tinta);
  font: inherit; font-size: .95rem;
}
textarea { min-height: 5.5rem; resize: vertical; line-height: 1.5; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--foco); outline-offset: 1px; }

label, .rotulo {
  display: block; margin-bottom: .35rem;
  font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--suave);
}

.acoes { display: flex; flex-wrap: wrap; gap: .6rem; }

/* ------------------------------------------------------------------ fila: filtros e lote */
.barra {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 1.5rem;
  margin: 1.5rem 0 1.75rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--linha);
}
.filtros { display: flex; flex-wrap: wrap; gap: 1rem; }
.campo-filtro { min-width: 11rem; }
.lote { display: flex; align-items: center; }

/* ------------------------------------------------------------------ cartões */
.cartao {
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 1.25rem 1.4rem; margin: 0 0 1rem;
}
.cartao:focus { outline: none; }   /* o foco que o código leva ao cartão só aparece para quem usa o teclado: */
.cartao:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; border-radius: var(--raio); }
.cartao-topo { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .6rem; margin-bottom: .85rem; }

.etiqueta {
  display: inline-block; padding: .16rem .6rem; border-radius: 999px;
  background: var(--areia); color: #4a4338; font-size: .74rem; font-weight: 650; letter-spacing: .02em;
}
.etiqueta.app { background: #e1ebea; color: var(--acento-escuro); }
.etiqueta.proposta { background: var(--proposta-fundo); color: var(--proposta-texto); box-shadow: inset 0 0 0 1px var(--proposta-borda); }
.etiqueta.ativa { background: var(--ativa-fundo); color: var(--ativa-texto); }
.meta { color: var(--suave); font-size: .82rem; }

.conteudo {
  margin: 0 0 1rem; padding-left: 1rem; border-left: 3px solid var(--areia);
  font-size: 1.02rem; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere;
}
.ligacoes { margin: 0 0 1.1rem; color: var(--suave); font-size: .9rem; overflow-wrap: anywhere; }
.ligacoes a { font-weight: 550; }
.ligacoes .separador { margin: 0 .5rem; color: var(--linha-forte); }
.explicacao { margin: 0 0 1rem; color: var(--suave); font-size: .92rem; }
.motivo { color: var(--suave); font-size: .85rem; }

.par { display: grid; grid-template-columns: 1fr auto 1fr; gap: .75rem 1rem; align-items: stretch; margin-bottom: 1.1rem; }
.par .obra-do-par { padding: .8rem 1rem; border: 1px solid var(--linha); border-radius: 10px; background: var(--lateral); overflow-wrap: anywhere; }
.par .obra-do-par .meta { display: block; margin-top: .2rem; }
.par .e { align-self: center; color: var(--suave); font-size: .85rem; }

.anotacao { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed var(--linha-forte); }
.anotacao textarea { margin-bottom: .75rem; }
.gravada { margin-top: .85rem; color: var(--ativa-texto); font-size: .86rem; font-weight: 550; }

/* ------------------------------------------------------------------ grupos por app, obra e autor */
.grupo { margin-top: 2rem; }
.grupo > h2, .grupo > h3 {
  display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; padding-bottom: .55rem;
  border-bottom: 1px solid var(--linha);
  font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--suave);
}
.contagem {
  display: inline-flex; align-items: center; justify-content: center; min-width: 1.5rem; height: 1.5rem; padding: 0 .45rem;
  border-radius: 999px; background: var(--areia); color: #4a4338; font-size: .74rem; letter-spacing: 0;
}

.busca { margin: 1.25rem 0 0; display: flex; gap: .6rem; align-items: flex-end; }
.busca .campo { flex: 1; }
.busca label { margin-bottom: .35rem; }
.busca button { flex: none; }
.resultados { margin-top: 1.5rem; }

.obra-do-autor { margin-top: 2.25rem; }
.obra-do-autor > h2 { margin-bottom: 1rem; font-size: 1.2rem; overflow-wrap: anywhere; }

.painel {
  margin: 1.25rem 0; padding: 1.2rem 1.4rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
}
.painel.erro { background: var(--erro-fundo); border-color: var(--erro-borda); color: #5c1f15; }
.painel.erro p + p, .painel.erro p + button, .painel.erro p + a { margin-top: .9rem; }
.painel h2 { margin-bottom: .8rem; }
.painel.aviso-em-linha { background: var(--proposta-fundo); border-color: var(--proposta-borda); color: var(--proposta-texto); }

.identificadores { display: grid; grid-template-columns: max-content 1fr; gap: .55rem 1.5rem; margin: 0; }
.identificadores dt { margin: .15rem 0 0; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.identificadores dd { margin: 0; font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .86rem; overflow-wrap: anywhere; }
.identificadores dd + dd { grid-column: 2; }

.autores { display: flex; flex-wrap: wrap; gap: .4rem .5rem; margin: 0; padding: 0; list-style: none; }
.autores li + li::before { content: "·"; margin-right: .5rem; color: var(--linha-forte); }

.lista-simples { margin: 0; padding: 0; list-style: none; }
.lista-simples > li + li { margin-top: .85rem; }
.fusao-linha { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; }
.erros { margin: .35rem 0 0 1rem; padding: 0; }

/* ------------------------------------------------------------------ captura */
.tabela-rolavel { overflow-x: auto; margin: 1.25rem 0; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.tabela { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tabela th, .tabela td { padding: .8rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--linha); }
.tabela tbody tr:last-child th, .tabela tbody tr:last-child td { border-bottom: 0; }
.tabela thead th { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--suave); background: var(--lateral); }
.tabela tbody th { font-weight: 650; }
.tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela .mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .85rem; overflow-wrap: anywhere; }
.erro-texto { color: var(--erro); overflow-wrap: anywhere; }
.ok { color: var(--suave); }
.captura-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-top: 1.25rem; }

/* ------------------------------------------------------------------ avisos e diálogo */
.avisos {
  position: fixed; left: 0; right: 0; bottom: 1.25rem; z-index: 50;
  display: flex; justify-content: center; padding: 0 1rem; pointer-events: none;
}
.aviso {
  display: flex; align-items: center; gap: 1rem; max-width: min(38rem, 100%); pointer-events: auto;
  padding: .8rem 1rem .8rem 1.2rem; border-radius: 12px;
  background: var(--tinta); color: #fff; font-size: .93rem; box-shadow: 0 12px 32px rgb(29 28 26 / .22);
}
.aviso.erro { background: #7a2418; }
.aviso span { overflow-wrap: anywhere; }
.aviso button { min-height: 2rem; padding: .1rem .55rem; border: 0; background: transparent; color: #fff; font-size: 1.25rem; line-height: 1; }
.aviso button:hover:not(:disabled) { background: rgb(255 255 255 / .16); }

dialog {
  width: min(30rem, calc(100vw - 2rem)); padding: 1.6rem;
  border: 1px solid var(--linha); border-radius: 16px; background: var(--superficie); color: var(--tinta);
  box-shadow: 0 24px 60px rgb(29 28 26 / .28);
}
dialog::backdrop { background: rgb(29 28 26 / .45); }
dialog h2 { margin-bottom: .6rem; font-size: 1.2rem; }
dialog p { color: var(--suave); }
dialog .campo { margin-top: 1.1rem; }
dialog .acoes { justify-content: flex-end; margin-top: 1.5rem; }

/* ------------------------------------------------------------------ telas estreitas */
@media (max-width: 40rem) {
  .trilho {
    position: sticky; top: 0; inset: auto; width: auto; flex-direction: row; gap: 2px; padding: 6px 12px;
    border-right: 0; border-bottom: 1px solid var(--linha);
  }
  .trilho-recolher { display: none; }
  .trilho-item { width: 44px; height: 44px; }
  .trilho-pe { flex-direction: row; margin: 0 0 0 auto; }
  .menu-flutuante { left: auto; right: 0; top: calc(100% + 8px); bottom: auto; }
  .menu-completo, .menu-recolhido .menu-completo { position: static; display: flex; width: auto; padding: 14px 1rem 0; border-right: 0; }
  .marca, .endosso { padding: 0; }
  .menu { flex-direction: row; flex-wrap: wrap; margin-top: 12px; }
  .menu a { flex: 1 1 auto; justify-content: center; }
  .menu-grupo { display: none; }
  main, .avisos, .menu-recolhido main, .menu-recolhido .avisos { margin-left: 0; }
  main { padding-top: 1.5rem; }
  .cartao { padding: 1rem; }
  .barra { align-items: stretch; }
  .filtros, .campo-filtro { width: 100%; }
  .par { grid-template-columns: 1fr; }
  .par .e { justify-self: start; }
  .busca { flex-direction: column; align-items: stretch; }
  .identificadores { grid-template-columns: 1fr; gap: .15rem; }
  .identificadores dd + dd { grid-column: 1; }
  .identificadores dd { margin-bottom: .6rem; }
}

/* ------------------------------------------------------------------ busca por sentido ou por palavra */
.modo-busca { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin: .8rem 0 0; padding: 0; border: 0; }
label.opcao {
  display: inline-flex; align-items: center; gap: .4rem; margin: 0;
  font-size: .9rem; font-weight: 500; letter-spacing: normal; text-transform: none; color: var(--tinta); cursor: pointer;
}
label.opcao input { width: 1rem; height: 1rem; margin: 0; accent-color: var(--acento-escuro); }

/* ------------------------------------------------------------------ conexões */
.frase { margin: 0 0 1rem; font-size: 1.05rem; line-height: 1.55; overflow-wrap: anywhere; }
.premissas { display: grid; gap: .75rem; margin: 0 0 1.1rem; padding: 0; list-style: none; }
.premissa { padding: .85rem 1rem 0; border: 1px solid var(--linha); border-radius: 10px; background: var(--lateral); }
.premissa .cartao-topo { margin-bottom: .6rem; }
.premissa .conteudo { font-size: .96rem; }

/* ------------------------------------------------------------------ chat */
.chat { display: grid; grid-template-columns: minmax(12rem, 16rem) 1fr; gap: 1.5rem; align-items: start; }
.chat-conversas { display: grid; gap: .6rem; align-content: start; }
.chat-conversas .menu-item[aria-current="page"] { background: #e4dfd5; color: var(--tinta); font-weight: 650; }
.chat-conversa { min-width: 0; }
.mensagens { display: grid; gap: .9rem; margin-bottom: 1.25rem; }
.mensagem { padding: .9rem 1.1rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.mensagem.usuario { background: var(--lateral); margin-left: 3rem; }
.mensagem.assistente { margin-right: 3rem; }
.mensagem.escrevendo { border-style: dashed; }
.mensagem .rotulo { margin-bottom: .3rem; }
.mensagem .texto { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.6; }
.mensagem .acoes, .mensagem .ajuda { margin-top: .8rem; }
.citacao { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .85em; font-weight: 600; }
.nao-conferidos { margin: .7rem 0 0; padding: 0; list-style: none; font-size: .9rem; color: var(--suave); }
.nao-conferidos li + li { margin-top: .35rem; }
.chat-pergunta textarea { margin-bottom: .75rem; }
.chat-apagar { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--linha); }

@media (max-width: 52rem) {
  .chat { grid-template-columns: 1fr; }
  .mensagem.usuario { margin-left: 1rem; }
  .mensagem.assistente { margin-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
