/* Assistente Virtual IA — Fase 2 a 4.6, reposicionado na correção pós-deploy
   de 2026-08-20. Usa os tokens de cor já definidos pelo próprio site
   (assets/a1-overrides.css :root) — nenhuma cor nova foi inventada.

   Correção pós-deploy — "Fale connosco" (.public-contact-widget) deixou de
   ser a aba vertical na borda direita (top:48%): passou a botão horizontal
   fixo no canto inferior direito, em TODAS as resoluções (antes só
   acontecia em mobile/tablet). Este widget empilha sempre por cima dele —
   mesmo padrão já usado em mobile desde a Fase 4.6, agora aplicado também
   ao desktop. Offsets confirmados por medição real no browser
   (getBoundingClientRect), não por cálculo teórico. */

.assistant-widget{position:fixed;z-index:70;right:24px;bottom:76px;display:flex;flex-direction:column;align-items:flex-end;font-family:inherit}

.assistant-trigger{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border:0;border-radius:50px;background:var(--navy,#071a34);color:#fff;font-weight:800;font-size:14px;box-shadow:0 10px 28px rgba(7,26,52,.22);cursor:pointer;transition:background .15s ease,transform .15s ease}
.assistant-trigger:hover{background:var(--navy-2,#0c2d55);transform:translateY(-1px)}
.assistant-trigger__icon{font-size:17px;line-height:1}

/* Fase 4.6 — botão e painel deixam de parecer dois elementos: o botão
   desaparece por completo enquanto o painel está aberto (ver JS), o painel
   nasce a partir do mesmo canto, sem intervalo visual entre os dois.
   Correção pós-deploy — sem a aba vertical do "Fale connosco" a meia altura,
   já não é preciso o afastamento extra da borda direita que o desktop
   exigia (right:44px); o painel abre sempre a partir de right:0, tanto para
   cima (já não colide com nada por baixo) como para os lados. */
.assistant-panel{position:absolute;right:0;bottom:0;width:340px;max-width:calc(100vw - 32px);max-height:min(70vh,560px);display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:var(--paper,#fff);box-shadow:0 20px 48px rgba(7,26,52,.28)}
.assistant-panel[hidden]{display:none}

.assistant-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--navy,#071a34);color:#fff}
.assistant-panel__header-info{display:flex;align-items:center;gap:8px;min-width:0}
.assistant-panel__header-dot{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#3ecf6e;box-shadow:0 0 0 3px rgba(62,207,110,.25)}
.assistant-panel__header strong{font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.assistant-panel__close{border:0;background:transparent;color:#fff;font-size:17px;line-height:1;cursor:pointer;padding:4px;opacity:.85}
.assistant-panel__close:hover{opacity:1}

.assistant-panel__body{flex:1 1 auto;overflow-y:auto;min-height:160px;max-height:340px;display:flex;flex-direction:column;gap:10px;padding:16px 16px 8px}
.assistant-message{margin:0;max-width:86%;padding:9px 13px;font-size:13.5px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.assistant-message--bot{align-self:flex-start;background:var(--soft,#f5f7fa);color:var(--ink,#142033);border-radius:14px 14px 14px 3px}
.assistant-message--user{align-self:flex-end;background:var(--blue,#2e7ecb);color:#fff;border-radius:14px 14px 3px 14px}

.assistant-panel__quick{display:flex;flex-wrap:wrap;gap:6px;padding:2px 16px 10px}
.assistant-panel__quick button{padding:7px 12px;border:1px solid var(--line,rgba(7,26,52,.11));border-radius:20px;background:#fff;color:var(--navy,#071a34);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease}
.assistant-panel__quick button:hover{background:var(--soft,#f5f7fa)}

/* CTA persistente ("Quero ser contactado") — fica sempre acessível, mesmo depois
   de as sugestões iniciais desaparecerem (secção 5 da Fase 4.6), mas discreto:
   uma única linha, não uma parede de opções. */
.assistant-panel__cta{margin:0 16px 10px;padding:9px 12px;border:1px dashed var(--gold,#d89a28);border-radius:10px;background:#fffaf0;color:var(--navy,#071a34);font-size:12.5px;font-weight:700;text-align:center;cursor:pointer}
.assistant-panel__cta:hover{background:#fff3dc}
.assistant-panel__cta[hidden]{display:none}

/* Passos do fluxo de captação (nome/telefone/email), como mensagens da própria conversa. */
.assistant-message--flow-actions{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start;max-width:100%;background:transparent;padding:0}
.assistant-message--flow-actions button{padding:7px 13px;border:1px solid var(--line,rgba(7,26,52,.11));border-radius:20px;background:#fff;color:var(--navy,#071a34);font-size:12px;font-weight:700;cursor:pointer}
.assistant-message--flow-actions button:first-child{border-color:var(--gold,#d89a28);background:var(--gold,#d89a28);color:#111}
.assistant-message--flow-actions button:hover{opacity:.9}
.assistant-message--flow-actions button:disabled{opacity:.5;cursor:not-allowed}

/* Cartão de confirmação — visualmente distinto de uma bolha de conversa normal. */
.assistant-lead-card{align-self:stretch;max-width:100%;margin:0;padding:12px 14px;border:1px solid var(--line,rgba(7,26,52,.14));border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(7,26,52,.06)}
.assistant-lead-card__title{margin:0 0 8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted,#637083)}
.assistant-lead-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:13px}
.assistant-lead-card dt{color:var(--muted,#637083);font-weight:600}
.assistant-lead-card dd{margin:0;color:var(--ink,#142033);overflow-wrap:anywhere}

/* AI_ASSISTANT — Fase 5.1 (secções 9/10). Cartões de pesquisa de stock — mesmos
   tokens de cor já usados no resto do widget (--navy/--gold/--line/--muted), só
   dimensionados para a largura estreita do painel — nunca uma cópia visual de
   outro produto. Não mexe em nenhuma regra de posição/tamanho do widget
   (.assistant-widget/.assistant-trigger/.assistant-panel — correções anteriores). */
.assistant-stock-results{display:flex;flex-direction:column;gap:8px;align-self:stretch;max-width:100%;background:transparent;padding:0}
.assistant-stock-card{display:flex;gap:10px;align-self:stretch;max-width:100%;padding:8px;border:1px solid var(--line,rgba(7,26,52,.14));border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(7,26,52,.06);text-decoration:none;color:inherit}
.assistant-stock-card:hover{border-color:var(--gold,#d89a28)}
.assistant-stock-card__image{width:84px;height:64px;flex:0 0 auto;border-radius:8px;object-fit:cover;background:var(--soft,#f5f7fa)}
.assistant-stock-card__body{display:flex;min-width:0;flex-direction:column;gap:2px}
.assistant-stock-card__title{font-size:13px;font-weight:800;color:var(--navy,#071a34);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.assistant-stock-card__meta{font-size:11.5px;color:var(--muted,#637083);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.assistant-stock-card__price{font-size:13px;font-weight:800;color:var(--navy,#071a34)}
.assistant-stock-card__price s{margin-right:6px;font-weight:600;color:var(--muted,#637083)}
.assistant-stock-more{align-self:flex-start;padding:7px 13px;border:1px solid var(--gold,#d89a28);border-radius:20px;background:#fffaf0;color:var(--navy,#071a34);font-size:12px;font-weight:700;text-decoration:none}
.assistant-stock-more:hover{background:#fff3dc}

.assistant-consent{background:transparent!important;padding:0!important;box-shadow:none!important;border:0!important}
.assistant-consent label{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.4;color:var(--ink,#142033)}
.assistant-consent__checkbox{margin-top:2px;flex:0 0 auto}
.assistant-consent a{color:var(--blue,#2e7ecb);font-weight:700}

.assistant-panel__form{display:flex;align-items:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line,rgba(7,26,52,.11))}
.assistant-panel__form textarea{flex:1 1 auto;min-width:0;max-height:88px;padding:10px 12px;border:1px solid var(--line,rgba(7,26,52,.11));border-radius:10px;font:inherit;font-size:13.5px;resize:none;line-height:1.4}
.assistant-panel__form textarea:disabled{opacity:.6}
.assistant-panel__form button{flex:0 0 auto;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--gold,#d89a28);color:#111;font-weight:800;font-size:15px;cursor:pointer}
.assistant-panel__form button:hover{opacity:.92}

.assistant-sr-only{position:absolute!important;left:-10000px!important}

/* Ficha de viatura: a barra sticky (.vehicle-sticky, vehicle-detail.css) ocupa
   toda a largura no fundo do ecrã em qualquer resolução — "Fale connosco"
   (vehicle-detail.css) já sobe para lhe dar espaço; este widget continua
   sempre 52px acima dele (altura do botão + intervalo, reduzidos na correção
   de tamanho de 2026-08-20), em qualquer estado. */
body.vehicle-page-active .assistant-widget{bottom:160px}

@media(max-width:900px){
    /* "Fale connosco" mobile fica em right:14px;bottom:14px (~44px de altura) —
       este widget empilha por cima, com 8px de intervalo. Valor confirmado
       por medição real no browser (getBoundingClientRect), não teórico. */
    .assistant-widget{right:14px;bottom:66px}
    body.vehicle-page-active .assistant-widget{bottom:148px}
}

@media(max-width:430px){
    .assistant-panel{width:calc(100vw - 28px)}
    .assistant-panel__body{max-height:42vh}
    .assistant-trigger span:last-child{font-size:13px}
}
