﻿/*
CSS comentado — versão "zero espaçamento" (linha por linha)
Objetivo: eliminar margins/paddings/gaps que criam espaço entre conteúdo e bordas do modal.
Leia os comentários antes de cada bloco/linha — eles explicam qual propriedade gera espaçamento e o porquê.
*/

/* ----------------------------
   Reset / base
   ---------------------------- */
/*body {*/
/*    font-family: Arial, sans-serif; !* define a família de fonte usada no layout *!*/
/*    margin: 0; !* -> Remove margem externa do <body> (muitas vezes causa espaço ao redor do modal) *!*/
/*    padding: 0; !* -> Remove padding do <body> (evita respiro extra) *!*/
/*}*/

/* ----------------------------
   Modal (container principal)
   ---------------------------- */
.chat-modal {
    position: fixed; /* fixa o modal na tela */
    top: 55px; /* distância do topo da janela (ajuste se quiser mover o modal) */
    left: 150px; /* distância da borda esquerda */
    width: 750px; /* largura do modal */
    height: 500px; /* altura do modal */
    background-color: #f0f0f0; /* cor do fundo do modal */
    border: 1px solid #ccc; /* borda externa: não cria espaço técnico, mas é uma linha visual */
    display: none; /* padrão: escondido (usa JS para abrir) */
    z-index: 1000; /* garante sobreposição sobre outros elementos */
    box-shadow: 0 1px 2px rgba(0,0,0,0.2); /* sombra (apenas estética) */
    margin: 0; /* -> remove margin do elemento .modal (evita deslocamentos externos) */
    padding: 0; /* -> remove padding do .modal para colar o conteúdo nas bordas internas */
}
@media (max-width: 800px) {
    .chat-modal {
        width: 90%;       /* ocupa quase toda a largura da tela */
        right: 5%;        /* deixa um pequeno espaço da borda */
    }
}

/* ----------------------------
   Cabeçalho do modal
   Espaçamento comum: padding cria respiro dentro do cabeçalho
   ---------------------------- */
.chat-modal-header {
    background-color: #006400; /* cor do cabeçalho */
    color: white; /* cor do texto */
    height: 40px; /* -> usamos altura fixa em vez de padding para manter controle preciso */
    cursor: move; /* indica que é draggable */
    display: flex; /* layout flex para alinhar itens */
    justify-content: center; /* centraliza conteúdo horizontalmente */
    align-items: center; /* centraliza verticalmente */
    position: relative; /* necessário quando usamos position:absolute em botões internos */
    margin: 0; /* -> remove margin que poderia empurrar o cabeçalho */
    padding: 0; /* -> remove padding interno do cabeçalho */
    border: none; /* remove borda extra (se houver) */
}

/* botão fechar no header (posicionado com absolute, encostado na borda direita) */
.chat-modal-header button#chatCloseModalBtn {
    position: absolute; /* posiciona em relação ao .modal-header */
    right: 8px; /* encosta o botão próximo à borda direita do cabeçalho */
    top: 10px; /* pequeno deslocamento do topo */
    margin: 0; /* garante que não haja margem extra do botão */
    padding: 0; /* remove padding interno do botão */
    background: none; /* aparência limpa */
    border: none; /* sem borda para não aumentar área visual */
    font-size: 16px; /* tamanho do X */
    cursor: pointer;
}

/* ----------------------------
   Corpo do modal (duas colunas: lista usuários + área de chat)
   Espaçamento comum: padding, gap, margin, border
   ---------------------------- */
.chat-modal-body {
    display: flex; /* cria as colunas */
    height: calc(100% - 40px); /* calcula em função do header (usamos header de 40px) */
    margin: 0; /* -> remove margin que poderia criar espaço externo */
    padding: 0; /* -> remove padding do container para colar os filhos nas bordas */
    border: none; /* sem borda adicional */
}

