/* Utor — chat do site (2026-11-05).
   Visual do widget, inteiro ancorado em `.uc-raiz` e prefixado `uc-`, só com
   os tokens de style.css (cores, raios, sombras, fontes, espaçamentos). Não
   declara fonte nova: as do site já estão em style.css. Em ≤720px (a mesma
   quebra em que a nav vira dropdown) o
   painel ocupa a tela. Tudo que se move só se move sem
   `prefers-reduced-motion: reduce`. z-index 60: a .nav sticky é 40. */

.uc-raiz {
  --uc-cor: var(--violeta);
  --uc-cor-texto: var(--branco);
  --uc-raio: var(--raio-g);
  --uc-raio-bolha: calc(var(--raio) + 4px);
  --uc-raio-m: calc(var(--raio) - 4px);
  --uc-raio-p: calc(var(--raio) / 2);
  --uc-erro: var(--erro);
  --uc-ok: var(--ok);
  --uc-sugestao-hover: var(--indigo-suave);
  --uc-fundo: var(--branco);
  --uc-fundo-2: var(--papel-2);
  --uc-texto: var(--tinta);
  --uc-texto-2: var(--tinta-2);
  --uc-texto-3: var(--tinta-3);
  --uc-linha: var(--linha);
  --uc-linha-forte: var(--linha-forte);
  --uc-link: var(--indigo-forte);
  --uc-foco: var(--indigo);
  --uc-bolha-visitante: var(--uc-cor);
  --uc-bolha-visitante-texto: var(--uc-cor-texto);
  --uc-bolha-agente: var(--papel-2);
  --uc-altura: 100dvh;
  position: relative; z-index: 60;
  font-family: var(--texto); font-size: .95rem; line-height: 1.5; color: var(--uc-texto);
  text-wrap: pretty;
}
.uc-raiz *, .uc-raiz *::before, .uc-raiz *::after { box-sizing: border-box; }
/* `display` de autor vence o `[hidden]` do navegador: prévia, lançador, X e
   qualquer elemento futuro somem de verdade quando o JS marca `hidden`. */
