/* public/css/style.css */
:root {
    --primary-color: #2563eb;
    --secondary-color: #f1f5f9;
    --accent-color: #10b981;
    --text-dark: #1e293b;
    --text-muted: #64748b;
    --border-color: #e2e8f0;
}

body {
    background-color: #f8fafc;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--text-dark);
}

.navbar-brand {
    font-weight: 700;
    color: var(--primary-color) !important;
}

.btn-primary {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.btn-primary:hover {
    background-color: #1d4ed8;
    border-color: #1d4ed8;
}

.card {
    border: 1px solid var(--border-color);
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
    transition: all 0.3s ease;
}

.card:hover {
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
    transform: translateY(-2px);
}

.ad-card {
    border-radius: 12px;
    overflow: hidden;
    background: white;
}

/* --- INÍCIO DA CORREÇÃO DEFINITIVA --- */

/* Regra de imagem para os cards de listagem (agora mais específica) */
.ad-card .ad-image {
    height: 200px;
    width: 100%;
    object-fit: cover; /* Garante que a imagem cubra a área sem distorcer */
    background-color: #f1f5f9; /* Cor de fundo para carregamento */
}

/* Regra para imagens no carrossel da página de detalhes */
.ad-carousel-image {
    width: 100%;
    height: 450px;
    object-fit:scale-down;
    background-color: #ffffff;
}

/* Garante que o container do carrossel tenha a altura correta */
.ad-carousel .carousel-inner, .ad-carousel .carousel-item {
    height: 450px;
}

/* --- FIM DA CORREÇÃO DEFINITIVA --- */

.category-badge {
    background-color: var(--accent-color);
    color: white;
    font-size: 0.75rem;
    padding: 4px 8px;
    border-radius: 12px;
    text-decoration: none;
}

.price-tag {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary-color);
}

.user-avatar {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
}

.search-filters {
    background: white;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
}

.notification-badge {
    position: absolute;
    top: 0px;
    right: 0px;
    background: #ef4444;
    color: white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

.floating-action-btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--primary-color);
    color: white;
    border: none;
    font-size: 1.5rem;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.4);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: background-color 0.3s;
}

.floating-action-btn:hover {
    background-color: #1d4ed8;
    color: white;
}

.stats-card {
    background: linear-gradient(135deg, var(--primary-color) 0%, #1d4ed8 100%);
    color: white;
    border-radius: 12px;
}

/* ======================================================================
    NOVOS ESTILOS PARA A HOMEPAGE (ADICIONADOS)
======================================================================
*/

/* 1. Seção Hero com Busca */
.hero-search-section {
    padding: 5rem 0;
    background: linear-gradient(135deg, var(--primary-color) 0%, #1d4ed8 100%);
    margin-bottom: 2rem;
}

.hero-search-form .form-control {
    border: none;
    border-radius: 0.5rem;
}

.hero-search-form .form-control:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.hero-search-form .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
    border-radius: 0.5rem;
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: white;
    font-weight: 600;
}
.hero-search-form .btn:hover {
    background-color: #0f766e;
    border-color: #0f766e;
}

/* 2. Seção de Categorias */
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 1.5rem;
}

.category-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: #ffffff;
    border-radius: 12px;
    border: 1px solid var(--border-color);
    color: var(--text-dark);
    transition: all 0.3s ease;
}

.category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    color: var(--primary-color);
}

