/* Assistente de IA em página própria (views/assistente.php). */

.assistente-pagina {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background: var(--bg);
    color: var(--text);
}

/* Séries e eixos dos gráficos (mesmos tons do simulador, app.css). O
   base.css não os define, e sem eles toda série saía no mesmo azul. */
body.assistente-pagina {
    --series-compra: #2a78d6; --series-aluguel: #eb6834; --series-liquidez: #1baf7a;
    --series-fgts: #eda100; --series-imovel: #e87ba4; --series-equity: #008300;
    --chart-grid: #e1e0d9; --chart-axis: #6b6a65;
}
@media (prefers-color-scheme: dark) {
    :root[data-theme="auto"] body.assistente-pagina {
        --series-compra: #3987e5; --series-aluguel: #d95926; --series-liquidez: #199e70;
        --series-fgts: #c98500; --series-imovel: #d55181; --series-equity: #008300;
        --chart-grid: #2c2c2a; --chart-axis: #a3a198;
    }
}
:root[data-theme="dark"] body.assistente-pagina {
    --series-compra: #3987e5; --series-aluguel: #d95926; --series-liquidez: #199e70;
    --series-fgts: #c98500; --series-imovel: #d55181; --series-equity: #008300;
    --chart-grid: #2c2c2a; --chart-axis: #a3a198;
}

/* Num body flex em coluna, o "margin: 0 auto" do .cabecalho o encolhia ao
   conteúdo (e centralizava); a largura cheia o deixa igual às outras páginas. */
.assistente-pagina > .cabecalho {
    /* flex:none impede o cabeçalho de encolher junto com o chat em telas
       baixas (o flex-shrink padrão fazia a altura variar). */
    flex: 0 0 auto;
    width: 100%;
}

.assistente-app {
    flex: 1;
    min-height: 0;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 18px 16px 24px;
    display: grid;
    grid-template-columns: 292px minmax(0, 1fr);
    gap: 18px;
}

.assistente-menu,
.assistente-fechar {
    display: none;
}

/* Lateral */
.assistente-lateral {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 0;
}

.assistente-novo {
    font: inherit;
    font-weight: 700;
    padding: 12px 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    color: var(--primary-ink, var(--primary));
    cursor: pointer;
    text-align: left;
}
.assistente-novo:hover,
.assistente-novo:focus-visible {
    border-color: var(--primary);
    outline: none;
}

/* Conversas anteriores */
.assistente-conversas h2 {
    margin: 4px 4px 6px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}
.assistente-conversas ul {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 38vh;
    overflow-y: auto;
}
.assistente-conversas li {
    display: flex;
    align-items: stretch;
    border-radius: 10px;
}
.assistente-conversas li.ativa,
.assistente-conversas li:hover {
    background: var(--surface-2);
}
.assistente-conversa-abrir {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 8px 10px;
    border: 0;
    background: transparent;
    color: var(--text);
    font: inherit;
    font-size: .88rem;
    text-align: left;
    cursor: pointer;
    border-radius: 10px;
}
.assistente-conversa-abrir span {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.assistente-conversa-abrir small {
    flex: none;
    color: var(--muted);
    font-size: .74rem;
}
.assistente-conversas li.ativa .assistente-conversa-abrir span {
    font-weight: 700;
}
.assistente-conversa-apagar {
    flex: none;
    width: 44px;
    min-height: 44px;
    border: 0;
    background: transparent;
    color: var(--muted);
    font-size: 1.1rem;
    cursor: pointer;
    border-radius: 10px;
    opacity: 0;
}
.assistente-conversas li:hover .assistente-conversa-apagar,
.assistente-conversas li.ativa .assistente-conversa-apagar,
.assistente-conversa-apagar:focus-visible {
    opacity: 1;
}
.assistente-conversa-apagar:hover {
    color: var(--danger);
}
.assistente-conversa-abrir:focus-visible,
.assistente-conversa-apagar:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}
@media (hover: none) {
    .assistente-conversa-apagar {
        opacity: 1;
    }
}

