/* Estilos Globais e Variáveis CSS */
:root {
    --primary-color: #4CAF50; /* Verde padrão */
    --secondary-color: #f44336; /* Vermelho padrão */
    --text-color: #333;
    --bg-color: #f4f4f4;
    --container-bg: #fff;
    --border-color: #ddd;
    --input-bg: #fff;
    --button-text-color: #fff;
    --link-color: #3498db;
    --header-bg-color: #3498db; /* Azul do cabeçalho */
    --footer-bg-color: #2c3e50; /* Azul escuro do rodapé */
}

/* Reset básico e Box Model */
*, *::before, *::after {
    box-sizing: border-box;
}

body {
    font-family: 'Arial', sans-serif;
    line-height: 1.6;
    color: var(--text-color);
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;

    /* === IMAGEM DE FUNDO === */
    background-image: url('anote-rapido-rdx.jpg');
    background-size: cover; /* Cobre todo o fundo */
    background-position: center center; /* Centraliza a imagem */
    background-repeat: no-repeat; /* Não repete */
    background-attachment: fixed; /* Fixo para scroll */
    background-color: var(--bg-color); /* Cor de fallback */
    /* ======================= */
}

/* Layout principal */
main.tool-content {
    flex-grow: 1; /* Ocupa o espaço restante */
    padding: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center; /* Centraliza o container horizontalmente */
}

/* Header Compact */
.header-compact {
    background-color: var(--header-bg-color);
    color: white;
    padding: 10px 15px;
    text-align: center;
    /* Usando uma cor mais escura diretamente ao invés de darken() que é SASS/menos compatível */
    border-bottom: 3px solid #2980b9;
    flex-shrink: 0; /* Não encolhe */
    width: 100%;
    box-sizing: border-box;
}

.header-compact-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.header-compact img {
    height: 35px;
    width: 35px;
    vertical-align: middle; /* Alinha a imagem com o texto */
}

.header-compact-text {
    text-align: left; /* Alinha o texto à esquerda dentro do seu container */
}

.header-compact-text h1 {
    font-size: 1.3em;
    color: white;
    margin: 0 0 2px 0;
    font-weight: 600;
    line-height: 1.2;
    border-bottom: none;
    padding-bottom: 0;
}

.header-compact-text p {
    font-size: 0.85em;
    color: yellow; /* Cor do slogan/subtítulo */
    margin: 0;
    line-height: 1.2;
}

/* Footer */
.tool-footer {
    background-color: var(--footer-bg-color);
    color: #95a5a6; /* Cinza claro */
    text-align: center;
    padding: 15px;
    font-size: 0.8em;
    border-top: 3px solid var(--header-bg-color); /* Borda superior azul */
    margin-top: auto; /* Empurra para o final */
    flex-shrink: 0; /* Não encolhe */
    width: 100%;
    box-sizing: border-box;
}

.tool-footer-links {
    margin-bottom: 8px;
}

.tool-footer a {
    color: #bdc3c7; /* Cinza um pouco mais claro */
    margin: 0 8px;
    text-decoration: none;
    transition: color 0.3s ease;
}

.tool-footer a:hover {
    text-decoration: underline;
    color: #ecf0f1; /* Quase branco no hover */
}

/* AdSense Section */
.adsense-tool {
    margin: 30px auto 0 auto; /* Espaçamento: Topo 30px, Centraliza, Fundo 0 */
    padding: 15px 0;
    max-width: 640px; /* Ajustado para alinhamento com o container principal */
    width: 95%;
    border-top: 1px solid #eee;
    text-align: center;
    min-height: 90px; /* Altura mínima comum para blocos de anúncio */
    box-sizing: border-box;
    flex-shrink: 0;
}


/* Container principal da ferramenta com efeito vidro */
.container {
    /* === TAMANHO E EFEITO VIDRO === */
    max-width: 640px; /* Reduzido para aprox. 2/3 de 960px */
    margin: 20px auto; /* Centraliza horizontalmente, 20px margem superior/inferior */
    padding: 20px;
    background-color: rgba(255, 255, 255, 0.7); /* Fundo branco semi-transparente */
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); /* Sombra mais pronunciada */
    border-radius: 10px; /* Borda arredondada */
    width: 95%; /* Mantém responsividade */
    box-sizing: border-box;
    backdrop-filter: blur(10px); /* Efeito de desfoque no fundo atrás do container */
    -webkit-backdrop-filter: blur(10px); /* Compatibilidade Safari */
    border: 1px solid rgba(255, 255, 255, 0.3); /* Borda sutil para efeito */
    /* =============================== */
}