.uc-raiz [hidden] { display: none !important; }
.uc-raiz[data-estilo="reto"] { --uc-raio: 0; }
.uc-raiz[data-tema="escuro"] {
  --uc-fundo: var(--campo); --uc-fundo-2: var(--campo-2); --uc-texto: var(--campo-texto); --uc-texto-2: var(--campo-texto-2); --uc-texto-3: var(--campo-texto-2);
  --uc-linha: var(--campo-linha); --uc-linha-forte: var(--campo-linha); --uc-link: var(--lilas); --uc-foco: var(--lilas);
  --uc-bolha-visitante: var(--indigo-forte); --uc-bolha-visitante-texto: var(--branco); --uc-bolha-agente: var(--campo-2);
  /* as cores semânticas do tema claro dão 2,6:1 (erro) e 3,1:1 (ok) sobre --campo; as versões claras passam de 14:1 */
  --uc-erro: var(--erro-bg); --uc-ok: var(--ok-bg); --uc-sugestao-hover: var(--uc-fundo-2);
}
.uc-raiz[data-tema="escuro"] .uc-textarea, .uc-raiz[data-tema="escuro"] input, .uc-raiz[data-tema="escuro"] textarea { caret-color: var(--lilas); }
/* sem border-radius aqui: a regra (0,2,0) venceria a bolha, o Enviar e as pílulas e os deixaria quadrados ao focar */
.uc-raiz :focus-visible { outline: 2px solid var(--uc-foco); outline-offset: 2px; }
.uc-raiz a:focus-visible { border-radius: 4px; }
/* sobre o cabeçalho colorido o anel índigo dá 1,28:1; o texto do cabeçalho sempre contrasta com a cor */
.uc-cabecalho :focus-visible { outline-color: var(--uc-cor-texto); }
.uc-raiz button { font: inherit; color: inherit; cursor: pointer; touch-action: manipulation; }
.uc-raiz a { color: var(--uc-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.uc-icone { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; display: block; flex-shrink: 0; }
.uc-icone-mini { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; display: block; }

/* ── lançador ─────────────────────────────────────────── */
.uc-lancador {
  position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 60;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
  width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%;
  background: var(--uc-cor); color: var(--uc-cor-texto);
  /* anel translúcido: invisível sobre o papel, dá borda à bolha sobre o herói escuro (violeta sobre --campo é 2,96:1) */
  box-shadow: var(--sombra-flutua), 0 0 0 2px color-mix(in srgb, var(--branco) 35%, transparent);
  transition: transform var(--rapido) var(--ease-out), box-shadow var(--medio) var(--ease-out), background-color var(--medio);
}
.uc-raiz[data-posicao="esquerda"] .uc-lancador { right: auto; left: 20px; }
.uc-raiz[data-estilo="reto"] .uc-lancador { border-radius: 0; }
.uc-lancador[data-forma="expandido"] { width: auto; height: 48px; padding: 0 1.25rem 0 1rem; border-radius: 999px; font-family: var(--display); font-weight: 650; font-size: .95rem; letter-spacing: -0.01em; white-space: nowrap; }
.uc-raiz[data-estilo="reto"] .uc-lancador[data-forma="expandido"] { border-radius: 0; }
.uc-lancador .uc-icone { transition: transform var(--medio) var(--ease-out), opacity var(--medio); }
.uc-lancador .uc-icone-fechar { position: absolute; opacity: 0; transform: rotate(-90deg) scale(.6); }
.uc-raiz.uc-aberto .uc-lancador .uc-icone-chat { opacity: 0; transform: rotate(90deg) scale(.6); }
.uc-raiz.uc-aberto .uc-lancador .uc-icone-fechar { opacity: 1; transform: none; }
.uc-raiz.uc-aberto .uc-lancador .uc-lancador-texto { display: none; }
.uc-raiz.uc-aberto .uc-lancador[data-forma="expandido"] { width: 48px; padding: 0; }
.uc-badge { position: absolute; top: -2px; right: -2px; width: 14px; height: 14px; border-radius: 50%; background: var(--erro); border: 2px solid var(--uc-cor-texto); }
.uc-raiz[data-posicao="esquerda"] .uc-badge { right: auto; left: -2px; }

/* ── prévia (não lidas e campanhas) ───────────────────── */
.uc-previa {
  position: fixed; right: 20px; bottom: calc(88px + env(safe-area-inset-bottom)); z-index: 60;
  display: grid; grid-template-columns: 36px 1fr; gap: var(--s2) var(--s3); align-items: start;
  width: min(340px, calc(100vw - 40px)); padding: var(--s3) var(--s4); border-radius: var(--uc-raio); border: 1px solid var(--uc-linha);
  background: var(--uc-fundo); color: var(--uc-texto); box-shadow: var(--sombra-flutua);
}
.uc-raiz[data-posicao="esquerda"] .uc-previa { right: auto; left: 20px; }
.uc-raiz[data-estilo="reto"] .uc-previa { border-color: var(--uc-linha-forte); }
.uc-previa-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.uc-previa-nome { display: block; font-family: var(--display); font-size: .9rem; margin-bottom: 2px; }
.uc-previa-texto { margin: 0; font-size: .88rem; color: var(--uc-texto-2); }
.uc-previa-acoes { grid-column: 2; display: flex; gap: var(--s2); }

/* ── painel ───────────────────────────────────────────── */
.uc-painel {
  position: fixed; right: 20px; bottom: calc(92px + env(safe-area-inset-bottom)); z-index: 60;
  display: flex; flex-direction: column; width: 380px; max-width: calc(100vw - 40px); height: min(640px, calc(100dvh - 120px));
  border: 1px solid var(--uc-linha); border-radius: var(--uc-raio); background: var(--uc-fundo); color: var(--uc-texto); box-shadow: var(--sombra-flutua);
  overflow: hidden; isolation: isolate;
}
.uc-raiz[data-posicao="esquerda"] .uc-painel { right: auto; left: 20px; }
.uc-raiz[data-estilo="reto"] .uc-painel { border-color: var(--uc-linha-forte); }
.uc-lancador[hidden] ~ .uc-painel { bottom: calc(20px + env(safe-area-inset-bottom)); }
.uc-painel[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .uc-raiz.uc-aberto .uc-painel { animation: uc-abrir 220ms var(--ease-out); }
  @keyframes uc-abrir { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
  .uc-lancador:hover { transform: translateY(-2px); }
  .uc-ponto { animation: uc-pulso 2s infinite; }
  @keyframes uc-pulso { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
  .uc-digitando i { animation: uc-saltar 1s infinite; }
  .uc-digitando i:nth-child(2) { animation-delay: .15s; }
  .uc-digitando i:nth-child(3) { animation-delay: .3s; }
  @keyframes uc-saltar { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-4px); opacity: 1; } }
  .uc-recebendo .uc-bolha::after { animation: uc-piscar 1s steps(2, start) infinite; }
  @keyframes uc-piscar { to { visibility: hidden; } }
  .uc-faixa, .uc-previa { animation: uc-subir 260ms var(--ease-out); }
  @keyframes uc-subir { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}

/* cabeçalho */
.uc-cabecalho { display: flex; align-items: center; gap: var(--s3); padding: var(--s3) var(--s3) var(--s3) var(--s4); background: var(--uc-cor); color: var(--uc-cor-texto); }
.uc-avatar, .uc-avatar-msg { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: var(--branco); }
/* texto da marca sobre a marca (resolvido por Core.cor.avaliarTexto) e um anel na cor do texto: legível com `cor` clara ou escura, no cabeçalho e na lista */
.uc-avatar-inicial { display: inline-flex; align-items: center; justify-content: center; font-family: var(--display); font-weight: 700; color: var(--uc-cor-texto); background: var(--uc-cor); box-shadow: 0 0 0 2px var(--uc-cor-texto); }
.uc-identidade { flex: 1; min-width: 0; }
.uc-linha-titulo { display: flex; align-items: center; gap: var(--s2); }
/* o h2 global fixa 'opsz' 72 (desenho de display); a 17px o eixo óptico volta ao automático */
.uc-titulo-painel { margin: 0; font-family: var(--display); font-size: 1.05rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; color: inherit; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-variation-settings: normal; font-optical-sizing: auto; }
.uc-subtitulo { margin: 2px 0 0; display: flex; align-items: center; gap: 6px; font-size: .78rem; opacity: .92; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uc-ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--ok-bg); flex-shrink: 0; }
.uc-fora-do-horario .uc-ponto { background: var(--lilas); }
.uc-chip-demo { font-family: var(--display); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 999px; background: var(--atencao-bg); color: var(--atencao); }
.uc-acoes-cabecalho { position: relative; display: flex; gap: 2px; }
.uc-botao-icone { width: 40px; height: 40px; padding: 8px; border: 0; border-radius: 50%; background: transparent; color: inherit; display: inline-flex; align-items: center; justify-content: center; }
.uc-botao-icone:hover { background: color-mix(in srgb, currentColor 14%, transparent); }
.uc-raiz[data-estilo="reto"] .uc-botao-icone { border-radius: 0; }
.uc-menu { position: absolute; top: 44px; right: 0; min-width: 200px; padding: var(--s1); border: 1px solid var(--uc-linha); border-radius: var(--raio); background: var(--uc-fundo); color: var(--uc-texto); box-shadow: var(--sombra-g); z-index: 2; }
.uc-menu[hidden] { display: none; }
.uc-menu-item { display: block; width: 100%; padding: .55rem .75rem; border: 0; border-radius: var(--uc-raio-m); background: transparent; text-align: left; font-size: .92rem; }
.uc-menu-item:hover, .uc-menu-item:focus-visible { background: var(--uc-fundo-2); outline-offset: -2px; }

/* faixa de estado */
.uc-faixa { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); align-items: center; padding: var(--s2) var(--s4); font-size: .85rem; border-bottom: 1px solid var(--uc-linha); }
.uc-faixa[hidden] { display: none; }
.uc-faixa-erro { background: var(--erro-bg); color: var(--erro); }
.uc-faixa-aviso { background: var(--atencao-bg); color: var(--atencao); }
.uc-faixa-ok { background: var(--ok-bg); color: var(--ok); }
.uc-faixa a { color: inherit; font-weight: 600; }

/* lista */
.uc-lista { position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--s4); scroll-padding-bottom: var(--s4); }
.uc-mensagens { display: flex; flex-direction: column; gap: var(--s3); }
.uc-ver-anteriores { display: block; margin: 0 auto var(--s3); padding: .4rem .9rem; border: 1px solid var(--uc-linha-forte); border-radius: 999px; background: var(--uc-fundo); font-size: .82rem; color: var(--uc-texto-2); }
.uc-ver-anteriores[hidden] { display: none; }
.uc-dia { display: flex; align-items: center; gap: var(--s3); margin: var(--s2) 0; font-size: .74rem; color: var(--uc-texto-3); text-transform: uppercase; letter-spacing: .06em; font-family: var(--display); font-weight: 650; }
.uc-dia::before, .uc-dia::after { content: ''; flex: 1; height: 1px; background: var(--uc-linha); }
.uc-sistema { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--s2) var(--s3); margin: var(--s1) 0; padding: var(--s2) var(--s3); border-radius: var(--raio); font-size: .82rem; color: var(--uc-texto-2); text-align: center; }
.uc-sistema-separador { padding: 0; color: var(--uc-texto-3); font-family: var(--display); font-weight: 650; font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; }
.uc-sistema-separador::before, .uc-sistema-separador::after { content: ''; flex: 1; height: 1px; background: var(--uc-linha-forte); }
.uc-sistema-erro { background: var(--erro-bg); color: var(--erro); }
.uc-sistema-aviso { background: var(--atencao-bg); color: var(--atencao); }
.uc-sistema-demo { background: var(--uc-fundo-2); color: var(--uc-texto-2); }