.assistente-simulador {
    font: inherit;
    font-weight: 700;
    padding: 11px 16px;
    border: 1px solid var(--primary);
    border-radius: 12px;
    background: transparent;
    color: var(--primary-ink, var(--primary));
    cursor: pointer;
    text-align: left;
}
.assistente-simulador:hover,
.assistente-simulador:focus-visible {
    background: var(--primary);
    color: var(--on-primary);
    outline: none;
}

.assistente-dados {
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
}
.assistente-dados summary {
    cursor: pointer;
    font-weight: 600;
}
.assistente-dados-sub {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}
.assistente-dados-sub summary {
    font-size: .9rem;
}
.assistente-dados-dica {
    margin: 8px 0 4px;
    color: var(--muted);
    font-size: .86rem;
}
.assistente-dados label {
    display: block;
    margin-top: 10px;
    font-size: .82rem;
    color: var(--muted);
}
.assistente-dados input,
.assistente-dados select,
.assistente-dados textarea {
    width: 100%;
    box-sizing: border-box;
    margin-top: 3px;
    padding: 8px 10px;
    font: inherit;
    font-size: .92rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg);
    color: var(--text);
}
.assistente-dados-linha {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.assistente-aviso {
    margin: 0;
    padding: 12px 14px;
    border: 1px dashed var(--border);
    border-radius: 12px;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.45;
}

/* Chat */
.assistente-chat {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - var(--assistente-cabecalho-h, 64px) - 42px);
    min-height: 360px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
}

.assistente-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-bottom: 1px solid var(--border);
}
.assistente-topo-texto {
    flex: 1;
    min-width: 0;
}
.assistente-topo h1 {
    margin: 0;
    font-size: 1.05rem;
}
.assistente-topo-sub {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: .8rem;
}
.assistente-saldo {
    flex: none;
    color: var(--muted);
    font-size: .78rem;
    text-align: right;
}
.assistente-saldo.baixo {
    color: var(--danger);
    font-weight: 700;
}

.assistente-log {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scroll-behavior: smooth;
    overscroll-behavior: contain;
}
@media (prefers-reduced-motion: reduce) {
    .assistente-log { scroll-behavior: auto; }
}

.assistente-boas-vindas {
    margin: auto;
    max-width: 620px;
    text-align: center;
    padding: 12px;
}
.assistente-boas-vindas h2 {
    margin: 0 0 6px;
    font-size: 1.35rem;
}
.assistente-boas-vindas p {
    margin: 0 0 18px;
    color: var(--muted);
}
.assistente-sugestoes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 8px;
    text-align: left;
}
.assistente-sugestoes button {
    font: inherit;
    font-size: .9rem;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--bg);
    color: var(--text);
    cursor: pointer;
    text-align: left;
}
.assistente-sugestoes button:hover,
.assistente-sugestoes button:focus-visible {
    border-color: var(--primary);
    outline: none;
}