/* ----------------------------
   Painel esquerdo: lista de usuários
   Espelhos de espaçamento: padding do painel, padding do título e gap entre itens
   ---------------------------- */
.chat-user-list {
    width: 250px; /* largura fixa do painel lateral */
    border-right: 1px solid #ccc; /* separador visual entre lista e chat (não é espaço técnico) */
    background-color: #e0e0e0; /* fundo do painel */
    display: flex; /* container flex para título + lista scroll */
    flex-direction: column; /* empilha título e lista */
    height: 100%; /* ocupa altura total do modal-body */
    margin: 0; /* zera margin do painel */
    padding: 0; /* -> zera padding interno do painel (colando conteúdo nas bordas internas) */
}

/* título da lista (ex: "Usuários (0)") */
.chat-user-list-title {
    flex-shrink: 0; /* mantém o título no tamanho natural */
    margin: 0; /* -> remove margem (muitas tags h3 têm margin padrão) */
    padding-top: 5px;
    /*padding: 0; !* -> remove padding do título para que o texto fique colado à borda superior *!*/
    background-color: #f2f2f2; /* cor do fundo do título */
    border-bottom: 1px solid #ccc; /* linha separadora abaixo do título */
    font-size: 16px; /* tamanho do texto */
    font-weight: bold; /* negrito */
    text-align: center; /* centraliza o texto no título */
}

/* área rolável da lista de usuários */
.chat-user-list-scroll {
    flex-grow: 1; /* ocupa o espaço restante abaixo do título */
    overflow-y: auto; /* permite scroll vertical */
    margin: 0; /* remove margin padrão */
    padding: 0; /* remove padding para colar a lista nas bordas */
    background-color: #ffffff; /* <- fundo branco *
}

.user-list-scroll ul,
.user-list ul {
    list-style: none; /* remove marcadores de lista */
    margin: 0; /* elimina margin padrão das ul */
    padding: 0; /* elimina padding padrão da ul */
}

/* cada item de usuário */
.chatUserItem {
    display: flex; /* alinhamento da bolinha, foto e nome */
    align-items: center; /* centraliza verticalmente */
    gap: 0; /* -> gap entre elementos (bolinha/ foto/ nome) igual a zero: tudo encostado) */
    margin: 0; /* -> remove espaçamento entre itens */
    padding: 2px; /* -> remove padding interno do item */
    border-radius: 0; /* sem arredondamento (opcional) */
    transition: background 0.2s; /* efeito hover (visual) */
    
}

/* nome do usuário: por vezes o nome quebra linha — limitamos e colocamos ellipsis */
.chatUserItem span {
    font-size: 13px; /* tamanho do nome */
    white-space: nowrap; /* evita quebra de linha */
    overflow: hidden; /* esconde texto que extrapola */
    text-overflow: ellipsis; /* mostra '...' quando largo demais */
    max-width: 180px; /* largura máxima visível do nome no painel */
    display: inline-block;
    vertical-align: middle;
    padding: 2px; /* -> remove padding interno do item */
}

.chatUserItem:hover {
    display: flex; align-items: center; gap: 0; margin-bottom: 0; cursor: pointer;
    padding: 2px; /* -> remove padding interno do item */
    background-color: #f0f0f0; /* leve destaque no hover */
}

/* bolinha de status online/offline */
/*.userCircle {*/
/*    width: 8px; !* largura *!*/
/*    height: 8px; !* altura *!*/
/*    margin-left: 8px;*/
/*    border-radius: 40%; !* transforma em círculo *!*/
/*    flex-shrink: 0; !* evita encolher *!*/
/*}*/
/*.chatUserCircle {*/
/*    width: 8px !important;*/
/*    height: 8px !important;*/
/*    min-width: 8px !important;*/
/*    min-height: 8px !important;*/
/*    padding: 0 !important;*/
/*    !*margin: 0 !important;*!*/
/*    margin-left: 2px !important;*/
/*    border-radius: 50% !important;*/
/*    display: inline-block !important;*/
/*    box-sizing: border-box !important;*/
/*    flex: 0 0 auto !important; !* evita que o flex do pai estique o elemento *!*/
/*    align-self: center !important;*/
/*}*/
/*.chatUserCircle.online { width: 12px; height: 12px; border-radius: 50%; display: inline-block; background: green; }*/
/*.chatUserCircle.offline { background-color: red; }*/

