/* Box ai — busca inteligente (front). Mobile-first, rem, tokens com fallback. */
.ai-search-root { --ai-accent: var(--bs-primary, #1f2937); --ai-surface: var(--bs-body-bg, #fff); --ai-ink: var(--bs-body-color, #1a1a1a); }

/* Botão flutuante na base do site */
.ai-search-fab { position: fixed; right: 1rem; bottom: 1rem; z-index: 1040; display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.7rem 1.1rem; border: 0; border-radius: 10rem; background: var(--ai-accent); color: #fff; font-size: 0.9rem; font-weight: 600; cursor: pointer; box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.25); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.ai-search-fab:hover { transform: translateY(-2px); box-shadow: 0 0.6rem 1.5rem rgba(0, 0, 0, 0.3); }
.ai-search-fab__icon { display: inline-flex; width: 1.15rem; height: 1.15rem; }
.ai-search-fab__icon svg { width: 100%; height: 100%; }

/* Painel — base comum */
.ai-search { display: none; }
.ai-search.on { display: block; }
.ai-search__panel { position: relative; background: var(--ai-surface); color: var(--ai-ink); border-radius: 1rem; padding: 1.25rem; box-shadow: 0 0.75rem 2.5rem rgba(0, 0, 0, 0.18); }
.ai-search__close { position: absolute; top: 0.5rem; right: 0.65rem; border: 0; background: none; color: inherit; font-size: 1.6rem; line-height: 1; cursor: pointer; opacity: 0.55; }
.ai-search__close:hover { opacity: 1; }
.ai-search__head { display: flex; gap: 0.9rem; align-items: center; margin-bottom: 1rem; }
.ai-search__image { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 0.75rem; flex-shrink: 0; }
.ai-search__title { margin: 0; font-size: 1.15rem; }
.ai-search__text { margin: 0.25rem 0 0; font-size: 0.9rem; opacity: 0.8; }

/* Campo no formato dos chats de LLM */
.ai-search__form { display: flex; align-items: center; gap: 0.5rem; padding: 0.35rem 0.35rem 0.35rem 1rem; border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 1.6rem; background: var(--ai-surface); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06) inset; }
.ai-search__form:focus-within { border-color: var(--ai-accent); }
.ai-search__input { flex: 1; border: 0; outline: none; background: none; color: inherit; font-size: 1rem; min-width: 0; }
.ai-search__send, .ai-search__stop { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border: 0; border-radius: 50%; background: var(--ai-accent); color: #fff; cursor: pointer; flex-shrink: 0; }
.ai-search__send svg, .ai-search__stop svg { width: 1.1rem; height: 1.1rem; }
.ai-search__stop { display: none; background: #b3261e; }
.ai-search-root.running .ai-search__stop { display: inline-flex; }
.ai-search-root.running .ai-search__send { display: none; }

/* Resposta */
.ai-search__status { margin: 0.6rem 0 0; font-size: 0.8rem; opacity: 0.7; min-height: 1rem; }
.ai-search__answer { display: none; margin-top: 0.5rem; padding: 0.9rem 1rem; border-radius: 0.9rem; background: rgba(0, 0, 0, 0.045); font-size: 0.95rem; line-height: 1.55; white-space: normal; max-height: 55vh; overflow-y: auto; }
.ai-search__answer.has-content { display: block; }
.ai-search__answer.typing { white-space: pre-wrap; }
.ai-search__answer p { margin: 0 0 0.6rem; }
.ai-search__answer p:last-child { margin-bottom: 0; }
.ai-search__answer a { color: var(--ai-accent); text-decoration: underline; }
.ai-search__sources { display: none; margin-top: 0.75rem; }
.ai-search__sources.has-content { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.ai-search__sources::before { content: attr(data-label) ':'; font-size: 0.8rem; font-weight: 700; opacity: 0.7; }
.ai-search__source { font-size: 0.8rem; padding: 0.25rem 0.7rem; border-radius: 10rem; background: rgba(0, 0, 0, 0.07); color: inherit; text-decoration: none; }
.ai-search__source:hover { background: var(--ai-accent); color: #fff; }
.ai-search__disclaimer { margin: 0.75rem 0 0; font-size: 0.7rem; opacity: 0.55; }

/* Modo inline: abre no lugar onde a chamada foi inserida */
.ai-search--inline { margin: 1rem 0; }

/* Modo overlay: flutua sobre o site com blur por baixo */
.ai-search--overlay { position: fixed; inset: 0; z-index: 1050; }
.ai-search--overlay.on { display: flex; align-items: flex-start; justify-content: center; padding: 1rem; }
.ai-search__backdrop { position: absolute; inset: 0; background: rgba(15, 18, 25, 0.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ai-search--overlay .ai-search__panel { position: relative; z-index: 1; width: 100%; max-width: 42rem; margin-top: 8vh; max-height: 84vh; overflow-y: auto; }
body.ai-search-lock { overflow: hidden; }

@media (min-width: 768px) {
	.ai-search-fab { right: 1.5rem; bottom: 1.5rem; font-size: 1rem; }
}