/* mensagens */
.uc-msg { display: flex; gap: var(--s2); max-width: 100%; }
.uc-msg.uc-continuacao { margin-top: calc(-1 * var(--s3) + 4px); }
.uc-visitante { flex-direction: column; align-items: flex-end; margin-left: 15%; }
.uc-agente { align-items: flex-end; margin-right: 10%; }
.uc-avatar-slot { width: 28px; flex-shrink: 0; }
.uc-avatar-msg { width: 28px; height: 28px; }
.uc-corpo { min-width: 0; flex: 1; }
.uc-bolha { position: relative; padding: .6rem .85rem; border-radius: var(--uc-raio-bolha); font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere; }
.uc-visitante .uc-bolha { background: var(--uc-bolha-visitante); color: var(--uc-bolha-visitante-texto); border-bottom-right-radius: var(--uc-raio-p); white-space: pre-wrap; max-width: 100%; }
.uc-visitante.uc-nao-ultima .uc-bolha { border-bottom-right-radius: var(--uc-raio-p); border-top-right-radius: var(--uc-raio-p); }
.uc-agente .uc-bolha { background: var(--uc-bolha-agente); color: var(--uc-texto); border-bottom-left-radius: var(--uc-raio-p); }
.uc-agente.uc-nao-ultima .uc-bolha { border-bottom-left-radius: var(--uc-raio-p); border-top-left-radius: var(--uc-raio-p); }
.uc-raiz[data-estilo="reto"] .uc-bolha { border-radius: 4px; border: 1px solid var(--uc-linha-forte); }
/* .88 é o mínimo que mantém branco sobre a violeta esmaecida em 4,6:1 (.7 caía a 3,3:1); o relógio em .uc-meta é o sinal principal */
.uc-visitante[data-estado="enviando"] .uc-bolha { opacity: .88; }
.uc-visitante[data-estado="nao-enviada"] .uc-bolha { outline: 1px solid var(--uc-erro); outline-offset: -1px; }
.uc-recebendo .uc-bolha { outline: 1px dashed var(--uc-linha-forte); outline-offset: 2px; }
/* caret na tinta, não na cor da marca: com `cor` clara ele sumia (1,05:1) */
.uc-recebendo .uc-bolha::after { content: '▍'; display: inline; margin-left: 1px; color: var(--uc-texto); }
.uc-raiz[data-tema="escuro"] .uc-recebendo .uc-bolha::after { color: var(--lilas); }
.uc-incompleta { font-size: .78rem; color: var(--uc-texto-3); font-style: italic; }
.uc-meta { display: flex; align-items: center; gap: var(--s2); margin-top: 3px; min-height: 20px; font-size: .72rem; color: var(--uc-texto-3); }
.uc-visitante .uc-meta { justify-content: flex-end; }
.uc-hora { font-variant-numeric: tabular-nums; }
.uc-hora-oculta { opacity: 0; transition: opacity var(--rapido); }
.uc-msg:hover .uc-hora-oculta, .uc-msg:focus-within .uc-hora-oculta { opacity: 1; }
.uc-check, .uc-relogio { display: inline-flex; color: var(--uc-texto-3); }
.uc-falha { color: var(--uc-erro); }
.uc-reenviar { position: relative; padding: .25rem .7rem; border: 1px solid currentColor; border-radius: 999px; background: transparent; font-size: .76rem; font-weight: 600; color: var(--uc-link); }
.uc-reenviar:disabled { opacity: .5; cursor: default; }
.uc-sistema-erro .uc-reenviar { color: var(--erro); }
/* alvo de toque de 44px sem mudar o visual (WCAG 2.5.8) */
.uc-reenviar::before, .uc-avaliar::before { content: ''; position: absolute; inset: -8px; }
.uc-raiz[data-estilo="reto"] .uc-reenviar, .uc-raiz[data-estilo="reto"] .uc-sugestao, .uc-raiz[data-estilo="reto"] .uc-botao-mini { border-radius: 4px; }