/*!* foto do usuário *!*/
/*.chatUserPhoto {*/
/*    width: 30px; !* largura da foto *!*/
/*    height: 30px; !* altura da foto *!*/
/*    border-radius: 50%; !* foto arredondada *!*/
/*    object-fit: cover; !* evita distorção da imagem *!*/
/*    margin: 0; !* remove margin que poderia empurrar o conteúdo *!*/
/*    padding: 0 2px; !* remove padding que poderia criar respiro *!*/
/*}*/

/* --- FOTO DO USUÁRIO (com borda de status online/offline) --- */
.chatUserPhoto {
    width: 30px;              /* largura da foto */
    height: 30px;             /* altura da foto */
    border-radius: 50%;       /* foto arredondada */
    object-fit: cover;        /* evita distorção da imagem */
    margin: 0 2px;                /* remove margens extras */
    padding: 0;               /* remove padding */
    border: 2px solid transparent; /* base neutra */
    transition: border-color 0.3s ease, box-shadow 0.3s ease; /* transição suave */
}

/* 🟢 Verde = online | 🔴 Vermelho = offline */
.chatUserPhoto.online {
    border-color: #00c853; /* verde */
    box-shadow: 0 0 3px rgba(0, 200, 83, 0.5); /* brilho suave opcional */
}

.chatUserPhoto.offline {
    border-color: #d50000; /* vermelho */
    box-shadow: 0 0 3px rgba(213, 0, 0, 0.4); /* brilho suave opcional */
}

/* --- BOLINHA DE STATUS (REMOVIDA) --- */
/* As classes abaixo foram mantidas vazias apenas por compatibilidade */
.chatUserCircle,
.chatUserCircle.online,
.chatUserCircle.offline {
    display: none !important; /* desativa completamente a bolinha antiga */
}


.chat-selected { background-color: #d0d0d0; }

/* ----------------------------
   Área principal: chat
   Espalhamento comum: padding, border, margin
   ---------------------------- */
.chat-area {
    flex: 1; /* ocupa o restante da largura */
    padding: 0; /* -> remove padding interno para colar nas bordas */
    margin: 0; /* -> remove margin */
    position: relative; /* usado para posicionamento absoluto interno */
    display: flex; /* para organizar o conteúdo verticalmente */
    flex-direction: column; /* empilha título, mensagens e input */
    border: none; /* sem borda que crie separação visual */
}

/* Aplica centralização só quando o placeholder estiver visível */
.chat-area:has(#chatPlaceholderText[style*="display: block"]),
.chat-area:has(#chatPlaceholderText[style*="display: flex"]) {
    justify-content: center;
    align-items: center;
}


/* placeholder central (quando não há conversa aberta) */
/*#chatPlaceholderText {*/
/*    font-size: 20px;*/
/*    color: #999;*/
/*    text-align: center;*/
/*    margin: 0; !* remove margem *!*/
/*    padding: 0; !* remove padding *!*/
/*    line-height: 500px; !* centra verticalmente o texto dentro da altura do modal *!*/
/*}*/

/*#chatPlaceholderText {*/
/*    font-size: 20px;*/
/*    color: #999;*/
/*    text-align: center;*/
/*    height: 100%; !* ocupa todo o espaço do container *!*/
/*    display: flex;*/
/*    align-items: center;   !* centraliza verticalmente *!*/
/*    justify-content: center; !* centraliza horizontalmente *!*/
/*    position: relative;*/
/*    top: -30px; !* move 70px para cima *!*/
/*}*/

#chatPlaceholderText {
    font-size: 20px;
    color: #999;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column; /* empilha os textos verticalmente */
    align-items: center;    /* centraliza horizontalmente */
    justify-content: center;/* centraliza verticalmente */
    position: relative;
    top: -30px;
}

#chatPlaceholderText .subtext {
    font-size: 12px;
    color: #aaa; /* opcional: um tom mais claro */
    /*margin-top: 5px; !* pequeno espaçamento entre as linhas *!*/
}