.assistente-msg {
    max-width: 86%;
    padding: 10px 14px;
    border-radius: 14px;
    overflow-wrap: anywhere;
    font-size: .95rem;
    line-height: 1.55;
}
.assistente-msg p {
    margin: 0 0 8px;
}
.assistente-msg p:last-child,
.assistente-msg ul:last-child,
.assistente-msg ol:last-child {
    margin-bottom: 0;
}
.assistente-msg ul,
.assistente-msg ol {
    margin: 6px 0;
    padding-left: 20px;
}
.assistente-msg code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .88em;
    padding: 1px 4px;
    border-radius: 4px;
    background: rgba(0, 0, 0, .08);
}
.assistente-msg strong {
    font-weight: 700;
}
.assistente-usuario {
    align-self: flex-end;
    background: var(--primary);
    color: var(--on-primary);
    border-bottom-right-radius: 4px;
}
.assistente-ia {
    align-self: flex-start;
    background: var(--surface-2, #f2f2f0);
    border: 1px solid var(--border);
    border-bottom-left-radius: 4px;
}
.assistente-erro {
    align-self: flex-start;
    background: color-mix(in oklab, var(--danger) 12%, var(--surface));
    border: 1px solid color-mix(in oklab, var(--danger) 35%, var(--border));
    color: var(--danger);
}
.assistente-msg-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.assistente-msg-acoes button,
.assistente-msg-acoes a {
    font: inherit;
    font-size: .78rem;
    padding: 4px 9px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text);
    text-decoration: none;
    cursor: pointer;
}
.assistente-msg-acoes button:hover,
.assistente-msg-acoes button:focus-visible,
.assistente-msg-acoes a:hover,
.assistente-msg-acoes a:focus-visible {
    border-color: var(--primary);
    outline: none;
}
.assistente-msg-acoes .assistente-acao-sugerida {
    border-color: color-mix(in oklab, var(--primary) 55%, var(--border));
    font-weight: 600;
}
/* Próximos passos ocupam a linha toda; copiar/avaliar ficam na de baixo */
.assistente-msg-sugestoes {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}
.assistente-acao-icone {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.assistente-acao-icone svg {
    width: 15px;
    height: 15px;
    flex: none;
}
.assistente-acao-icone .assistente-acao-texto {
    white-space: nowrap;
}
@media (max-width: 600px) {
    .assistente-acao-icone {
        padding: 6px 8px;
    }
    .assistente-acao-icone .assistente-acao-texto {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}
.assistente-msg-acoes button.escolhido {
    border-color: var(--primary);
    background: color-mix(in oklab, var(--primary) 12%, var(--surface));
}
.assistente-msg-acoes button:disabled {
    opacity: .65;
    cursor: default;
}
.assistente-feedback-status {
    align-self: center;
    font-size: .75rem;
    color: var(--muted);
}
.assistente-fontes {
    margin: 8px 0 0;
    font-size: .76rem;
    line-height: 1.4;
    color: var(--muted);
}
.assistente-imoveis { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.assistente-imoveis h3 { margin: 0 0 8px; font-size: .95rem; }
.assistente-imoveis-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.assistente-imovel { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: var(--surface); }
.assistente-imovel img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.assistente-imovel > div { padding: 8px 10px 10px; display: grid; gap: 3px; }
.assistente-imovel h4 { margin: 0; font-size: .88rem; line-height: 1.3; }
.assistente-imovel h4 a { color: var(--text); text-decoration: none; }
.assistente-imovel h4 a:hover { color: var(--primary-ink); text-decoration: underline; }
.assistente-imovel-preco { margin: 1px 0 0; font-size: .86rem; font-weight: 700; }
.assistente-imovel-detalhes, .assistente-imovel-motivos { margin: 0; font-size: .76rem; color: var(--muted); }
.assistente-msg.com-grafico {
    max-width: 100%;
    width: 100%;
}
.assistente-grafico {
    margin: 14px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}
.assistente-grafico-titulo {
    margin: 0 0 6px;
    font-size: .86rem;
    font-weight: 700;
    color: var(--text);
}
.assistente-grafico-area {
    position: relative;
    height: 250px;
}
/* Uma barra empilhada só (ex.: salário bruto, custos da compra) */
.assistente-grafico-area.baixa {
    height: 120px;
}
.assistente-grafico canvas {
    max-width: 100%;
}
.assistente-grafico-dados {
    margin-top: 8px;
    font-size: .8rem;
}
.assistente-grafico-dados summary {
    color: var(--muted);
    cursor: pointer;
}
.assistente-grafico-dados table {
    width: 100%;
    margin-top: 6px;
    border-collapse: collapse;
}
.assistente-grafico-dados th,
.assistente-grafico-dados td {
    padding: 5px 7px;
    border-bottom: 1px solid var(--border);
    text-align: left;
}
.assistente-grafico-dados th {
    font-weight: 700;
}
.assistente-pensando {
    color: var(--muted);
    font-style: italic;
    animation: assistente-pulsar 1.4s ease-in-out infinite;
}
@keyframes assistente-pulsar {
    50% { opacity: .45; }
}
@media (prefers-reduced-motion: reduce) {
    .assistente-pensando { animation: none; }
}

/* Composer */
.assistente-ir-fim:hover,
.assistente-ir-fim:focus-visible {
    border-color: var(--primary);
    outline: none;
}
.assistente-ir-fim {
    align-self: center;
    margin: -4px 12px 6px;
    padding: 7px 14px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text);
    font: inherit;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .12);
}

.assistente-edicao {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 8px 14px 0;
    color: var(--muted);
    font-size: .82rem;
}
.assistente-edicao[hidden] { display: none; }
.assistente-edicao button {
    font: inherit;
    font-weight: 700;
    padding: 2px 6px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--primary-ink);
    cursor: pointer;
}
.assistente-edicao button:hover,
.assistente-edicao button:focus-visible {
    background: color-mix(in oklab, var(--primary) 12%, transparent);
    outline: none;
}

