@media (min-width: 992px) {
    .menu-lateral {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        flex-shrink: 0;
    }
}

.menu-lateral .nav-link {
    white-space: nowrap;
    font-size: .95rem;
}

.menu-grupo {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: rgba(255, 255, 255, .45);
    margin: .9rem 0 .25rem .5rem;
}

.conteudo {
    min-width: 0; /* deixa tabelas largas rolarem dentro do card em vez de estourar a página */
}

.cartao-login {
    width: 100%;
    max-width: 380px;
}

/* Tabelas de lançamentos */
.tabela-dados {
    font-size: .9rem;
}

.tabela-dados td, .tabela-dados th {
    white-space: nowrap;
    vertical-align: middle;
}

.tabela-dados .col-texto {
    white-space: normal;
    min-width: 180px;
}

.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.tabela-dados tfoot td {
    font-weight: 600;
}

/* Indicadores do painel */
.kpi .rotulo {
    font-size: .8rem;
    color: var(--bs-secondary-color);
}

.kpi .valor {
    font-size: 1.35rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.kpi .detalhe {
    font-size: .8rem;
    color: var(--bs-secondary-color);
}

/* DRE */
.dre td.sub {
    padding-left: 1.75rem;
    color: var(--bs-secondary-color);
    font-size: .85rem;
}

.dre tr.destaque td {
    font-weight: 600;
    background: var(--bs-tertiary-bg);
}

.negativo {
    color: var(--bs-danger);
}

.form-grade {
    max-width: 900px;
}

/* Gráfico do painel — cores da paleta categórica de referência (slots 1 e 2, validados para daltonismo) */
.grafico {
    --serie-1: #2a78d6;
    --serie-2: #eb6834;
    --texto-2: #52514e;
    --grade: #e6e5e0;
}

.legenda-cor {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    margin-right: 6px;
    vertical-align: -1px;
}

a.card.kpi:hover {
    border-color: var(--bs-primary);
}
