/* ===== Quando produtor é Pro, esconde badges "PRO" repetitivos ===== */

body.usuario-pro .drawer-pro-badge-mini,
body.usuario-pro .drawer-pro-badge,
body.usuario-pro .pro-lock-badge,
body.usuario-pro .section-pro-tag,
body.usuario-pro .custos-pro-tag,
body.usuario-pro .section-link-pro {
    display: none !important;
}

/* Hero "⭐ Plano Pro" no Pro continua, é informativo do plano atual */

/* ===== Página Consultor IA ===== */

.pagina-consultor-ia {
    display: flex;
    flex-direction: column;
    /* Topo (voltar/Cafezinho/lixeira) e rodapé (input) FIXOS, só o chat rola.
       position:fixed + top/left/right tira do fluxo do .app-content (cujo
       padding-bottom somava ao 100dvh e deixava arrastar a tela toda).
       height:100dvh (e não bottom:0) faz o input subir junto com o teclado. */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 100dvh;
    z-index: 5;
    background: #FAF6EB;
    overflow: hidden;
}

.pagina-consultor-ia .form-header {
    flex-shrink: 0;
    padding: var(--gap-md) var(--gap-lg);
    /* Respeita status bar do Android (notch / câmera frontal) */
    padding-top: calc(var(--gap-md) + env(safe-area-inset-top));
    background: var(--branco);
    border-bottom: 1px solid var(--linha-fina);
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
}

.pagina-consultor-ia .form-header h2 {
    flex: 1;
    margin: 0;
    font-size: var(--fs-titulo);
    color: var(--verde-escuro);
}

.consultor-limpar {
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    padding: 8px;
    color: var(--texto-secundario);
}
.consultor-limpar:active { color: #C62828; }

#consultor-conteudo {
    flex: 1;
    min-height: 0;   /* deixa o filho flex encolher → o chat rola internamente */
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.chat-container {
    flex: 1;
    min-height: 0;   /* idem — sem isso a tela inteira cresce e rola junto */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding: var(--gap-lg);
    padding-bottom: var(--gap-md);
}

/* ===== Boas-vindas ===== */

.consultor-boas-vindas {
    text-align: center;
    padding: var(--gap-md) 0;
}

.consultor-avatar-grande {
    font-size: 64px;
    line-height: 1;
    margin-bottom: var(--gap-md);
    animation: pulseConsultor 3s ease-in-out infinite;
}
@keyframes pulseConsultor {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

.consultor-boas-vindas h3 {
    font-size: var(--fs-titulo);
    color: var(--verde-escuro);
    margin: 0 0 var(--gap-sm);
}
.consultor-boas-vindas p {
    color: var(--texto-secundario);
    font-size: var(--fs-pequeno);
    line-height: 1.5;
    margin: 0 0 var(--gap-lg);
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

.consultor-topicos-titulo {
    font-size: var(--fs-mini);
    color: var(--verde-escuro);
    font-weight: var(--peso-semi);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: var(--gap-md) 0 var(--gap-sm);
}

.consultor-topicos-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gap-sm);
}
@media (max-width: 360px) {
    .consultor-topicos-grid { grid-template-columns: 1fr; }
}

.consultor-disclaimer {
    font-size: var(--fs-mini);
    font-style: italic;
    color: var(--texto-secundario);
    background: rgba(201, 169, 97, 0.10);
    padding: 8px 12px;
    border-radius: var(--raio-sm);
    margin: 4px auto var(--gap-md) !important;
    max-width: 380px;
    line-height: 1.4;
}

.consultor-topico {
    display: flex;
    align-items: center;
    gap: var(--gap-md);
    background: var(--branco);
    border: 1px solid rgba(94, 124, 71, 0.15);
    border-left: 3px solid var(--dourado);
    border-radius: var(--raio-md);
    padding: var(--gap-md);
    text-align: left;
    cursor: pointer;
    font-size: var(--fs-pequeno);
    color: var(--texto-primario);
    transition: all var(--transicao-rapida);
    width: 100%;
}
.consultor-topico:active {
    transform: scale(0.99);
    background: rgba(201, 169, 97, 0.06);
}
.consultor-topico-icone {
    font-size: 24px;
    flex-shrink: 0;
}
.consultor-topico-texto {
    flex: 1;
    line-height: 1.4;
}

/* ===== Mensagens do chat ===== */

.chat-msg {
    display: flex;
    margin-bottom: var(--gap-md);
    align-items: flex-end;
    gap: var(--gap-sm);
}
.chat-msg-anim {
    animation: chatFadeIn 0.3s ease-out;
}
@keyframes chatFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.chat-msg-user {
    flex-direction: row-reverse;
}
.chat-msg-user .chat-msg-bolha {
    background: var(--verde-medio);
    color: var(--texto-invertido);
    border-radius: var(--raio-md) var(--raio-md) 4px var(--raio-md);
    max-width: 78%;
}

/* Avatar do Cafezinho IA (PNG conversa.png) dentro do círculo de 36px */
.chat-msg-avatar .icone-conversa { width: 26px; height: 26px; vertical-align: middle; }

.chat-msg-ai .chat-msg-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #FFF7E2, var(--dourado-claro));
    border: 2px solid var(--dourado);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}