.assistente-form {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    padding: 12px;
    border-top: 1px solid var(--border);
}
.assistente-form textarea {
    flex: 1;
    resize: none;
    max-height: 180px;
    padding: 10px 12px;
    font: inherit;
    line-height: 1.45;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg);
    color: var(--text);
}
.assistente-form textarea:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 0;
}
.assistente-form button {
    font: inherit;
    font-weight: 700;
    padding: 10px 18px;
    border: none;
    border-radius: 12px;
    background: var(--primary);
    color: var(--on-primary);
    cursor: pointer;
}
.assistente-form button[disabled] {
    opacity: .55;
    cursor: progress;
}
/* Enquanto responde, o botão para a resposta */
.assistente-form button.parar {
    background: transparent;
    color: var(--text);
    border: 1px solid var(--border);
}
/* Cartão de perguntas (dados que faltam para calcular) */
.assistente-perguntas {
    display: grid;
    gap: 12px;
    margin-top: 10px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg);
    max-height: min(62vh, 560px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.assistente-pergunta label:first-child {
    display: block;
    margin-bottom: 4px;
    font-size: .88rem;
    font-weight: 600;
}
.assistente-pergunta input[type="text"],
.assistente-pergunta select {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    font: inherit;
    font-size: .92rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
}
.assistente-pergunta.invalida input[type="text"],
.assistente-pergunta.invalida select {
    border-color: var(--danger);
}
.assistente-pergunta-erro {
    margin: 4px 0 0;
    color: var(--danger);
    font-size: .78rem;
}
.assistente-pergunta-erro:empty {
    display: none;
}
.assistente-simnao {
    margin: 0;
    padding: 0;
    border: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    align-items: center;
}
.assistente-simnao legend {
    flex-basis: 100%;
    padding: 0;
    margin-bottom: 4px;
    font-size: .88rem;
    font-weight: 600;
}
.assistente-simnao label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .9rem;
    cursor: pointer;
}
.assistente-simnao input {
    flex: none;
    width: auto;
    margin: 0;
}
.assistente-pergunta.invalida .assistente-simnao legend {
    color: var(--danger);
}
.assistente-nenhum {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: .84rem;
    color: var(--muted);
    cursor: pointer;
}
.assistente-nenhum input {
    flex: none;
    width: auto;
    margin: 0;
    padding: 0;
}
.assistente-perguntas button {
    justify-self: start;
    font: inherit;
    font-weight: 700;
    padding: 9px 18px;
    border: 0;
    border-radius: 10px;
    background: var(--primary);
    color: var(--on-primary);
    cursor: pointer;
}
.assistente-perguntas.respondido {
    opacity: .7;
}
.assistente-perguntas-aviso {
    margin: 0;
    color: var(--danger);
    font-size: .84rem;
}
.assistente-perguntas-aviso:empty {
    display: none;
}
/* Confirmação única dos dados salvos (antes de abrir os campos) */
.assistente-confirmacao-lista {
    margin: 0;
    padding-left: 18px;
    display: grid;
    gap: 4px;
    font-size: .92rem;
}
.assistente-confirmacao-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.assistente-confirmacao-acoes .assistente-secundario {
    background: transparent;
    color: var(--primary-ink, var(--primary));
    border: 1px solid var(--border);
}
/* Avisos importantes que vieram dos cálculos/Jornada */
.assistente-avisos {
    margin-top: 10px;
    padding: 10px 12px;
    border: 1px solid color-mix(in oklab, var(--warning) 35%, var(--border));
    border-left: 3px solid var(--warning);
    border-radius: 10px;
    background: color-mix(in oklab, var(--warning) 8%, var(--surface));
    color: var(--text);
    font-size: .86rem;
    line-height: 1.45;
}
.assistente-avisos strong {
    display: block;
    margin-bottom: 4px;
    color: var(--warning);
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.assistente-avisos ul {
    margin: 0;
    padding-left: 18px;
}
.assistente-avisos li + li {
    margin-top: 4px;
}
/* Premissas de mercado usadas na conta */
.assistente-premissas {
    margin: 10px 0 0;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.5;
}
.assistente-premissas button {
    padding: 0;
    border: 0;
    background: none;
    color: var(--primary-ink, var(--primary));
    font: inherit;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}
.assistente-proveniencia {
    margin: 10px 0 0;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-2);
    font-size: .8rem;
    color: var(--muted);
}
.assistente-proveniencia summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--text);
}
.assistente-proveniencia summary:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.assistente-proveniencia p { margin: 6px 0 0; }
.assistente-proveniencia-alerta {
    color: var(--warning-ink, var(--warning, #8a5a00));
    font-weight: 600;
}
.assistente-proveniencia-ok {
    color: var(--success-ink, var(--success, #1f7a3f));
    font-weight: 600;
}
.assistente-proveniencia-dados {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3px 12px;
    margin: 8px 0 0;
}
.assistente-proveniencia-dados dt { color: var(--muted); }
.assistente-proveniencia-dados dd {
    margin: 0;
    color: var(--text);
    font-variant-numeric: tabular-nums;
}
@media (max-width: 460px) {
    .assistente-proveniencia-dados { grid-template-columns: 1fr; }
    .assistente-proveniencia-dados dd { margin-bottom: 4px; }
}
.assistente-dados-nota {
    font-size: .76rem;
}
.assistente-dados-status {
    min-height: 1.3em;
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .78rem;
}
.assistente-limpar-dados {
    margin-top: 4px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--danger);
    font: inherit;
    font-size: .8rem;
    text-decoration: underline;
    cursor: pointer;
}
.assistente-indisponivel-acoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 18px;
}

.assistente-tabela {
    margin: 10px 0;
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 10px;
}
.assistente-tabela table {
    width: 100%;
    border-collapse: collapse;
    font-size: .86rem;
}
.assistente-tabela th,
.assistente-tabela td {
    padding: 7px 9px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}
.assistente-tabela th {
    background: var(--surface-2);
    font-weight: 700;
}
.assistente-tabela tr:last-child td {
    border-bottom: 0;
}
.assistente-msg h3,
.assistente-msg h4,
.assistente-msg h5,
.assistente-msg h6 {
    margin: 12px 0 6px;
    font-size: .98rem;
}
.assistente-msg h3:first-child,
.assistente-msg h4:first-child {
    margin-top: 0;
}
.assistente-msg a {
    color: var(--primary-ink, var(--primary));
    text-decoration: underline;
    overflow-wrap: anywhere;
}
.assistente-interrompida {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .82rem;
    font-style: italic;
}
.assistente-dica-entrada {
    margin: -4px 14px 6px;
    color: var(--muted);
    font-size: .72rem;
    text-align: center;
}
@media (pointer: coarse) {
    .assistente-dica-entrada { display: none; }
}
.assistente-disclaimer {
    margin: 0;
    padding: 0 14px 12px;
    color: var(--muted);
    font-size: .76rem;
    text-align: center;
}
.assistente-privacidade {
    margin: 8px 0 0;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.4;
}

.assistente-venda {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.assistente-venda-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 28px;
    align-items: center;
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: 20px;
    background: radial-gradient(620px 260px at 0 0, color-mix(in oklab, var(--primary) 10%, transparent), transparent 70%), var(--surface);
}
.assistente-venda-selo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary-ink, var(--primary));
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.assistente-venda-selo::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success);
    box-shadow: 0 0 0 4px color-mix(in oklab, var(--success) 22%, transparent);
}
.assistente-venda-texto h1 {
    margin: 6px 0 10px;
    font-size: clamp(1.7rem, 3.2vw, 2.5rem);
    line-height: 1.12;
}
.assistente-venda-sub {
    margin: 0 0 12px;
    max-width: 46rem;
    color: var(--muted);
    font-size: 1.02rem;
    line-height: 1.55;
}
.assistente-venda-pergunta {
    margin: 0 0 12px;
    padding: 10px 14px;
    border-left: 3px solid var(--primary);
    border-radius: 8px;
    background: var(--surface-2);
    color: var(--text);
    font-size: .92rem;
}
.assistente-venda-lista {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.assistente-venda-lista li {
    position: relative;
    padding-left: 24px;
    color: var(--text);
    font-size: .94rem;
    line-height: 1.45;
}
.assistente-venda-lista li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: .42em;
    width: 10px;
    height: 6px;
    border-left: 3px solid var(--success);
    border-bottom: 3px solid var(--success);
    transform: rotate(-45deg);
}
.assistente-venda-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}
.assistente-venda-botao,
.assistente-venda-secundario {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 16px;
    border-radius: 12px;
    font-weight: 700;
    text-decoration: none;
}
.assistente-venda-botao {
    border: 1px solid var(--primary);
    background: var(--primary);
    color: var(--on-primary);
}
.assistente-venda-secundario {
    border: 1px solid var(--border);
    background: transparent;
    color: var(--primary-ink, var(--primary));
}
.assistente-venda-botao:hover,
.assistente-venda-botao:focus-visible,
.assistente-venda-secundario:hover,
.assistente-venda-secundario:focus-visible {
    filter: brightness(1.06);
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}
.assistente-venda-nota {
    margin: 12px 0 0;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.45;
}
.assistente-venda-preview {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: var(--surface);
    box-shadow: 0 14px 40px rgba(0, 0, 0, .08);
}
.assistente-venda-preview-rotulo {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.assistente-venda-chat {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.assistente-venda-msg {
    max-width: 92%;
    padding: 9px 12px;
    border-radius: 12px;
    font-size: .88rem;
    line-height: 1.45;
}
.assistente-venda-msg.usuario {
    align-self: flex-end;
    border-bottom-right-radius: 4px;
    background: var(--primary);
    color: var(--on-primary);
}
.assistente-venda-msg.ia {
    align-self: flex-start;
    border: 1px solid var(--border);
    border-bottom-left-radius: 4px;
    background: var(--surface-2);
}
.assistente-venda-cartoes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.assistente-venda-cartoes article {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
}
.assistente-venda-cartoes h2 {
    margin: 0 0 6px;
    font-size: 1rem;
}
.assistente-venda-cartoes p {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.45;
}
.assistente-venda-final {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 20px;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
}
.assistente-venda-final p {
    margin: 0;
    max-width: 52rem;
    font-size: .95rem;
}
.assistente-venda-final .assistente-venda-acoes {
    margin-top: 0;
}
@media (max-width: 860px) {
    .assistente-venda { padding: 12px; }
    .assistente-venda-hero { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
    .assistente-venda-cartoes { grid-template-columns: 1fr; }
    .assistente-venda-acoes .assistente-venda-botao,
    .assistente-venda-acoes .assistente-venda-secundario { flex: 1 1 100%; }
    .assistente-venda-final { flex-direction: column; align-items: flex-start; }
}

.assistente-indisponivel {
    grid-column: 1 / -1;
    max-width: 620px;
    margin: 8vh auto;
    text-align: center;
}
.assistente-indisponivel h1 {
    margin: 0 0 8px;
}
.assistente-indisponivel p {
    color: var(--muted);
}
.assistente-link {
    color: var(--primary-ink, var(--primary));
    font-weight: 700;
}

/* Convite do corretor e ficha do cliente (views/assistente.php, assets/ficha.js) */
.assistente-convite { text-align: left; }
.assistente-convite-creci { margin-top: -4px; font-weight: 600; }
.assistente-convite-itens { margin: 12px 0 18px; padding-left: 20px; display: grid; gap: 6px; line-height: 1.5; }
.assistente-convite-msg { min-height: 1.4em; font-weight: 600; }
.assistente-lateral { overflow-y: auto; }
.assistente-ficha-lista {
    margin: 8px 0 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    font-size: .9rem;
}
.assistente-ficha-lista dt { color: var(--muted); font-size: .8rem; margin-top: 6px; }
.assistente-ficha-lista dd { margin: 0; overflow-wrap: anywhere; }
.assistente-ficha-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.assistente-ficha-acoes > * { padding: 8px 12px; }
.assistente-ficha-form textarea {
    width: 100%;
    box-sizing: border-box;
    margin-top: 3px;
    padding: 8px 10px;
    font: inherit;
    font-size: .92rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--bg);
    color: var(--text);
    resize: vertical;
}
.assistente-ficha-opcoes { margin: 10px 0 0; padding: 0; border: 0; }
.assistente-ficha-opcoes legend { font-size: .82rem; color: var(--muted); }
.assistente-dados .assistente-ficha-opcoes label { display: inline-flex; align-items: center; gap: 4px; margin: 4px 10px 0 0; color: var(--text); }
.assistente-dados .assistente-ficha-opcoes input,
.assistente-dados .assistente-ficha-autorizo input { width: auto; margin: 0; }
.assistente-ficha-envio { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); display: grid; gap: 10px; }
.assistente-dados .assistente-ficha-autorizo { display: flex; gap: 8px; align-items: flex-start; margin: 0; color: var(--text); font-size: .86rem; line-height: 1.4; }
.assistente-ficha [data-ficha-whatsapp] { display: block; margin-top: 8px; text-decoration: none; }
.assistente-ficha [data-ficha-whatsapp][hidden] { display: none; }
.assistente-ficha-apagar {
    margin-top: 10px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--danger);
    font: inherit;
    font-size: .86rem;
    text-decoration: underline;
    cursor: pointer;
}