/* markdown dentro da bolha */
.uc-md p { margin: 0; }
.uc-md p + p, .uc-md p + ul, .uc-md p + ol, .uc-md ul + p, .uc-md ol + p, .uc-md pre + p, .uc-md p + pre, .uc-md blockquote + p, .uc-md p + blockquote { margin-top: .6em; }
.uc-md .uc-titulo { font-family: var(--display); font-weight: 650; font-size: 1.02rem; letter-spacing: -0.01em; margin-top: .6em; }
.uc-md .uc-titulo:first-child { margin-top: 0; }
.uc-md strong { font-weight: 600; }
.uc-md ul, .uc-md ol { margin: .4em 0 0; padding-left: 1.3em; }
.uc-md li + li { margin-top: .2em; }
.uc-md code { font-family: var(--mono); font-size: .88em; padding: .1em .35em; border-radius: 4px; background: color-mix(in srgb, var(--uc-texto) 8%, transparent); }
.uc-md pre { margin: .5em 0 0; padding: .6rem .75rem; border-radius: var(--uc-raio-m); background: var(--campo); color: var(--campo-texto); overflow-x: auto; font-size: .82rem; line-height: 1.45; }
.uc-md pre code { padding: 0; background: transparent; font-size: inherit; }
.uc-md blockquote { margin: .5em 0 0; padding: .2em .8em; border-left: 3px solid var(--uc-linha-forte); color: var(--uc-texto-2); }
.uc-md a { color: var(--uc-link); }

