/* ─────────────────────────────────────────────────────────────────────────────
 *  erp.css — ERP Marmita Fitness
 *
 *  Carregado DEPOIS do app.css, e é a única forma de ajustar o visual.
 *
 *  O app.css é COMPARTILHADO entre as aplicações SIGE, e o ERP não pode alterá-lo
 *  (ADR-0015, decisão 3): mudança feita para caber uma tela daqui quebra outro
 *  sistema, e ninguém descobre até quebrar.
 *
 *  Só entra aqui o que o app.css não resolve. Se um dia algo daqui servir a outra
 *  aplicação SIGE, sobe para o app.css — e isso é decisão de quem mantém o app.css,
 *  não deste projeto.
 *
 *  As cores vêm das variáveis do app.css. Nenhum literal hexadecimal: o doc 02 e o
 *  ADR-0015 fixam o app.css como fonte única dos tokens, e repetir #1A55E1 aqui
 *  criaria o segundo lugar onde a mesma cor pode divergir.
 * ───────────────────────────────────────────────────────────────────────────── */

/* Tabela de listagem. O app.css não traz classe de tabela — é Bootstrap, e o que
   falta é só o peso do cabeçalho e o alinhamento numérico. */
.tabela-sige thead th {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--text-muted);
    border-bottom: 2px solid var(--border);
    white-space: nowrap;
}

.tabela-sige td {
    vertical-align: middle;
    font-size: .875rem;
}

/* Quantidade e dinheiro alinham à direita e usam largura fixa de dígito: coluna de
   número que dança a cada linha é ilegível. */
.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Estado vazio — doc 08 exige mensagem amigável, e não tabela em branco. */
.vazio {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--text-soft);
}

.vazio i {
    font-size: 2.5rem;
    color: var(--border);
    display: block;
    margin-bottom: .75rem;
}

/* Campo obrigatório — doc 08. */
.form-label.obrigatorio::after {
    content: " *";
    color: var(--danger);
    font-weight: 700;
}

/* Linha de item de documento: apontamento e perda têm N itens, e a tela precisa
   deixar acrescentar e remover sem recarregar. */
.item-linha {
    display: grid;
    grid-template-columns: 1fr 8rem 10rem 2.5rem;
    gap: .5rem;
    align-items: end;
    margin-bottom: .5rem;
}

@media (max-width: 767.98px) {
    .item-linha {
        grid-template-columns: 1fr;
        padding-bottom: .75rem;
        border-bottom: 1px solid var(--border-light);
    }
}

/* Decomposição do disponível. Quem lê "140" precisa ver que 40 é produção que ainda
   não existe — o termo prospectivo da Constituição §11. */
.disponivel-parcela {
    font-size: .75rem;
    color: var(--text-muted);
}

.disponivel-parcela .valor {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--text);
}

/* Aviso de decisão: onde a tela precisa explicar por que o sistema recusou algo. */
.nota-decisao {
    font-size: .75rem;
    color: var(--text-muted);
    border-left: 2px solid var(--border);
    padding-left: .625rem;
    margin-top: .375rem;
}

/* ── Logo (ajustes do ERP; app.css intocado — ADR-0015) ───────────────────────
   O full_logo tem duas linhas (SIGE + SISTEMA TECNOLOGIA). */

/* Login: um pouco maior que os 40px do app.css. */
.auth-logo img { height: 52px; width: auto; }

/* Sidebar: ocupa a largura util do menu (o padding de .sige-sidebar-brand dá a
   folga lateral). Altura automatica mantem a proporcao. O app.css inverte a
   imagem para branco (filter em .sige-sidebar-brand img). */
.sige-sidebar-brand img { width: 100%; height: auto; display: block; }