@media (max-width: 860px) {
    .assistente-app {
        grid-template-columns: 1fr;
        padding: 0;
        gap: 0;
        position: relative;
    }
    .assistente-lateral {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1300;
        width: min(86vw, 340px);
        padding: 16px;
        background: var(--bg);
        border-right: 1px solid var(--border);
        box-shadow: 0 0 40px rgba(0, 0, 0, .3);
        transform: translateX(-105%);
        transition: transform .2s ease;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .assistente-app.menu-aberto .assistente-lateral {
        transform: none;
    }
    .assistente-app.menu-aberto::before {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 1290;
        background: rgba(0, 0, 0, .4);
    }
    .assistente-menu {
        display: grid;
        place-items: center;
        flex: none;
        width: 40px;
        height: 40px;
        padding: 0;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--bg);
        color: var(--text);
        font: inherit;
        font-size: 1.1rem;
        cursor: pointer;
    }
    .assistente-fechar {
        display: grid;
        place-items: center;
        align-self: flex-end;
        width: 40px;
        height: 40px;
        padding: 0;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--surface);
        color: var(--text);
        font: inherit;
        font-size: 1.2rem;
        cursor: pointer;
    }
    .assistente-menu:hover,
    .assistente-menu:focus-visible,
    .assistente-fechar:hover,
    .assistente-fechar:focus-visible {
        border-color: var(--primary);
        outline: none;
    }
    .assistente-chat {
        height: calc(100dvh - var(--assistente-cabecalho-h, 64px));
        min-height: 0;
        border: 0;
        border-radius: 0;
    }
    .assistente-log {
        padding: 12px;
    }
    .assistente-topo {
        padding: 10px 12px;
    }
    .assistente-msg {
        max-width: 92%;
    }
    .assistente-perguntas {
        max-height: 56vh;
    }
}
@media (max-width: 860px) and (prefers-reduced-motion: reduce) {
    .assistente-lateral { transition: none; }
}

@media print {
    .assistente-lateral,
    .assistente-form,
    .assistente-disclaimer {
        display: none !important;
    }
    .assistente-pagina,
    .assistente-app {
        display: block;
    }
}
