/* ==========================================================================
   CEO MANAGER � Folha de estilo �nica
   --------------------------------------------------------------------------
   Estrutura:
     0. Base do template ASP.NET (html, foco, body, rodap� fixo)
     1. Tokens (:root) � cores, raio, sombra; dispon�veis para todo o app
     2. Sidebar "Verde Agro" (chrome do layout, fora de .bi-agro)
     3. Componentes avulsos (a confirmar uso)
     4. Design System "Verde Agro" (.bi-agro) � conte�do das views

   Carregar UMA vez no <head> do _Layout.cshtml, DEPOIS do CSS do
   Bootstrap/AdminLTE. As views convertidas s� envolvem o conte�do em
   <div class="bi-agro">. As fontes Sora/Inter v�m por <link> no <head>.
   ========================================================================== */


/* 0. BASE DO TEMPLATE ======================================================
   Herdado do template padr�o do ASP.NET Core. Mantido.                     */
html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

/* Anel de foco padr�o do template (azul). Pode ser trocado por verde no
   futuro para ficar coerente com a marca � ver nota no chat. */
.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

body {
    background-color: #f0f2f5;
    margin-bottom: 60px; /* espa�o para o rodap� fixo */
}


/* 1. TOKENS ================================================================
   Em :root para que a sidebar, a navbar e as views possam referenciar as
   mesmas cores. Vari�veis n�o pintam nada sozinhas � n�o afetam telas ainda
   n�o convertidas.                                                          */
:root {
    --green-900: #0b3d2c;
    --green-700: #146c43;
    --green-600: #1a8552;
    --green-500: #27a366;
    --green-400: #4cc088;
    --green-100: #dff3e7;
    --green-200: #cfe8da; /* borda de superf�cie verde-100 (bot�o de a��o "ver") */
    --ink: #0e2318;
    --ink-2: #41564a;
    --muted: #6b7f72;
    --line: #e6ede8;
    --blue: #1e4a7b; /* acento secund�rio (m�dulo BPO, �cone de �rea) */
    --blue-100: #e4edf7; /* fundo suave do acento azul */
    --blue-200: #cddef0; /* borda do acento azul */
    --danger: #d64550; /* bot�o Sair / estados de erro */
    --danger-100: #fbe9ea; /* fundo suave de perigo (card-perigo, nota de perigo) */
    --danger-200: #f0d4d6; /* borda de perigo */
    --warn: #b0770f; /* aten��o / �mbar � margens, saldos pendentes */
    --warn-100: #fbf1df; /* fundo suave de aten��o */
    --warn-200: #f0e1c2; /* borda de aten��o */
    --surface-alt: #f4f7fa; /* superf�cie neutra p/ blocos agrupadores dentro de formul�rio */

    --radius: 20px;
    --shadow: 0 10px 30px rgba(11,61,44,.07), 0 2px 6px rgba(11,61,44,.05);
}


/* 2. SIDEBAR "VERDE AGRO" ==================================================
   Chrome do layout AdminLTE (fica FORA de .bi-agro). Consolidado a partir do
   <style> que estava inline no _Layout.cshtml � pode remover aquele bloco.  */