.category-card-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--secondary-color);
    color: var(--primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.category-card:hover .category-card-icon {
    background: var(--primary-color);
    color: #ffffff;
}

/* 3. Seção Como Funciona */
.how-it-works-section {
    background-color: var(--secondary-color);
}

.step-icon {
    color: var(--primary-color);
}

/* 5. Seção Prova Social */
.social-proof-section {
    background: linear-gradient(135deg, #10b981 0%, #0f766e 100%);
}

/* ======================================================================
    NOVOS ESTILOS PARA A PÁGINA DO ANÚNCIO (ADICIONADOS)
======================================================================
*/

/* 1. Estilos para os novos indicadores de thumbnail */
.carousel-indicators [data-bs-target] {
  transition: opacity 0.3s ease;
  width: 80px !important; /* Sobrescreve o padrão do Bootstrap */
  height: 60px !important;
  text-indent: -999px; /* Esconde o texto do botão */
}
.carousel-indicators [data-bs-target]:not(.active) {
  opacity: 0.6;
}
.carousel-indicators [data-bs-target]:not(.active):hover {
  opacity: 1;
}

/* 2. Destaque visual para o preço */
.price-tag-container {
    background-color: var(--secondary-color);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    display: inline-block;
    border: 1px solid var(--border-color);
}

.price-tag-container .price-tag {
    font-size: 1.5rem; /* Maior que antes */
}

/* 3. Barra de Ação Pegajosa para Móvel */
.sticky-cta-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #ffffff;
    border-top: 1px solid var(--border-color);
    padding: 1rem;
    box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
    z-index: 100;
}

.price-tag-sticky {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary-color);
}

/* Adiciona preenchimento na parte inferior do body para não cortar conteúdo */
@media (max-width: 991.98px) {
    /* Adiciona :has() para não aplicar o padding se o FAB já estiver oculto */
    body:not(:has(.floating-action-btn:not([style*="display: none"]))) {
        padding-bottom: 90px; /* Altura da barra de CTA */
    }
}


/* ======================================================================
    NOVOS ESTILOS PARA A ÁREA "MINHA CONTA" (ADICIONADOS)
======================================================================
*/

/* 1. Layout Geral da Conta */
.account-body {
    background-color: var(--secondary-color);
}

.sidebar {
    height: 100vh;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.05);
}

main.col-lg-9 {
    min-height: 100vh;
}

/* 2. Hub de Perfil (Sidebar) */
.profile-hub {
    border-bottom: 1px solid var(--border-color);
}

.profile-hub-avatar-link .user-avatar {
    transition: all 0.3s ease;
    border: 4px solid var(--border-color);
}
.profile-hub-avatar-link:hover .user-avatar {
    transform: scale(1.05);
    border-color: var(--primary-color);
}

/* 3. Estilo dos links do Sidebar */
.sidebar .nav-link {
    font-weight: 500;
    color: #333;
    display: flex;
    align-items: center;
}
.sidebar .nav-link .fas {
    width: 20px;
    text-align: center;
    color: var(--text-muted);
}
.sidebar .nav-link:hover, .sidebar .nav-link.active {
    color: var(--primary-color);
}

/* 4. Cartão de Boas-Vindas (Overview) */
.welcome-card {
    background: linear-gradient(135deg, var(--primary-color) 0%, #1d48d8 100%);
}

/* 5. Cartões de Estatísticas (Overview) */
.stat-card {
    border: none;
    border-radius: 12px;
}
.stat-card .stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-dark);
}
.stat-card .stat-label {
    font-size: 0.9rem;
    color: var(--text-muted);
}

/* 6. Cartões de Ação Rápida (Overview) */
.quick-action-card {
    border: none;
    border-radius: 12px;
    transition: all 0.3s ease;
}
.quick-action-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transform: translateY(-3px);
}

/* 7. Abas da Página de Edição */
.nav-pills .nav-link {
    color: var(--text-dark);
}
.nav-pills .nav-link.active {
    background-color: var(--primary-color);
    font-weight: 500;
}

/* ======================================================================
    ATUALIZAÇÃO DE ESTILOS DO CHAT (PROFISSIONAL)
======================================================================
*/

/* 1. Janela Geral do Chat */
.chat-window {
    border-radius: 12px;
    overflow: hidden; /* Garante que os cantos arredondados sejam aplicados */
}

/* 2. Fundo do Chat-box (onde as mensagens aparecem) */
#chat-box {
    background-color: #f8fafc; /* Um cinza muito leve, diferente do branco */
    padding: 1rem;
}

