body { background: #f5f7fb; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.card-header { background: #fff; font-weight: 600; }
.cae-resultados { width: min(100%, 48rem); }
.cae-chip { text-align: left; white-space: normal; }
dt { color: #555; font-weight: 600; }


/* ---- Barra superior e menu lateral ---- */
.alert:empty, .validation-summary-valid { display: none !important; }
.topo { position: fixed; top: 0; left: 0; right: 0; height: 52px; z-index: 1030; background: #0d47a1; display: flex; align-items: center; gap: .75rem; padding: 0 1rem; }
.topo-marca { color: #fff; font-weight: 600; text-decoration: none; font-size: 1.1rem; white-space: nowrap; }
.menu-lateral { position: fixed; top: 52px; bottom: 0; left: 0; width: 250px; overflow-y: auto; background: #fff; border-right: 1px solid #dee2e6; padding: .5rem 0; z-index: 1020; }
.menu-grupo { display: block; width: 100%; text-align: left; background: none; border: 0; padding: .6rem 1rem; font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #495057; }
.menu-grupo::after { content: "\25BE"; float: right; transition: transform .15s; }
.menu-grupo.collapsed::after { transform: rotate(-90deg); }
.menu-item { display: block; padding: .5rem 1rem; color: #212529; text-decoration: none; font-size: .92rem; }
.menu-item.sub { padding-left: 1.75rem; }
.menu-item:hover { background: #eef3fb; color: #0d47a1; }
.menu-item.activo { background: #e3edfb; color: #0d47a1; font-weight: 600; border-left: 3px solid #0d47a1; }
.menu-fundo { display: none; }
.conteudo.com-menu { margin-left: 250px; margin-top: 52px; width: auto; }
@media (max-width: 991.98px) {
    .menu-lateral { transform: translateX(-100%); transition: transform .2s; width: 270px; }
    .menu-lateral.aberto { transform: none; box-shadow: 0 0 20px rgba(0,0,0,.25); }
    .menu-fundo.aberto { display: block; position: fixed; inset: 52px 0 0 0; background: rgba(0,0,0,.35); z-index: 1010; }
    .conteudo.com-menu { margin-left: 0; }
}

/* Formulário de lançamento: colunas avançadas (imposto, base, motivo, centro de custo) escondidas por defeito */
#tabela-linhas:not(.mostrar-extras) .col-extra { display: none; }