.chat-msg-ai .chat-msg-bolha {
    background: var(--branco);
    color: var(--texto-primario);
    border-radius: var(--raio-md) var(--raio-md) var(--raio-md) 4px;
    border: 1px solid rgba(94, 124, 71, 0.1);
    max-width: 78%;
}

.chat-msg-bolha {
    padding: var(--gap-sm) var(--gap-md);
    font-size: var(--fs-pequeno);
    line-height: 1.5;
    word-wrap: break-word;
    box-shadow: var(--sombra-sutil);
}
.chat-msg-bolha strong {
    color: var(--verde-escuro);
    font-weight: var(--peso-semi);
}
.chat-msg-user .chat-msg-bolha strong {
    color: var(--dourado-claro);
}
.chat-msg-bolha em {
    font-style: italic;
    color: var(--texto-secundario);
}

/* ===== Typing dots ===== */

.typing-dots {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 0;
}
.typing-dots span {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--verde-medio);
    animation: typingBounce 1.2s ease-in-out infinite;
}
.typing-dots span:nth-child(2) { animation-delay: 0.2s; }
.typing-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes typingBounce {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }
    30% { transform: translateY(-6px); opacity: 1; }
}

/* ===== Input área ===== */

.consultor-input-wrap {
    flex-shrink: 0;
    display: flex;
    gap: var(--gap-sm);
    padding: var(--gap-sm) var(--gap-md);
    padding-bottom: calc(var(--gap-sm) + env(safe-area-inset-bottom));
    background: var(--branco);
    border-top: 1px solid var(--linha-fina);
    align-items: flex-end;
}

.consultor-input {
    flex: 1;
    background: var(--bege-papel);
    border: 1px solid rgba(94, 124, 71, 0.15);
    border-radius: var(--raio-md);
    padding: var(--gap-sm) var(--gap-md);
    font-size: var(--fs-pequeno);
    line-height: 1.4;
    color: var(--texto-primario);
    font-family: inherit;
    resize: none;
    max-height: 120px;
}
.consultor-input:focus {
    outline: none;
    border-color: var(--verde-medio);
    box-shadow: 0 0 0 3px rgba(94, 124, 71, 0.12);
}

.consultor-btn-enviar {
    width: 44px;
    height: 44px;
    background: var(--verde-medio);
    color: var(--texto-invertido);
    border: none;
    border-radius: 50%;
    font-size: 20px;
    cursor: pointer;
    flex-shrink: 0;
    transition: all var(--transicao-rapida);
}
.consultor-btn-enviar:active {
    transform: scale(0.95);
    background: var(--verde-escuro);
}
.consultor-btn-enviar:disabled {
    background: rgba(94, 124, 71, 0.3);
    cursor: not-allowed;
}

/* ===== Botão de microfone (F2) ===== */

.consultor-btn-mic {
    width: 44px;
    height: 44px;
    background: var(--bege-papel);
    color: var(--verde-escuro);
    border: 1px solid rgba(94, 124, 71, 0.20);
    border-radius: 50%;
    font-size: 20px;
    cursor: pointer;
    flex-shrink: 0;
    transition: all var(--transicao-rapida);
    display: flex;
    align-items: center;
    justify-content: center;
}
.consultor-btn-mic:active {
    transform: scale(0.95);
}
.consultor-btn-mic.gravando {
    background: #C62828;
    color: #fff;
    border-color: #C62828;
    animation: micPulsar 1.2s ease-in-out infinite;
}
@keyframes micPulsar {
    0%, 100% { box-shadow: 0 0 0 0 rgba(198, 40, 40, 0.5); }
    50%      { box-shadow: 0 0 0 10px rgba(198, 40, 40, 0); }
}

/* ===== Botão de copiar (F2) ===== */

.chat-msg-conteudo {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 78%;
}
.chat-msg-conteudo .chat-msg-bolha {
    max-width: 100%;
}
.chat-msg-copy {
    align-self: flex-start;
    background: transparent;
    border: 1px solid rgba(94, 124, 71, 0.15);
    color: var(--texto-secundario);
    border-radius: 12px;
    padding: 2px 10px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s;
    margin-left: 4px;
    line-height: 1.4;
}
.chat-msg-copy:active {
    transform: scale(0.96);
    background: rgba(94, 124, 71, 0.06);
}
.chat-msg-copy.copiado {
    color: #2E7D32;
    border-color: #2E7D32;
    background: rgba(46, 125, 50, 0.08);
}

/* Card "largo" do consultor na home Pro */
.card-pro-largo {
    grid-column: span 2;
    /* Card único e largo → conteúdo centralizado fica mais equilibrado */
    text-align: center;
    align-items: center;
    padding: var(--gap-lg);
}
.card-pro-largo .card-pro-icone {
    font-size: 32px;
}