/* container do conteúdo do chat (inicialmente escondido) */
#chatContent {
    display: none; /* mostrado via JS quando uma conversa é aberta */
    flex-direction: column;
    height: 100%;
    margin: 0; /* remove margin */
    padding: 0; /* remove padding */
}

/*#chatMessages {*/
/*    font-size: 30px;*/
/*}*/
/*#chatMessages {*/
/*    font-size: 30px;*/
/*    height: 400px;           !* define uma altura visível (ajuste como quiser) *!*/
/*    overflow-y: auto;        !* ativa a rolagem vertical *!*/
/*    display: flex;*/
/*    flex-direction: column;  !* mantém a ordem das mensagens *!*/
/*    padding: 8px;*/
/*    box-sizing: border-box;*/
/*}*/


/* título do chat que contém foto + nome */
#chatTitle {
    font-weight: bold;
    margin: 0; /* remove margem (h1/h2/h3 têm margem) */
    padding: 0; /* remove padding */
    display: flex;
    align-items: center;
    gap: 0; /* zera gap para colar foto e nome */
    background-color: #f2f2f2; /* pequeno fundo para destacar título */
    border-bottom: 1px solid #ccc; /* separador visual abaixo do título */
}

/* lista de mensagens */
/*#messagesList {*/
/*    flex: 1; !* ocupa espaço disponível *! */
/*    border: 1px solid #ccc; */
/*    !*height: 250px; *!*/
/*    padding: 0; !* -> remove padding interno *!*/
/*    overflow-y: auto; !* permite rolar as mensagens *!*/
/*    margin: 0; !* remove margem externa *!*/
/*    font-size: 8px;*/
/*    !*background: #f9f9f9;*!*/
/*    background-image: url('../Imagens/fundo_chat_textarea.png');*/
/*    background-size: auto;           !* cobre toda a área *!*/
/*    background-repeat: repeat;     !* não repete a imagem *!*/
/*    background-position: top left;*/
/*    background-attachment: fixed;     !* mantém a imagem fixa ao rolar *!*/
/*}*/

#chatMessagesList {
    flex: 1;
    border: 1px solid #ccc;
    padding: 0;
    overflow-y: auto;
    margin: 0;
    font-size: 8px;
    background-image: url('../Imagens/fundo_chat_textarea.png');
    background-size: 500px auto;       /* controla o tamanho dos ícones */
    background-repeat: repeat;         /* repete suavemente */
    background-position: top left;
    /* background-attachment: fixed;  <-- remova esta linha */
}




.chat-messageItem {
    font-size: 12px;
}


.chat-messageData {
    font-size: 10px;
}


/*#messagesList {*/
/*    flex: 1; !* ocupa espaço disponível *!*/
/*    border: none; !* -> remove borda que criava separação visual *!*/
/*    padding: 0; !* -> remove padding interno *!*/
/*    overflow-y: auto; !* permite rolar as mensagens *!*/
/*    background-color: #fff; !* mantém fundo branco *!*/
/*    margin: 0; !* remove margem externa *!*/
/*    font-size: 8px;*/
/*}*/

/* botão X para fechar conversa (posicionado absoluto) */
#chatClose {
    position: absolute; /* absoluto dentro de .chat-area */
    top: 8px; /* distância do topo */
    right: 10px; /* distância da borda direita */
    cursor: pointer;
    /*font-weight: bold;*/
    margin: 0; /* remove margin */
    padding: 0; /* remove padding */
}