/* Títulos das seções internas */
h1 {
    text-align: center;
    margin-bottom: 20px;
    color: var(--primary-color);
    margin-top: 0; /* O primeiro H1 já tem margem superior do container */
}

h2 {
    text-align: center;
    margin-bottom: 20px;
    color: var(--text-color);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 10px;
    margin-top: 30px; /* Espaço entre seções */
}
h2:first-of-type {
     margin-top: 0; /* O primeiro H2 (do formulário) não precisa de margem superior extra */
}


/* Formulário de Entrada */
#transaction-form {
    margin-bottom: 30px;
    padding: 20px;
    background-color: rgba(249, 249, 249, 0.7); /* Fundo semi-transparente */
    border: 1px solid rgba(221, 221, 221, 0.5); /* Borda semi-transparente */
    border-radius: 5px;
    backdrop-filter: blur(5px); /* Efeito de desfoque menor para o formulário */
    -webkit-backdrop-filter: blur(5px); /* Compatibilidade Safari */
}

.form-group {
    margin-bottom: 15px;
}

.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

.form-group input[type="text"],
.form-group input[type="date"],
.form-group select,
.form-group input[type="number"],
.form-group input[type="text"][pattern] /* Estilo específico para o input de valor */
{
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    box-sizing: border-box;
    background-color: rgba(255, 255, 255, 0.8); /* Input semi-transparente */
}
/* Remove setas do input number (aplica no caso de type="number" ser usado) */
input[type="number"] { -moz-appearance: textfield; }
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }


.radio-group {
    display: flex;
    gap: 20px;
    align-items: center;
}

.radio-group label {
    margin-bottom: 0;
    font-weight: normal;
    cursor: pointer;
}
.radio-group input[type="radio"] {
     cursor: pointer;
     margin-right: 5px;
}

button[type="submit"] {
    display: block;
    width: 100%;
    padding: 12px;
    background-color: var(--primary-color);
    color: var(--button-text-color);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1em;
    margin-top: 10px;
    transition: background-color 0.3s ease;
}

button[type="submit"]:hover {
    background-color: #45a049; /* Tom mais escuro do verde */
}


/* Seção de Registros e Relatório */
.records-section, .report-section {
    margin-top: 30px;
}

.filter-controls {
    margin-bottom: 15px;
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}

.filter-controls label {
    font-weight: bold;
}

.filter-controls select {
     padding: 8px;
     border-radius: 4px;
     border: 1px solid var(--border-color);
     background-color: rgba(255, 255, 255, 0.8); /* Select semi-transparente */
     color: var(--text-color);
     min-width: 150px;
}

/* Tabela de Transações */
#transaction-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 15px;
    table-layout: fixed; /* Mantém as larguras fixas */
    word-wrap: break-word;
    background-color: rgba(255, 255, 255, 0.8); /* Fundo semi-transparente */
    border-radius: 5px;
    overflow: hidden; /* Para bordas arredondadas funcionarem */
}

#transaction-table thead th {
     background-color: rgba(233, 233, 233, 0.9); /* Fundo do cabeçalho semi-transparente */
     font-weight: bold;
     text-align: left;
     padding: 10px;
     border: 1px solid rgba(221, 221, 221, 0.5);
}

#transaction-table td {
    border: 1px solid rgba(221, 221, 221, 0.5); /* Borda semi-transparente */
    padding: 10px; /* Padding padrão para células */
    text-align: left;
    white-space: normal; /* Permite quebra de linha normal no geral */
    word-break: break-word; /* Quebra palavras longas */
}