/* fontes consultadas */
.uc-fontes { margin-top: var(--s2); font-size: .76rem; color: var(--uc-texto-3); }
.uc-fontes summary { cursor: pointer; font-weight: 600; display: inline-flex; align-items: center; min-height: 24px; padding: 3px 4px; margin-left: -4px; width: fit-content; }
.uc-fontes ol { margin: var(--s1) 0 0; padding-left: 1.3em; }
.uc-fontes li { margin-top: 2px; }
.uc-fontes strong { font-weight: 600; color: var(--uc-texto-2); }
.uc-fonte-trecho { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }

/* avaliação */
.uc-avaliar { position: relative; width: 28px; height: 28px; padding: 5px; border: 0; border-radius: 50%; background: transparent; color: var(--uc-texto-3); display: inline-flex; align-items: center; justify-content: center; opacity: 0; transition: opacity var(--rapido), color var(--rapido), background-color var(--rapido); }
.uc-msg:hover .uc-avaliar, .uc-msg:focus-within .uc-avaliar, .uc-avaliar[aria-pressed="true"] { opacity: 1; }
.uc-avaliar:hover { background: var(--uc-fundo-2); color: var(--uc-texto); }
.uc-avaliar[aria-pressed="true"] { color: var(--uc-link); }
.uc-avaliar[aria-pressed="true"] .uc-icone-mini { fill: currentColor; fill-opacity: .18; }
.uc-obrigado { font-size: .74rem; color: var(--uc-ok); }
.uc-comentario { display: flex; gap: var(--s2); margin-top: var(--s2); }
.uc-comentario-campo { flex: 1; min-width: 0; padding: .4rem .6rem; border: 1px solid var(--uc-linha-forte); border-radius: var(--uc-raio-m); background: var(--uc-fundo); color: var(--uc-texto); font: inherit; font-size: .88rem; }