/* ======================================================================
    INÍCIO DA CORREÇÃO (Conflito Flex vs Float)
======================================================================
*/

/* 3. Aprimoramento das Bolhas de Mensagem */
.message-bubble {
    max-width: 70%; 
    padding: 12px 18px; 
    border-radius: 20px; 
    margin-bottom: 12px;
    position: relative;
    word-wrap: break-word; 
    line-height: 1.5;
    /* REMOVIDO: 'clear: both;' */
}

/* 4. Bolha de Mensagem ENVIADA (Direita) */
.message-sent {
    background-color: var(--primary-color);
    color: white;
    margin-left: auto;
    /* REMOVIDO: 'float: right;' */
    align-self: flex-end; /* ADICIONADO: Alinha à direita no flex-container */
    border-bottom-right-radius: 5px; 
}

/* 5. Bolha de Mensagem RECEBIDA (Esquerda) */
.message-received {
    background-color: #ffffff; 
    color: var(--text-dark);
    /* REMOVIDO: 'float: left;' */
    align-self: flex-start; /* ADICIONADO: Alinha à esquerda no flex-container */
    border: 1px solid var(--border-color); 
    border-bottom-left-radius: 5px; 
}

/* ======================================================================
    FIM DA CORREÇÃO
======================================================================
*/

/* 6. Hora da Mensagem (Dentro da bolha) */
.message-time {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.8); /* Cor clara para a bolha escura */
    margin-top: 5px;
    text-align: right;
}
.message-received .message-time {
    color: var(--text-muted); /* Cor escura para a bolha clara */
}

/* 7. Cabeçalho de Contexto do Anúncio (Dentro do Chat) */
.chat-ad-header {
    border-radius: 12px !important;
    transition: all 0.3s ease;
}
.chat-ad-header:hover {
    background-color: #e2e8f0 !important; /* Um pouco mais escuro no hover */
}
.chat-ad-header .btn-link {
    font-size: 0.9em;
    font-weight: 500;
}

/* ======================================================================
    ATUALIZAÇÃO DE ESTILOS DO CHAT (FULL-BLEED / TELA CHEIA)
======================================================================
*/

/* PASSO 1:
  Quando o chat está ativo, removemos o padding E o min-height 
  padrão da tag <main> para que o chat possa controlar a altura.
*/
main.ms-sm-auto:has(.chat-full-bleed-container) {
    padding: 0 !important;
    min-height: 0 !important; 
}

/* 2. O container principal do chat (substitui o .container.my-5) */
.chat-full-bleed-container {
    height: 100%;
    width: 100%;
    display: flex;
}

/* 3. A janela do chat (o .card) */
.chat-full-bleed-container .chat-window {
    flex-grow: 1; 
    border-radius: 0; 
    border: none; 
    box-shadow: none; 
    display: flex; 
    flex-direction: column; 
    
    /* AQUI ESTÁ A MUDANÇA PRINCIPAL (A):
       Definimos a altura da janela com base na altura do Viewport (vh).
    */
    height: 100vh; 
}

/* 4. Ajuste para a navbar móvel */
@media (max-width: 991.98px) {
    .chat-full-bleed-container .chat-window {
        /* Em telas móveis, a altura é 100% da tela MENOS a altura 
           da navbar superior (que tem 56px por padrão no Bootstrap).
        */
        height: calc(100vh - 56px);
    }
}

/* 5. Ajuste para telas grandes (desktop) */
@media (min-width: 992px) {
    .chat-full-bleed-container .chat-window {
         /* Mantém um raio no canto superior esquerdo para alinhar com o sidebar */
        border-top-left-radius: 12px;
    }
}