/* === AJUSTADO: LARGURAS DAS COLUNAS NOVAMENTE === */
/* Base (Desktop > 768px) */
/* Ajuste 1: Aumentar TIPO. Ajuste 2: Ações pode não precisar ser tão larga */
/* Original: Data 18%, Descrição 35%, Tipo 8%,  Valor 19%, Ações 20% */
/* Nova Proposta: Data 18%, Descrição 32%, Tipo 10%, Valor 20%, Ações 20% */
/* Total: 18 + 32 + 10 + 20 + 20 = 100% */
#transaction-table th:nth-child(1), #transaction-table td:nth-child(1) { width: 18%; } /* Data */
#transaction-table th:nth-child(2), #transaction-table td:nth-child(2) { width: 32%; } /* Descrição - Ligeiramente REDUZIDO */
#transaction-table th:nth-child(3), #transaction-table td:nth-child(3) { width: 10%; text-align: center; } /* Tipo - AUMENTADO para caber "Tipo" */
#transaction-table th:nth-child(4), #transaction-table td:nth-child(4) { width: 20%; text-align: right;} /* Valor - Ligeiramente AUMENTADO */
#transaction-table th:nth-child(5), #transaction-table td:nth-child(5) { width: 20%; text-align: center;} /* Ações - MANTIDO ou ligeiramente REDUZIDO se 20% for muito */
/* ============================================================ */


#transaction-table tbody tr:nth-child(even) {
    background-color: rgba(249, 249, 249, 0.8); /* Fundo de linha par semi-transparente */
}

/* Estilos para os botões de ação na coluna "Ações" */
#transaction-table .action-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0; /* Remove padding interno dos botões */
    margin: 0; /* Remove margem externa dos botões */
    font-size: 0.9em; /* Tamanho do ícone */
    border-radius: 3px;
    line-height: 1; /* Garante que a altura da linha não force espaço extra */
    display: inline-block; /* Permite aplicar margin e padding */
    vertical-align: middle; /* Alinha verticalmente */
    transition: background-color 0.2s ease; /* Transição suave no hover */
}
#transaction-table .edit-btn { color: #ffa000; } /* Laranja */
#transaction-table .delete-btn { color: var(--secondary-color); } /* Vermelho */

/* Adicionar um pequeno espaçamento ENTRE os botões */
#transaction-table .edit-btn {
     margin-right: 5px; /* Adiciona margem à direita do botão de editar */
}


#transaction-table .action-btn:hover {
    background-color: rgba(0, 0, 0, 0.05); /* Fundo semi-transparente leve no hover */
}
#transaction-table .edit-btn:hover { background-color: rgba(255, 160, 0, 0.2); } /* Laranja semi-transparente no hover */
#transaction-table .delete-btn:hover { background-color: rgba(244, 67, 54, 0.2); } /* Vermelho semi-transparente no hover */


/* Estilo para a célula da coluna "Ações" */
#transaction-table td:nth-child(5) {
    /* === REFORÇANDO CENTRALIZAÇÃO E CONTROLE DE ESPAÇO === */
    white-space: nowrap; /* Tenta manter todo o conteúdo da célula em uma linha */
    overflow: visible; /* Permite que os ícones não sejam cortados */
    text-overflow: clip; /* Desativa o ellipsis */

    /* === A forma mais simples de centralizar conteúdo inline ou inline-block === */
    text-align: center; /* Centraliza horizontalmente o conteúdo (que são os botões inline-block) */
    vertical-align: middle; /* Centraliza verticalmente o conteúdo na célula */

    /* Remove o display: flex e justify/align-items, pois text-align/vertical-align são mais simples para inline-block */
    display: table-cell; /* Ou apenas remova a propriedade display se flexbox for removido */


    /* Padding interno da célula. Ajuste este valor se precisar mais/menos espaço ao redor dos ícones. */
    /* Mantendo um padding razoável para não colar no limite da célula. */
    padding: 5px;

    /* A largura é definida acima na regra th/td:nth-child */
    /* =================================================================== */
}


/* Classes para cores de texto no relatório e na tabela */
.text-revenue { color: var(--primary-color); font-weight: bold; }
.text-expense { color: var(--secondary-color); font-weight: bold; }

/* Seção de Relatório Mensal */
#report-summary {
    background-color: rgba(249, 249, 249, 0.7); /* Fundo semi-transparente */
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 20px;
}
#report-summary p { margin: 5px 0; font-size: 1.1em; }
#report-summary strong { font-weight: bold; }
.chart-container { max-width: 600px; margin: 20px auto; height: 300px; } /* Altura fixa para o gráfico */

/* Botões de Exportação */
.export-buttons {
    display: flex;
    gap: 10px; /* Espaço entre os botões */
    margin-top: 20px;
    justify-content: center; /* Centraliza o grupo de botões */
    flex-wrap: wrap; /* Permite quebra para telas menores */
}
.export-buttons button {
    width: auto; /* Largura automática baseada no conteúdo/padding */
    padding: 10px 20px;
    background-color: #5a67d8; /* Azul/Roxo */
    color: var(--button-text-color);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1em;
    transition: background-color 0.3s ease;
}
.export-buttons button:hover {
    background-color: #434190; /* Tom mais escuro no hover */
}