/* área de input + botão de envio */
.chat-input-container {
    display: flex; /* linha com input e botão */
    justify-content: space-between; /* botão fica à direita */
    align-items: center;
    gap: 0; /* sem gap entre input e botão */
    margin: 0; /* remove margin */
    padding: 0; /* remove padding */
    border-top: 1px solid #ccc; /* separador visual no topo do input */
}

#chatInmessage {
    flex: 1; /* ocupa todo espaço disponível */
    padding: 0; /* -> remove padding interno do input (texto encostado na borda) */
    margin: 0; /* -> remove margin externa */
    border: none; /* sem borda para ficar colado */
    outline: none; /* remove outline no foco (opcional) */
    height: 36px; /* altura definida para consistência */
    resize: none;
    font-size: 12px;
}

/*#btnSendMsg {*/
/*    padding: 0; !* remove padding para o botão ficar colado *!*/
/*    margin: 0; !* remove margin *!*/
/*    height: 36px; !* mesma altura do input *!*/
/*    background-color: #075e54; !* cor do botão *!*/
/*    color: white; !* texto branco *!*/
/*    border: none; !* sem borda extra *!*/
/*    border-radius: 0; !* sem arredondamento *!*/
/*    cursor: pointer;*/
/*}*/

/*.send-icon {*/
/*    width: 24px;*/
/*    height: 24px;*/
/*    transition: filter 0.2s ease;*/
/*}*/

/*.send-icon:hover {*/
/*    filter: brightness(0.8);*/
/*}*/


#chatBtnSendMsg {
    padding: 0;
    margin: 0;
    height: 36px;
    /*background-color: #075e54;*/
    color: white;
    border: none;
    border-radius: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}


.chatDataContainer {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 10px 0;
}

.chatDataText { 
    font-size: 14px;
    color: #999;
    background: #f0f0f0;
    padding: 3px 10px;
    border-radius: 10px;
}


/*#btnSendMsg:hover .send-icon {*/
/*    filter: brightness(0.8);*/
/*}*/

.chat-send-icon {
    width: 24px;
    height: 24px;
    transition: filter 0.2s ease;
}

.chat-send-icon:hover {
    filter: brightness(0.8);
}



/*.chatUserQtdeMsg {*/
/*    background-color: red;*/
/*    color: white;*/
/*    font-size: 8px;*/
/*    padding: 2px 5px;*/
/*    border-radius: 50%;*/
/*    margin-left: 5px;*/
/*}*/

.chatUserQtdeMsg {
    background-color: #006400;
    color: white;
    font-size: 12px !important;
    min-width: 20px;
    height: 20px;
    border-radius: 50%;
    margin-left: 5px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    top: -4px; /* sobe o círculo */
}


/*.chatUserQtdeMsg.fadeOut {*/
/*    opacity: 0;*/
/*    transition: opacity 2s ease;*/
/*}*/


@keyframes fadeUpOut {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-10px);
    }
}

.chatUserQtdeMsg.fadeUpOut {
    animation: fadeUpOut 2s forwards;
}





/* ----------------------------
   Observações finais / pontos para ajustar
   ----------------------------
- "top" e "left" do .modal definem a posição do modal na tela — se quiser o modal encostado na janela, altere para top: 0; left: 0; e ajuste width/height.
- A propriedade "border" do .modal e do .user-list (border-right) não cria espaço técnico, mas cria linhas visuais. Se quiser remover qualquer linha, coloque border: none;
- Alguns elementos receberam padding:0 e gap:0 para garantir que tudo fique encostado. Caso queira manter clique confortável, aumente padding apenas onde for necessário (ex: .chatUserItem padding: 4px).
- Se após aplicar esse CSS ainda houver um espaço, verifique se há estilos inline (style="...") no HTML ou CSS de terceiros que sobrescrevam essas regras. Use o inspector do navegador (F12) para localizar qual propriedade está provocando o espaçamento.
*/