/* digitando */
.uc-digitando { display: inline-flex; gap: 4px; padding: .7rem .85rem; background: var(--uc-bolha-agente); border-radius: var(--uc-raio-bolha); border-bottom-left-radius: var(--uc-raio-p); }
.uc-digitando i { width: 6px; height: 6px; border-radius: 50%; background: var(--uc-texto-3); display: block; }

/* tela vazia */
.uc-sugestoes, .uc-opcoes { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s1); }
.uc-opcoes { margin-top: var(--s2); }
.uc-sugestao { min-height: 36px; padding: .4rem .9rem; border: 1px solid var(--uc-linha-forte); border-radius: 999px; background: var(--uc-fundo); color: var(--uc-texto); font-family: var(--display); font-weight: 600; font-size: .86rem; letter-spacing: -0.01em; text-align: left; transition: background-color var(--rapido), border-color var(--rapido), color var(--rapido); }
.uc-sugestao:hover { background: var(--uc-sugestao-hover); border-color: var(--uc-foco); color: var(--uc-texto); }
.uc-sugestao:disabled { opacity: .5; cursor: default; }
.uc-links-wrap { font-size: .82rem; color: var(--uc-texto-3); }
.uc-links-titulo { display: block; font-family: var(--display); font-weight: 650; font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.uc-links-uteis { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: var(--s1) var(--s3); }

/* ir ao fim: sticky DENTRO da lista — acompanha a rolagem e nunca cobre o
   compositor, o pré-chat ou a confirmação, seja qual for a altura deles */
.uc-ir-ao-fim { position: sticky; bottom: var(--s2); display: flex; width: fit-content; margin: var(--s2) auto 0; align-items: center; gap: 6px; padding: .35rem .8rem .35rem .6rem; border: 0; border-radius: 999px; background: var(--uc-cor); color: var(--uc-cor-texto); font-size: .8rem; font-weight: 600; box-shadow: var(--sombra); z-index: 1; }
.uc-ir-ao-fim .uc-icone { width: 16px; height: 16px; }
.uc-ir-ao-fim[hidden] { display: none; }

/* confirmação e avaliação final */
.uc-confirmacao { padding: var(--s3) var(--s4); border-top: 1px solid var(--uc-linha); background: var(--uc-fundo-2); font-size: .9rem; }
.uc-confirmacao[hidden] { display: none; }
.uc-confirmacao p { margin: 0 0 var(--s2); }
.uc-confirmacao-acoes { display: flex; justify-content: flex-end; gap: var(--s2); margin-top: var(--s2); }
.uc-notas { display: flex; gap: var(--s1); margin-bottom: var(--s2); }
.uc-nota { width: 40px; height: 40px; border: 1px solid var(--uc-linha-forte); border-radius: 50%; background: var(--uc-fundo); font-family: var(--display); font-weight: 650; }
.uc-nota.uc-nota-ativa, .uc-nota[aria-pressed="true"] { background: var(--uc-cor); color: var(--uc-cor-texto); border-color: var(--uc-cor); }
.uc-comentario-final { width: 100%; padding: .5rem .7rem; border: 1px solid var(--uc-linha-forte); border-radius: var(--raio); background: var(--uc-fundo); color: var(--uc-texto); font: inherit; font-size: .9rem; resize: vertical; }
.uc-botao-mini { min-height: 36px; padding: .4rem .9rem; border: 1px solid var(--uc-linha-forte); border-radius: 999px; background: var(--uc-fundo); color: var(--uc-texto); font-family: var(--display); font-weight: 650; font-size: .85rem; }
.uc-botao-mini.uc-primario { background: var(--uc-cor); color: var(--uc-cor-texto); border-color: var(--uc-cor); }

/* pré-chat */
.uc-prechat { padding: var(--s3) var(--s4); border-top: 1px solid var(--uc-linha); background: var(--uc-fundo-2); }
.uc-prechat[hidden] { display: none; }
.uc-prechat-texto { margin: 0 0 var(--s3); font-size: .92rem; }
.uc-prechat-campo { margin-bottom: var(--s3); }
.uc-prechat-campo label { display: block; font-size: .8rem; font-weight: 600; margin-bottom: 4px; }
.uc-prechat-campo input, .uc-prechat-campo select { width: 100%; min-height: 40px; padding: .45rem .7rem; border: 1px solid var(--uc-linha-forte); border-radius: var(--raio); background: var(--uc-fundo); color: var(--uc-texto); font: inherit; font-size: 16px; }
.uc-prechat-campo input:focus, .uc-prechat-campo select:focus { outline: none; border-color: var(--uc-foco); box-shadow: 0 0 0 3px color-mix(in srgb, var(--uc-foco) 18%, transparent); }
.uc-prechat-campo.uc-invalido input, .uc-prechat-campo.uc-invalido select { border-color: var(--uc-erro); }
.uc-prechat-erro { display: block; min-height: 1em; margin-top: 3px; font-size: .78rem; color: var(--uc-erro); }
.uc-prechat-acoes { display: flex; gap: var(--s2); justify-content: flex-end; }

/* compositor */
.uc-compositor { display: flex; align-items: flex-end; gap: var(--s2); padding: var(--s3) var(--s3) var(--s3) var(--s4); border-top: 1px solid var(--uc-linha); background: var(--uc-fundo); }
.uc-compositor[hidden] { display: none; }
.uc-campo { position: relative; flex: 1; min-width: 0; }
.uc-textarea { display: block; width: 100%; max-height: 180px; padding: .55rem .75rem; border: 1px solid var(--uc-linha-forte); border-radius: var(--raio); background: var(--uc-fundo); color: var(--uc-texto); font: inherit; font-size: 16px; line-height: 1.4; resize: none; overflow-y: auto; }
.uc-textarea:focus { outline: none; border-color: var(--uc-foco); box-shadow: 0 0 0 3px color-mix(in srgb, var(--uc-foco) 18%, transparent); }
.uc-textarea:disabled { opacity: .6; }
.uc-compositor.uc-bloqueado .uc-textarea { background: var(--uc-fundo-2); }
/* placeholder na mesma cor dos textos terciários (5,6:1 sobre branco); o padrão do navegador fica em 3,4:1 */
.uc-textarea::placeholder, .uc-prechat-campo input::placeholder, .uc-comentario-campo::placeholder, .uc-comentario-final::placeholder { color: var(--uc-texto-3); opacity: 1; }
.uc-bloqueio { display: block; margin: 0 0 4px 2px; font-size: .78rem; color: var(--uc-texto-2); font-variant-numeric: tabular-nums; }
.uc-contador { position: absolute; right: 8px; bottom: -16px; font-size: .68rem; color: var(--uc-texto-3); font-variant-numeric: tabular-nums; }
.uc-contador.uc-excedeu { color: var(--uc-erro); font-weight: 600; }
.uc-enviar { width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 50%; background: var(--uc-cor); color: var(--uc-cor-texto); display: inline-flex; align-items: center; justify-content: center; transition: opacity var(--rapido), transform var(--rapido) var(--ease-out); }
.uc-enviar:disabled { opacity: .4; cursor: default; }
.uc-enviar:not(:disabled):active { transform: scale(.94); }
.uc-raiz[data-estilo="reto"] .uc-enviar { border-radius: 4px; }
.uc-compositor[aria-busy="true"] .uc-enviar { opacity: .4; }

/* rodapé */
.uc-rodape { display: flex; justify-content: center; gap: var(--s2); padding: 6px var(--s4) 8px; font-size: .72rem; color: var(--uc-texto-3); background: var(--uc-fundo); }
.uc-rodape[hidden] { display: none; }
.uc-rodape-link { color: inherit; text-decoration: none; }
.uc-rodape-link:hover { text-decoration: underline; }
.uc-rodape-link strong { font-weight: 600; }

/* ── modo página (chat.html) ──────────────────────────── */
.uc-raiz[data-pagina] .uc-painel { position: static; width: 100%; max-width: none; height: 100dvh; border: 0; border-radius: 0; box-shadow: none; }
.uc-raiz[data-pagina] .uc-lancador, .uc-raiz[data-pagina] .uc-previa { display: none; }
#utor-chat-pagina { min-height: 100dvh; }

/* ── mobile: tela cheia ───────────────────────────────── */
@media (max-width: 720px) {
  .uc-raiz:not([data-pagina]) .uc-painel { position: fixed; inset: 0; width: auto; max-width: none; height: 100vh; height: var(--uc-altura, 100dvh); max-height: none; border: 0; border-radius: 0; padding-bottom: env(safe-area-inset-bottom); }
  .uc-raiz.uc-aberto:not([data-pagina]) .uc-lancador { display: none; }
  .uc-raiz.uc-aberto .uc-fechar { display: inline-flex; }
  .uc-visitante { margin-left: 10%; }
  .uc-agente { margin-right: 6%; }
  .uc-menu { right: 4px; }
}
@media (max-width: 720px) and (max-height: 500px) {
  .uc-cabecalho { padding-top: 6px; padding-bottom: 6px; }
  .uc-avatar { width: 28px; height: 28px; }
  .uc-subtitulo { display: none; }
}
@media (max-width: 400px) {
  /* mesma força de `.uc-raiz[data-posicao="esquerda"] .uc-previa`, senão o balão à esquerda fica encolhido e sem raio */
  .uc-raiz .uc-previa, .uc-raiz[data-posicao="esquerda"] .uc-previa { left: 0; right: 0; width: auto; bottom: calc(84px + env(safe-area-inset-bottom)); border-radius: 0; border-left: 0; border-right: 0; }
}
html.utor-chat-aberto { overflow: hidden; }

/* ── toque, movimento e contraste ─────────────────────── */
@media (hover: none) {
  .uc-lancador:hover { transform: none; }
  .uc-avaliar, .uc-hora-oculta { opacity: 1; }
  /* no toque, pílulas e botões-mini com os 44px inteiros */
  .uc-sugestao, .uc-botao-mini { min-height: 44px; }
  .uc-fontes summary { min-height: 32px; padding: 6px 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .uc-raiz *, .uc-raiz *::before, .uc-raiz *::after { animation: none !important; transition: none !important; }
  .uc-recebendo .uc-bolha::after { animation: none; }
  .uc-digitando i { opacity: .7; }
}
@media (prefers-contrast: more) {
  .uc-painel, .uc-previa, .uc-menu { border-width: 2px; border-color: var(--uc-texto); }
  .uc-bolha, .uc-sugestao, .uc-textarea, .uc-botao-mini { border: 2px solid var(--uc-texto); }
  .uc-botao-icone:hover { background: color-mix(in srgb, currentColor 30%, transparent); }
  .uc-subtitulo { opacity: 1; }
}