/* --- Seção AdSense --- */
.adsense-tool {
    margin: 30px auto 0 auto; /* Espaçamento: Topo 30px, Centraliza, Fundo 0 */
    padding: 15px 0;
    max-width: 640px; /* Ajustado para alinhamento com o container principal */
    width: 95%;
    border-top: 1px solid #eee;
    text-align: center;
    min-height: 90px; /* Altura mínima comum para blocos de anúncio */
    box-sizing: border-box;
    flex-shrink: 0;
}


/* Responsividade */
@media (max-width: 768px) {
    .container { max-width: 95%; }
    #transaction-table th,
    #transaction-table td { padding: 8px 5px; font-size: 0.9em; }

    /* === Ajuste de larguras para telas médias (<= 768px) === */
    /* Nova Proposta: Data 18%, Descrição 28%, Tipo 12%, Valor 22%, Ações 20% */
    /* Total: 18 + 28 + 12 + 22 + 20 = 100% */
    #transaction-table th:nth-child(1), #transaction-table td:nth-child(1) { width: 18%; } /* Data */
    #transaction-table th:nth-child(2), #transaction-table td:nth-child(2) { width: 28%; } /* Descrição - REDUZIDO para dar espaço a Tipo */
    #transaction-table th:nth-child(3), #transaction-table td:nth-child(3) { width: 12%; text-align: center; } /* Tipo - AUMENTADO */
    #transaction-table th:nth-child(4), #transaction-table td:nth-child(4) { width: 22%; text-align: right;} /* Valor */
    #transaction-table th:nth-child(5), #transaction-table td:nth-child(5) { width: 20%; text-align: center;} /* Ações */
     /* =================================================== */

    #transaction-table .action-btn {
        padding: 0; /* Remover padding dos botões */
        margin: 0;
    }
     #transaction-table .edit-btn {
         margin-right: 4px; /* Espaço entre botões */
    }
    #transaction-table td:nth-child(5) {
       /* Centralização com text-align/vertical-align */
       text-align: center;
       vertical-align: middle;
       padding: 4px; /* Reduz padding da célula */
    }

    .adsense-tool { max-width: 95%; }
}

@media (max-width: 480px) {
    .container { padding: 10px; margin-left: 5px; margin-right: 5px; width: auto; }
    #transaction-form { padding: 15px; }
    .radio-group { gap: 10px; }
     #transaction-table th,
     #transaction-table td { padding: 6px 4px; font-size: 0.85em; }
     #transaction-table .action-btn { padding: 0; font-size: 0.8em; margin: 0; }
      #transaction-table .edit-btn {
         margin-right: 3px; /* Espaço entre botões */
    }

    /* === Ajuste de larguras para telas pequenas (<= 480px) === */
    /* Nova Proposta: Data 20%, Descrição 26%, Tipo 12%, Valor 20%, Ações 22% */
    /* Total: 20 + 26 + 12 + 20 + 22 = 100% */
    #transaction-table th:nth-child(1), #transaction-table td:nth-child(1) { width: 20%; font-size: 0.8em;} /* Data */
    #transaction-table th:nth-child(2), #transaction-table td:nth-child(2) { width: 26%; font-size: 0.8em; } /* Descrição - REDUZIDO mais */
    #transaction-table th:nth-child(3), #transaction-table td:nth-child(3) { width: 12%; text-align: center; font-size: 0.8em; } /* Tipo - MANTIDO */
    #transaction-table th:nth-child(4), #transaction-table td:nth-child(4) { width: 20%; text-align: right; font-size: 0.8em;} /* Valor - REDUZIDO */
    #transaction-table th:nth-child(5), #transaction-table td:nth-child(5) { width: 22%; text-align: center;} /* Ações - AUMENTADO */
    /* ========================================================== */

    #transaction-table td:nth-child(5) {
       /* Centralização com text-align/vertical-align */
       text-align: center;
       vertical-align: middle;
       padding: 3px; /* Reduz padding da célula */
    }


    .export-buttons { flex-direction: column; }
    .export-buttons button { width: 100%; }
     .adsense-tool { max-width: 95%; margin-left: 5px; margin-right: 5px; }
}