.app-sidebar {
    background: linear-gradient(270deg, #2a8a5e 0%, #146c43 42%, #0b3d2c 100%) !important;
    font-family: 'Sora', system-ui, sans-serif;
}

    /* ---------- Marca / topo ---------- */
    .app-sidebar .brand-link {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding-top: 28px;
        padding-bottom: 22px;
        padding-left: 16px;
        padding-right: 16px;
        border-bottom: 1px solid rgba(255,255,255,.08);
        background: transparent;
        min-height: 110px;
        overflow: visible;
    }

        .app-sidebar .brand-link img {
            max-height: 72px;
            width: auto;
            border-radius: 10px;
        }

    .app-sidebar .brand-logo {
        width: 44px;
        height: 44px;
        flex: none;
        border-radius: 14px;
        background: linear-gradient(135deg, #4cc088, #0b3d2c);
        color: #fff;
        display: grid;
        place-items: center;
        font-size: 1.1rem;
        box-shadow: 0 10px 30px rgba(11,61,44,.25);
    }

    .app-sidebar .brand-text {
        font-family: 'Sora', sans-serif;
        font-weight: 800;
        font-size: 1.15rem;
        letter-spacing: -.01em;
        color: #ffffff !important;
    }

    /* Container da logo no topo da sidebar */
    .app-sidebar .sidebar-brand {
        padding: 30px 16px 10px 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 80px;
        overflow: visible;
    }

        .app-sidebar .sidebar-brand img {
            max-height: 65px;
            width: auto;
            border-radius: 10px;
        }

    /* R�tulo "MENU" Não alterar aqui (ver _Layout.cshtml)*/
    .app-sidebar .menu-label {
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .16em;
        text-transform: uppercase;
        color: rgba(255,255,255,.4);
        padding: 4px 16px 8px;
    }

    /* ---------- Itens do menu ---------- */
    .app-sidebar .nav-sidebar .nav-item {
        margin: 2px 10px;
    }

    .app-sidebar .nav-link > i,
    .app-sidebar .nav-link .nav-icon {
        color: #6ee7b7 !important;
        font-size: 1rem;
        margin-right: 12px;
        width: 20px;
        text-align: center;
    }

    .app-sidebar .nav-link:hover {
        color: #ffffff;
        background: rgba(255,255,255,.08);
    }

    .app-sidebar .nav-link .right,
    .app-sidebar .nav-link .fa-angle-right {
        color: rgba(255,255,255,.5) !important;
        margin-right: 0;
        width: auto;
    }

    .app-sidebar .nav-link.active {
        color: #ffffff;
        font-weight: 700;
        background: rgba(76,192,136,.18);
        box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
    }

        .app-sidebar .nav-link.active .nav-icon {
            color: #6ee7b7;
        }

    /* 1º nível de submenu (Cadastros, Fluxo de Caixa sob BPO) */
    .app-sidebar .nav-treeview .nav-link {
        padding-left: 3rem !important;
    }

        .app-sidebar .nav-treeview .nav-link p {
            font-size: .95rem;
        }

    .app-sidebar .nav-treeview .nav-icon {
        font-size: .85rem;
    }

    /* 2º nível (Empresas, Categorias sob Cadastros) — recuo maior */
    .app-sidebar .nav-treeview .nav-treeview > .nav-item > .nav-link {
        padding-left: 4.5rem !important;
    }

    /* Seta dos itens com submenu */
    .app-sidebar .nav-link .nav-arrow {
        color: rgba(255,255,255,.5);
    }


/* 3. COMPONENTES AVULSOS ===================================================
   Fora do design system Verde Agro. Preservado por precau��o � se n�o estiver
   em uso em nenhuma tela, pode ser removido.                                */
.card-glass-light {
    background: rgba(255,255,255,.7) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(255,255,255,.9) !important;
    box-shadow: 0 8px 32px 0 rgba(0,0,0,.05) !important;
}


/* ==========================================================================
   4. DESIGN SYSTEM "VERDE AGRO" (.bi-agro)
   --------------------------------------------------------------------------
   Componentes de conte�do das views. Escopados em .bi-agro para n�o
   reestilizar telas AdminLTE ainda n�o migradas.
   ========================================================================== */

/* Base tipogr�fica */
.bi-agro {
    font-family: 'Inter', system-ui, sans-serif;
    color: var(--ink);
}

    .bi-agro h1,
    .bi-agro h2,
    .bi-agro h3,
    .bi-agro h4,
    .bi-agro .font-display {
        font-family: 'Sora', sans-serif;
        letter-spacing: -.02em;
    }


    /* Bot�es */
    .bi-agro .btn-agro {
        background: var(--green-700);
        border: 1px solid var(--green-700);
        color: #fff;
        border-radius: 999px;
        font-weight: 700;
        font-size: .8rem;
        padding: .5rem 1.1rem;
    }

        .bi-agro .btn-agro:hover {
            background: var(--green-900);
            border-color: var(--green-900);
            color: #fff;
        }

    .bi-agro .btn-agro-outline {
        background: #fff;
        border: 1px solid var(--green-600);
        color: var(--green-700);
        border-radius: 999px;
        font-weight: 700;
        font-size: .8rem;
        padding: .5rem 1.1rem;
    }

        .bi-agro .btn-agro-outline:hover {
            background: var(--green-700);
            color: #fff;
        }


    /* Cart�o base */
    .bi-agro .card-agro {
        background: #fff;
        border: 1px solid var(--line);
        border-radius: var(--radius);
        box-shadow: var(--shadow);
    }

        .bi-agro .card-agro .card-header {
            background: #f2f7f4;
            border-bottom: 1px solid var(--line);
            border-radius: var(--radius) var(--radius) 0 0;
        }


    /* Barra de filtros
   Aplicar como: <div class="card-agro filtros-agro"> e N�O usar py-2 no
   card-body (o padding abaixo d� o respiro que limpa o raio de 20px). */
    .bi-agro .filtros-agro > .card-body {
        padding: 1rem 1.25rem 1.1rem;
    }

    .bi-agro .filtros-agro .form-label {
        margin-bottom: .4rem;
        font-size: .82rem;
    }

    .bi-agro .filtros-agro .form-select {
        border-color: var(--line);
        border-radius: 12px;
        color: var(--ink);
    }

        .bi-agro .filtros-agro .form-select:focus {
            border-color: var(--green-600);
            box-shadow: 0 0 0 .2rem rgba(20,108,67,.12);
        }


    /* KPIs � fundo verde esmaecido (esquerda -> direita) + acento no topo */
    .bi-agro .kpi {
        position: relative;
        overflow: hidden;
        border: 1px solid #ecf4ee;
        border-radius: var(--radius);
        background: linear-gradient(90deg, #eaf5ee 0%, #f4faf6 45%, #ffffff 100%);
        box-shadow: var(--shadow);
        padding: 1.25rem 1.4rem;
    }

        .bi-agro .kpi::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
        }

        .bi-agro .kpi.kpi-1::before {
            background: linear-gradient(90deg, var(--green-900), var(--ink-2));
        }

        .bi-agro .kpi.kpi-2::before {
            background: linear-gradient(90deg, var(--green-600), var(--green-400));
        }

        .bi-agro .kpi.kpi-3::before {
            background: linear-gradient(90deg, var(--green-500), var(--green-400));
        }

        .bi-agro .kpi h4 {
            font-family: 'Sora', sans-serif;
            font-weight: 800;
            font-size: 1.9rem;
            color: var(--ink);
            font-variant-numeric: tabular-nums;
            margin: 0;
        }

            .bi-agro .kpi h4 span {
                font-size: .85rem;
                font-weight: 600;
                color: var(--muted);
            }

        .bi-agro .kpi p {
            color: var(--muted) !important;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: .08em;
            font-size: .72rem !important;
            margin: .25rem 0 0;
        }

        .bi-agro .kpi .kpi-ic {
            width: 40px;
            height: 40px;
            border-radius: 12px;
            background: var(--green-100);
            color: var(--green-700);
            display: grid;
            place-items: center;
            font-size: 1rem;
        }


    /* Barra de progresso em célula (ex.: Produtividade / Espelho de Talhões) */
    .bi-agro .barra-prod {
        height: 6px;
        border-radius: 999px;
        background: #dfe7e2; /* trilho / valor zero */
        overflow: hidden;
        margin-top: 5px;
    }

        .bi-agro .barra-prod > span {
            display: block;
            height: 100%;
            border-radius: 999px;
            background: linear-gradient(270deg, #4cc088, #146c43); /* direita → esquerda */
        }

    /* Tabelas */

    .bi-agro .table-agro {
        font-size: .85rem;
        margin: 0;
    }

        /*.bi-agro .table-agro thead th {
            background: #f2f7f4;
            color: var(--muted);
            text-transform: uppercase;
            letter-spacing: .08em;
            font-size: .68rem;
            font-weight: 700;
            border-bottom: 1px solid var(--line);
        }*/

    /* Cabe�alho fixo s� nas tabelas com rolagem interna (BIs) */
    .bi-agro .table-responsive .table-agro thead th {
        position: sticky;
        top: 0;
        z-index: 10;
    }

        .bi-agro .table-agro tbody td {
            border-bottom: 1px solid #eef3ef;
            vertical-align: middle;
        }

    .bi-agro .talhao-badge {
        display: inline-block;
        padding: .15rem .65rem;
        border-radius: 999px;
        background: var(--green-100);
        color: var(--green-700);
        font-weight: 700;
        font-size: .72rem;
    }

    .bi-agro .prod-cell {
        font-weight: 700;
        color: var(--green-700);
        font-variant-numeric: tabular-nums;
    }

    .bi-agro .sc-cell {
        font-weight: 700;
        color: var(--ink);
    }

    /* Badge de status (reutiliz�vel em tabelas financeiras) */
    .bi-agro .status-agro {
        display: inline-block;
        padding: .2rem .7rem;
        border-radius: 999px;
        font-weight: 700;
        font-size: .7rem;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

        .bi-agro .status-agro.is-ok {
            background: var(--green-700);
            color: #fff;
        }

        .bi-agro .status-agro.is-pendente {
            background: var(--green-100);
            color: var(--green-700);
        }

    /* Faixa de acento do 4� cart�o de KPI */
    .bi-agro .kpi.kpi-4::before {
        background: linear-gradient(90deg, var(--green-700), var(--green-500));
    }

    .bi-agro .kpi.kpi-5::before {
        background: linear-gradient(90deg, var(--warn), #d9a13a);
    }

    /* Cabe�alho fixo ao rolar � vale para TODAS as tabelas .table-agro */
    .bi-agro .table-agro thead th {
        position: sticky;
        top: 0;
        z-index: 10;
    }

    /* Tabela piv� / matriz (custos por talh�o � categoria, e afins) */
    .bi-agro .table-agro.table-pivot th,
    .bi-agro .table-agro.table-pivot td {
        vertical-align: middle;
        font-size: .85rem;
    }

    .bi-agro .table-agro .row-metric-header {
        width: 140px;
        font-weight: 600;
        color: var(--ink-2);
        background: #f6f9f7;
    }

    .bi-agro .table-agro .pivot-group > td {
        background: #eef5f0;
        color: var(--ink);
        font-weight: 700;
    }

    .bi-agro .table-agro tfoot td {
        background: #f2f7f4;
        color: var(--ink);
    }


.bi-agro .text-primary {
    color: var(--green-700) !important;
}

.bi-agro .text-success {
    color: var(--green-700) !important;
}

.bi-agro .text-info {
    color: var(--blue) !important;
}

.bi-agro .text-danger {
    color: var(--danger) !important;
}

.bi-agro .text-warning {
    color: var(--warn) !important;
}

.bi-agro .text-secondary {
    color: var(--muted) !important;
}

.bi-agro .text-muted {
    color: var(--muted) !important;
}

.bi-agro .border-info {
    border-color: var(--blue) !important;
}

.bi-agro .border-success {
    border-color: var(--green-700) !important;
}

.bi-agro .border-primary {
    border-color: var(--green-700) !important;
}

.bi-agro .border-danger {
    border-color: var(--danger) !important;
}

.bi-agro .border-warning {
    border-color: var(--warn) !important;
}

.bi-agro .table-light > td,
.bi-agro .table-light > th {
    background: #f2f7f4 !important;
    color: var(--ink) !important;
}

/* Alertas do Bootstrap (TempData de sucesso/erro) repintados na paleta.
   Ficam como .alert de prop�sito: o data-bs-dismiss do Bootstrap exige essa classe,
   ent�o troc�-los por .nota-agro quebraria o bot�o de fechar. */
.bi-agro .alert {
    border-radius: 12px;
}

.bi-agro .alert-success {
    background: var(--green-100);
    border-color: var(--green-200);
    color: var(--green-900);
}

.bi-agro .alert-warning {
    background: var(--warn-100);
    border-color: var(--warn-200);
    color: var(--warn);
}

.bi-agro .alert-danger {
    background: var(--danger-100);
    border-color: var(--danger-200);
    color: var(--danger);
}

.bi-agro .alert-info {
    background: var(--blue-100);
    border-color: var(--blue-200);
    color: var(--blue);
}

    /* ==========================================================================
   7. CADASTROS � listas CRUD (busca + bot�es de a��o)
   ========================================================================== */

    /* Campo de busca das listas */
    .bi-agro .busca-agro .form-control {
        border-color: var(--line);
        border-radius: 12px;
        color: var(--ink);
    }

        .bi-agro .busca-agro .form-control:focus {
            border-color: var(--green-600);
            box-shadow: 0 0 0 .2rem rgba(20,108,67,.12);
        }

    /* Bot�es de a��o (editar / excluir) � tom suave, s�lido no hover */
    .bi-agro .btn-acao {
        width: 32px;
        height: 32px;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 9px;
        border: 1px solid transparent;
        font-size: .85rem;
        line-height: 1;
    }

    .bi-agro .btn-acao-editar {
        background: #fbf1df;
        color: var(--warn);
        border-color: #f0e1c2;
    }

        .bi-agro .btn-acao-editar:hover {
            background: var(--warn);
            color: #fff;
        }

    .bi-agro .btn-acao-excluir {
        background: #fbe9ea;
        color: var(--danger);
        border-color: #f3d2d4;
    }

        .bi-agro .btn-acao-excluir:hover {
            background: var(--danger);
            color: #fff;
        }

    /* Ver / detalhes � tom verde suave */
    .bi-agro .btn-acao-ver {
        background: var(--green-100);
        color: var(--green-700);
        border-color: var(--green-200);
    }

        .bi-agro .btn-acao-ver:hover {
            background: var(--green-700);
            color: #fff;
        }

    /* Vincular / relacionar � acento azul (secund�rio), p/ distinguir de ver/editar */
    .bi-agro .btn-acao-vincular {
        background: var(--blue-100);
        color: var(--blue);
        border-color: var(--blue-200);
    }

        .bi-agro .btn-acao-vincular:hover {
            background: var(--blue);
            color: #fff;
        }

    /* ==========================================================================
   8. FORMUL�RIOS � telas Create / Edit
   ========================================================================== */
    .bi-agro .form-control,
    .bi-agro .form-select {
        border-radius: 10px;
        color: var(--ink);
    }

        .bi-agro .form-control:focus,
        .bi-agro .form-select:focus {
            border-color: var(--green-600);
            box-shadow: 0 0 0 .2rem rgba(20,108,67,.12);
        }

    .bi-agro .card-agro .card-footer {
        background: #f2f7f4;
        border-top: 1px solid var(--line);
        border-radius: 0 0 var(--radius) var(--radius);
    }

    /* Confirma��o de exclus�o (Delete) */
    .bi-agro .card-agro.card-perigo {
        border-color: var(--danger-200);
    }

        .bi-agro .card-agro.card-perigo .card-header {
            background: var(--danger-100);
            border-bottom-color: var(--danger-200);
        }

    /* --------------------------------------------------------------------------
       Nota / aviso dentro de formul�rio e de confirma��o de exclus�o.
       Substitui o callout do AdminLTE. Uso:
         <div class="nota-agro is-info">      � informativa (verde)
         <div class="nota-agro is-perigo">    � alerta de exclus�o (vermelha)
           <div class="nota-agro-titulo"><i class="fa-solid fa-circle-info me-1"></i> Nota</div>
           <div class="nota-agro-corpo">texto</div>
         </div>
       -------------------------------------------------------------------------- */
    .bi-agro .nota-agro {
        border-radius: 12px;
        padding: .9rem 1rem;
        margin-top: 1rem;
    }

        .bi-agro .nota-agro .nota-agro-titulo {
            font-weight: 700;
            margin-bottom: .25rem;
        }

        .bi-agro .nota-agro .nota-agro-corpo,
        .bi-agro .nota-agro p {
            color: var(--ink-2);
            margin: 0;
        }

        .bi-agro .nota-agro.is-info {
            background: var(--green-100);
            border: 1px solid var(--green-200);
        }

            .bi-agro .nota-agro.is-info .nota-agro-titulo {
                color: var(--ink);
            }

                .bi-agro .nota-agro.is-info .nota-agro-titulo i {
                    color: var(--green-600);
                }

        .bi-agro .nota-agro.is-perigo {
            background: var(--danger-100);
            border: 1px solid var(--danger-200);
        }

            .bi-agro .nota-agro.is-perigo .nota-agro-titulo,
            .bi-agro .nota-agro.is-perigo .nota-agro-titulo i {
                color: var(--danger);
            }

    .bi-agro .btn-perigo {
        background: var(--danger);
        border: 1px solid var(--danger);
        color: #fff;
        border-radius: 999px;
        font-weight: 700;
        font-size: .8rem;
        padding: .5rem 1.1rem;
    }

        .bi-agro .btn-perigo:hover {
            background: #b8363f;
            border-color: #b8363f;
            color: #fff;
        }

/* ==========================================================================
   9. FLUXO DE CAIXA / DRE — tabela matricial de 14 colunas (.table-dre)
   --------------------------------------------------------------------------
   Tabela densa: 12 meses + total + categorias, com hierarquia de 3 níveis
   vinda do prefixo numérico da categoria. Não usa .table-agro porque o
   Bootstrap de tabela atrapalha a densidade e o zebrado por nível — mas
   segue a mesma paleta Verde Agro.

   Regras de cor que carregam significado e NÃO podem ser suavizadas:
     - valor negativo sempre em vermelho (--danger);
     - linhas de nível 1/2, subtotais e resultados sempre em negrito.
   ========================================================================== */
.bi-agro .table-dre {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    color: var(--ink);
}

    .bi-agro .table-dre th,
    .bi-agro .table-dre td {
        border: 1px solid var(--line);
        padding: 5px 9px;
        text-align: right;
    }

    /* Cabeçalho dos meses — mesmo gradiente da sidebar (direita -> esquerda) */
    .bi-agro .table-dre .cabecalho {
        background: linear-gradient(270deg, #2a8a5e 0%, var(--green-700) 42%, var(--green-900) 100%);
        color: #fff;
        border-color: rgba(255,255,255,.14);
        font-family: 'Sora', sans-serif;
        font-size: .8rem;
        font-weight: 700;
        letter-spacing: .02em;
        text-align: center;
        text-transform: uppercase;
    }

    /* Nível 1 — grupo raiz do plano de contas */
    .bi-agro .table-dre .nivel-1 {
        background: var(--green-100);
        font-weight: 700;
        color: var(--ink);
        cursor: pointer;
    }

    /* Nível 2 — subgrupo */
    .bi-agro .table-dre .nivel-2 {
        background: #eef5f0;
        font-weight: 700;
        font-style: italic;
        color: var(--ink);
        cursor: pointer;
    }

    /* Nível 3 — categoria analítica (folha, clicável para drill-down) */
    .bi-agro .table-dre .nivel-3 {
        background: #fff;
        color: var(--ink-2);
    }

        .bi-agro .table-dre .nivel-3:hover {
            background: #f7fbf9;
        }

    /* Subtotais de receita e despesa */
    .bi-agro .table-dre .linha-subtotal-receita,
    .bi-agro .table-dre .linha-subtotal-despesa {
        background: var(--green-200);
        font-weight: 700;
        color: var(--ink);
    }

    /* Resultados e saldo — degradê verde suave, mantendo fundo claro para
       que o vermelho de valor negativo continue legível. */
    .bi-agro .table-dre .linha-resultado-verde {
        background: linear-gradient(270deg, #d6ecdf 0%, var(--green-200) 100%);
        font-weight: 700;
        color: var(--ink);
    }

    .bi-agro .table-dre .linha-margem td {
        background: var(--blue-100);
        border-color: var(--blue-200);
    }

    .bi-agro .table-dre .margem-azul {
        color: var(--blue);
        font-weight: 700;
    }

    /* Semântica de sinal — vermelho de negativo é informação, não decoração */
    .bi-agro .table-dre .valor-negativo {
        color: var(--danger);
    }

    .bi-agro .table-dre .valor-positivo {
        color: var(--ink);
    }

    /* Seta de expandir/recolher dos grupos */
    .bi-agro .table-dre .btn-toggle {
        display: inline-block;
        width: 18px;
        margin-right: 5px;
        color: var(--green-700);
        font-style: normal;
        font-weight: 700;
        font-size: .7rem;
        text-align: center;
        cursor: pointer;
        user-select: none;
    }

/* Moldura da tabela: o raio de 20px do card-agro precisa recortar a tabela */
.bi-agro .quadro-dre {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    background: #fff;
}

/* Cabeçalho verde dos modais (drill-down e saldo inicial) */
.bi-agro .modal-header-agro,
.modal .modal-header-agro {
    background: linear-gradient(270deg, #2a8a5e 0%, var(--green-700) 42%, var(--green-900) 100%);
    color: #fff;
    border-bottom: 0;
}

    .modal .modal-header-agro .modal-title {
        font-family: 'Sora', sans-serif;
        font-weight: 700;
        font-size: 1rem;
    }

/* ==========================================================================
   10. TABELAS COM TOTAL — regras propositalmente FORA de .bi-agro
   --------------------------------------------------------------------------
   Views/Producao/Romaneios.cshtml usa .table-agro e .tabela-total mas ainda
   NÃO tem o wrapper .bi-agro. Escopar estas duas regras deixaria aquela tela
   sem cabeçalho e sem linha de total — por isso elas ficam no escopo global.
   Ao migrar Romaneios.cshtml, mover este bloco para dentro de .bi-agro.

   Referenciavam --brand / --brand-weak, que nunca existiram em :root: as
   declarações de cor eram inválidas e caíam para transparente/herdado,
   enquanto o resto do bloco (sticky, caixa alta, padding) seguia valendo.
   Trocado pelos tokens reais da paleta.
   ========================================================================== */
.table-agro tfoot .tabela-total td {
    background: #f2f7f4;
    border-top: 2px solid var(--green-700);
    font-weight: 800;
    color: var(--ink);
    padding: 12px 14px;
}

.table-agro thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f2f7f4;
    color: var(--green-700);
    font-weight: 800;
    font-size: .9rem;
    letter-spacing: .3px;
    padding: 12px 14px;
    border-bottom: 2px solid var(--green-700);
    text-transform: uppercase;
}


