/* --- Reset e Estilo Base --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Inter', sans-serif;
}

body {
    background-color: #f0f2f5;
    /* Fundo cinza claro da imagem */
    color: #1c1e21;
    padding: 20px;
}

.container {
    max-width: 1400px;
    margin: 0 auto;
}

/* --- Cabeçalho --- */
header {
    margin-bottom: 40px;
    text-align: center;
}

header h1 {
    font-size: 2rem;
    font-weight: 700;
    color: #2d3436;
}

p {
    font-size: 12px;
    color: #636e72;
    margin-top: 5px;
    margin-bottom: 30px;
}

.highlight {
    color: #00b894;
}

/* Layout do Header */
.header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 25px;
}

.header-controls {
    display: flex;
    align-items: center;
    gap: 20px;
}

/* Badge de Variação */
.weight-badge {
    background: #fff;
    padding: 8px 15px;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.weight-up {
    color: #ff7675;
}

/* Vermelho para ganho */
.weight-down {
    color: #00b894;
}

/* Verde para perda */

/* Filtros menores para o Header */
.filter-group {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    padding: 5px 10px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.input-field-sm {
    padding: 5px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 12px;
}

.btn-filter {
    background: #00b894;
    color: white;
    border: none;
    padding: 5px 12px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
}

.btn-clear {
    background: none;
    border: none;
    cursor: pointer;
    color: #999;
}

/* --- Grid Principal --- */
.main-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* --- Ajuste no Histórico de Evolução --- */
.top-row {
    display: grid;
    grid-template-columns: 320px 1fr;
    /* Fixamos um pouco mais a largura do form */
    gap: 20px;
    align-items: start;
    overflow: hidden;
    /* Garante que nada saia para fora dessa linha */
}

/* Linha Inferior: Gráficos um ao lado do outro */
.bottom-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* Dois gráficos com tamanhos iguais */
    gap: 20px;
}

/* Ajustes de Altura e Tabela */
.card {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    height: 100%;
    /* Garante que os cards da mesma linha tenham a mesma altura */
}

.chart-card {
    height: 400px;
    /* Altura para os gráficos ficarem bem visíveis */
}

/* --- Ajuste do Histórico para 5 entradas com Scroll --- */
.table-container {
    max-height: 280px;
    /* Altura calculada para mostrar ~5 linhas e o cabeçalho */
    overflow-y: auto;
    /* Ativa o scroll vertical quando passar da altura */
    overflow-x: auto;
    /* Mantém o scroll horizontal se a tela encolher */
    padding-right: 5px;
    /* Pequeno respiro para a barra de rolagem não cobrir o texto */
}

/* Estilização opcional da barra de rolagem para ficar mais elegante */
.table-container::-webkit-scrollbar {
    width: 6px;
}

.table-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.table-container::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 10px;
}

.table-container::-webkit-scrollbar-thumb:hover {
    background: #4f46e5;
    /* Cor indigo ao passar o mouse */
}

/* Garante que o cabeçalho da tabela fique fixo no topo enquanto você rola */
table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fafafa;
    /* Mesma cor de fundo do th original */
    box-shadow: 0 1px 0 #eee;
    /* Linha sutil para separar do corpo ao rolar */
}

/* --- Ajustes de Responsividade (Mobile) --- */

/* --- Ajustes de Responsividade (Mobile) --- */
@media (max-width: 768px) {

    /* 1. Ajuste do Header e Filtros */
    .header-content {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .header-controls {
        flex-direction: column;
        width: 100%;
        gap: 15px;
    }

    /* Transforma o grupo de filtros em bloco vertical */
    .filter-group {
        display: flex;
        flex-direction: column;
        /* Datas em cima, botões embaixo */
        width: 100%;
        gap: 10px;
        padding: 15px;
    }

    .filter-group span {
        display: none;
        /* Remove o "até" para ganhar espaço */
    }

    .input-field-sm {
        width: 100%;
        height: 40px;
        /* Mais fácil de tocar no celular */
        font-size: 14px;
    }

    /* Container para os botões do filtro ficarem lado a lado abaixo das datas */
    .filter-actions {
        display: grid;
        grid-template-columns: 1fr 40px;
        /* Botão Filtrar grande e X pequeno */
        gap: 10px;
        width: 100%;
    }

    .btn-filter {
        height: 40px;
        width: 100%;
    }

    /* 2. Ajuste da Grid Principal */
    .top-row,
    .bottom-row {
        grid-template-columns: 1fr !important;
        display: flex;
        flex-direction: column;
    }

    /* 3. Correção Definitiva do Scroll da Tabela */
    .table-container {
        display: block;
        width: 100%;
        overflow-x: auto;
        /* Força o scroll horizontal */
        -webkit-overflow-scrolling: touch;
        /* Scroll suave no iOS */
        border-radius: 8px;
    }

    table {
        min-width: 600px;
        /* Garante que a tabela não "esprema" as colunas */
        font-size: 13px;
    }

    /* 4. Ajuste dos Gráficos */
    .chart-card {
        height: 300px;
    }
}

/* Ajuste extra para os botões de ação na tabela no mobile */
.btn-edit,
.btn-delete {
    padding: 5px;
    margin-right: 5px;
    font-size: 11px;
}

h3 {
    font-size: 16px;
    margin-bottom: 15px;
    color: #444;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

/* --- Formulário --- */
/* --- Ajuste no Formulário para evitar invasão --- */
.input-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    /* Garante que o grupo não passe do card */
}

.input-field {
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
}

/* Ajuste na linha de tempo (Minutos e Segundos) */
.time-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* Divide o espaço exatamente ao meio */
    gap: 10px;
    width: 100%;
}

.time-inputs .input-field {
    min-width: 0;
    /* Importante: permite que o input encolha se o container diminuir */
    width: 100%;
}

.btn-save {
    background-color: #00b894;
    color: white;
    padding: 12px;
    border: none;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 5px;
}

/* Botão de Delete no Histórico */
.btn-delete {
    color: #ff7675;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.8rem;
}

.btn-delete:hover {
    text-decoration: underline;
    opacity: 0.8;
}

/* Botão de Editar no Histórico */
.btn-edit {
    color: #0984e3;
    /* Azul */
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    margin-right: 10px;
    transition: opacity 0.2s;
}

.btn-edit:hover {
    text-decoration: underline;
    opacity: 0.8;
}


table {
    min-width: 450px;
    /* Garante que a tabela tenha um tamanho mínimo legível */
}

th {
    text-align: left;
    padding: 10px;
    background: #fafafa;
    color: #777;
    font-weight: 600;
}

td {
    padding: 10px;
    border-bottom: 1px solid #f0f0f0;
}

/* --- Coluna da Direita (Gráficos Empilhados) --- */
.charts-section {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.card-header-help {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.card-header-help h3 {
    margin-bottom: 0;
    border-bottom: none;
}

.info-icon {
    background: #4f46e5;
    color: white;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    cursor: help;
    font-weight: bold;
    transition: transform 0.2s;
}

.info-icon:hover {
    transform: scale(1.2);
    background: #1a1a1a;
}