/* 6. O corpo do chat (onde as mensagens rolam) */
.chat-full-bleed-container #chat-box {
    flex-grow: 1; /* Ocupa o espaço restante */
    background-color: #f8fafc;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    overflow-y: auto; /* Isso agora vai funcionar */
    
    /* AQUI ESTÁ A MUDANÇA PRINCIPAL (B):
       Esta "trapaça" do flexbox força o overflow-y a funcionar, 
       impedindo o container de crescer infinitamente com o conteúdo.
    */
    min-height: 0;
}

/* 7. Rodapé do Chat (fixo) */
.chat-full-bleed-container .card-footer {
    flex-shrink: 0; /* Impede que o rodapé encolha */
}

/* 8. Cabeçalho do Chat (fixo) */
.chat-full-bleed-container .card-header {
    flex-shrink: 0; /* Impede que o cabeçalho encolha */
    
    /* ======================================================================
        INÍCIO DA CORREÇÃO (Adicionando o display: flex que faltava)
    ======================================================================
    */
    display: flex;
    flex-direction: column;
    /* ======================================================================
        FIM DA CORREÇÃO
    ======================================================================
    */
}

/* 4. Rodapé do Chat (fixo) */
.chat-full-bleed-container .card-footer {
    flex-shrink: 0; /* Impede que o rodapé encolha */
}

/* 5. Cabeçalho do Chat (fixo) */
.chat-full-bleed-container .card-header {
    flex-shrink: 0; /* Impede que o cabeçalho encolha */
}

/* ======================================================================
    ATUALIZAÇÃO DE ESTILOS DO CHAT (DIVISOR DE DATA)
======================================================================
*/

/* 1. Divisor de Data (Robusto) */
.chat-date-divider {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 1.5rem 0;
    width: 100%; /* Garante que ocupe a largura total */
}
.chat-divider-line {
    flex-grow: 1;
    border: none;
    height: 1px;
    background-color: var(--border-color);
}
.chat-divider-label {
    flex-shrink: 0;
    padding: 0 1rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* 2. Container da Área de Input (Composer) */
.chat-input-container {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--border-color);
}
.chat-input-area {
    background-color: var(--secondary-color); /* Cinza claro */
    border-radius: 25px; /* Arredondado */
    padding: 5px 5px 5px 15px; /* Espaçamento interno */
}
.chat-input-area textarea.form-control {
    border: none;
    box-shadow: none !important;
    outline: none !important;
    background-color: transparent; /* Fundo transparente */
    max-height: 100px;
    padding-left: 0;
}
.chat-input-area #send-btn {
    width: 45px; 
    height: 45px;
    padding: 0;
    font-size: 1rem;
    flex-shrink: 0; 
}

/* ======================================================================
    NOVOS ESTILOS PARA A PÁGINA DE BUSCA
======================================================================
*/

/* 1. Barra de Controle de Resultados (Total e Ordenação) */
.results-header {
    border-bottom: 1px solid var(--border-color);
    background-color: #ffffff;
}

.results-header h5 {
    color: var(--text-dark);
}

.results-header #sort-form {
    max-width: 250px;
}

/* 2. Sidebar de Filtros (Desktop) */
.filter-sidebar.card {
    border: none;
    background-color: #ffffff;
    border-radius: 12px;
}

/* 3. Estilização do Accordion de Filtros */
.accordion-button {
    font-weight: 600;
    padding: 1rem;
    color: var(--text-dark);
}
.accordion-button:not(.collapsed) {
    background-color: var(--secondary-color);
    box-shadow: none;
    color: var(--primary-color);
}
.accordion-button:focus {
    box-shadow: none;
    border-color: rgba(0,0,0,.125);
}
.accordion-button::after {
    /* Ícone de "seta" mais moderno */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2364748b'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232563eb'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

/* 4. Lista de Categorias Visual (Dentro do Filtro) */
.filter-category-list .list-group-item {
    padding: 0.75rem 0.5rem;
    font-size: 0.9em;
    border: none;
    border-radius: 6px;
}
.filter-category-list .list-group-item:not(.active):hover {
    background-color: var(--secondary-color);
}