/* =====================================================================
   AgroCPProteus — tema AgroCP (mesmo padrão do Bridge)
   ---------------------------------------------------------------------
   Carregado por último no _Styles: sobrescreve as variáveis do Bootstrap
   / AdminLTE, do SweetAlert e do my-styles.css. Para mudar a cor do portal,
   mexer só nos tokens do :root abaixo.

   Paleta da marca:
     #116837 verde principal (destaque)     #348464 verde médio (hover)
     #19573F verde conversão                 #008250 verde conversão hover
     #4ED609 verde claro (acento)            #222222 topo / neutro escuro
     #333333 texto geral
   O #4ED609 não leva texto branco por cima (contraste baixo): fica só em acentos.
   ===================================================================== */

:root {
    /* ---- Tokens da marca ---- */
    --tema-verde: #116837;
    --tema-verde-rgb: 17, 104, 55;
    --tema-verde-escuro: #0c4f29;
    --tema-verde-medio: #348464;
    --tema-verde-medio-rgb: 52, 132, 100;
    --tema-verde-conversao: #19573F;
    --tema-verde-conversao-hover: #008250;
    --tema-verde-claro: #4ED609;
    --tema-verde-suave: #e6f2ea;
    --tema-verde-suave-hover: #d2e8da;
    --tema-verde-borda: #a6cdb4;
    --tema-topo: #222222;
    --tema-texto: #333333;
    --tema-raio: 10px;

    /* ---- Bootstrap 5.3 ---- */
    --bs-primary: var(--tema-verde);
    --bs-primary-rgb: var(--tema-verde-rgb);
    --bs-primary-text-emphasis: #0a3f21;
    --bs-primary-bg-subtle: var(--tema-verde-suave);
    --bs-primary-border-subtle: var(--tema-verde-borda);
    --bs-success: var(--tema-verde-medio);
    --bs-success-rgb: var(--tema-verde-medio-rgb);
    --bs-success-text-emphasis: #1f5641;
    --bs-success-bg-subtle: #e4f1eb;
    --bs-success-border-subtle: #a9d2bf;
    --bs-body-color: var(--tema-texto);
    --bs-body-color-rgb: 51, 51, 51;
    --bs-heading-color: inherit;
    --bs-link-color: var(--tema-verde);
    --bs-link-color-rgb: var(--tema-verde-rgb);
    --bs-link-hover-color: var(--tema-verde-conversao-hover);
    --bs-link-hover-color-rgb: 0, 130, 80;
    --bs-focus-ring-color: rgba(var(--tema-verde-rgb), .25);
    --bs-form-valid-color: var(--tema-verde-medio);
    --bs-form-valid-border-color: var(--tema-verde-medio);
}

/* =====================================================================
   Botões (o Bootstrap fixa as cores na classe, então troca as variáveis do .btn)
   ===================================================================== */
.btn-primary {
    --bs-btn-bg: var(--tema-verde);
    --bs-btn-border-color: var(--tema-verde);
    --bs-btn-hover-bg: var(--tema-verde-medio);
    --bs-btn-hover-border-color: var(--tema-verde-medio);
    --bs-btn-active-bg: var(--tema-verde-escuro);
    --bs-btn-active-border-color: var(--tema-verde-escuro);
    --bs-btn-disabled-bg: var(--tema-verde);
    --bs-btn-disabled-border-color: var(--tema-verde);
    --bs-btn-focus-shadow-rgb: var(--tema-verde-rgb);
}

/* Ação positiva (Salvar, Adicionar...) no verde de conversão */
.btn-success {
    --bs-btn-bg: var(--tema-verde-conversao);
    --bs-btn-border-color: var(--tema-verde-conversao);
    --bs-btn-hover-bg: var(--tema-verde-conversao-hover);
    --bs-btn-hover-border-color: var(--tema-verde-conversao-hover);
    --bs-btn-active-bg: var(--tema-verde-escuro);
    --bs-btn-active-border-color: var(--tema-verde-escuro);
    --bs-btn-disabled-bg: var(--tema-verde-conversao);
    --bs-btn-disabled-border-color: var(--tema-verde-conversao);
    --bs-btn-focus-shadow-rgb: 25, 87, 63;
}

.btn-outline-primary {
    --bs-btn-color: var(--tema-verde);
    --bs-btn-border-color: var(--tema-verde);
    --bs-btn-hover-bg: var(--tema-verde);
    --bs-btn-hover-border-color: var(--tema-verde);
    --bs-btn-active-bg: var(--tema-verde-escuro);
    --bs-btn-active-border-color: var(--tema-verde-escuro);
    --bs-btn-disabled-color: var(--tema-verde);
    --bs-btn-disabled-border-color: var(--tema-verde);
    --bs-btn-focus-shadow-rgb: var(--tema-verde-rgb);
}

.btn-outline-success {
    --bs-btn-color: var(--tema-verde-medio);
    --bs-btn-border-color: var(--tema-verde-medio);
    --bs-btn-hover-bg: var(--tema-verde-medio);
    --bs-btn-hover-border-color: var(--tema-verde-medio);
    --bs-btn-active-bg: var(--tema-verde);
    --bs-btn-active-border-color: var(--tema-verde);
    --bs-btn-focus-shadow-rgb: var(--tema-verde-medio-rgb);
}

/* Secundário (Fechar, Voltar): preto da marca, hover cinza */
.btn-secondary {
    --bs-btn-bg: var(--tema-topo);
    --bs-btn-border-color: var(--tema-topo);
    --bs-btn-hover-bg: #888583;
    --bs-btn-hover-border-color: #888583;
    --bs-btn-active-bg: #111111;
    --bs-btn-active-border-color: #111111;
    --bs-btn-disabled-bg: var(--tema-topo);
    --bs-btn-disabled-border-color: var(--tema-topo);
}

.btn-link {
    --bs-btn-color: var(--tema-verde);
    --bs-btn-hover-color: var(--tema-verde-conversao-hover);
    --bs-btn-active-color: var(--tema-verde-escuro);
}

/* =====================================================================
   Formulários, paginação, abas, dropdown, progresso
   ===================================================================== */
.form-control:focus,
.form-select:focus {
    border-color: var(--tema-verde-medio);
    box-shadow: 0 0 0 .2rem rgba(var(--tema-verde-rgb), .2);
}

.form-check-input:checked {
    background-color: var(--tema-verde) !important;
    border-color: var(--tema-verde) !important;
}

.form-check-input:focus {
    border-color: var(--tema-verde-medio);
    box-shadow: 0 0 0 .2rem rgba(var(--tema-verde-rgb), .2);
}

.form-switch .form-check-input:focus:not(:checked) {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23348464'/%3e%3c/svg%3e");
}

.pagination {
    --bs-pagination-color: var(--tema-verde);
    --bs-pagination-hover-color: var(--tema-verde-escuro);
    --bs-pagination-hover-bg: var(--tema-verde-suave);
    --bs-pagination-focus-color: var(--tema-verde-escuro);
    --bs-pagination-focus-bg: var(--tema-verde-suave);
    --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(var(--tema-verde-rgb), .2);
    --bs-pagination-active-bg: var(--tema-verde);
    --bs-pagination-active-border-color: var(--tema-verde);
}

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--tema-verde);
}

/* Só abas do conteúdo; topo e menu lateral ficam com as cores originais */
.app-main .nav-link {
    --bs-nav-link-color: var(--tema-verde);
    --bs-nav-link-hover-color: var(--tema-verde-conversao-hover);
}

.app-main .nav-tabs .nav-link.active {
    border-top: 3px solid var(--tema-verde);
    color: var(--tema-verde);
}

/* Abas do Proteus: verde quando o registro esta ativo, vermelho quando inativo */
.nav-ativo .nav-link.active {
    background-color: var(--tema-verde) !important;
}

.dropdown-menu {
    --bs-dropdown-link-active-bg: var(--tema-verde);
}

.list-group {
    --bs-list-group-active-bg: var(--tema-verde);
    --bs-list-group-active-border-color: var(--tema-verde);
}

.progress,
.progress-stacked {
    --bs-progress-bar-bg: var(--tema-verde);
}

/* Tabelas com cabeçalho/linha "success" no verde suave da marca */
.table-success {
    --bs-table-bg: var(--tema-verde-suave);
    --bs-table-border-color: var(--tema-verde-borda);
    --bs-table-striped-bg: var(--tema-verde-suave-hover);
    --bs-table-hover-bg: var(--tema-verde-suave-hover);
    --bs-table-color: var(--tema-texto);
}

/* =====================================================================
   Tabelas do sistema no padrão do Bridge (.tabela-admin)
   - cabeçalho verde da marca, branco, em maiúsculas, cantos arredondados
   - coluna ordenável com o ícone A-Z (apagado até ser a coluna ordenada)
   - inativo (table-danger) em vermelho bem suave com barra à esquerda
   - sem overflow:hidden (quebraria o cabeçalho fixo .sticky-top): os cantos
     são arredondados nas próprias células
   ===================================================================== */
.tabela-admin {
    --bs-table-hover-bg: var(--tema-verde-suave);
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #e3e7e5;
    border-radius: var(--tema-raio);
}

    .tabela-admin > thead > tr:first-child > th:first-child {
        border-top-left-radius: calc(var(--tema-raio) - 1px);
    }

    .tabela-admin > thead > tr:first-child > th:last-child {
        border-top-right-radius: calc(var(--tema-raio) - 1px);
    }

    .tabela-admin > tbody:last-child > tr:last-child > td:first-child {
        border-bottom-left-radius: calc(var(--tema-raio) - 1px);
    }

    .tabela-admin > tbody:last-child > tr:last-child > td:last-child {
        border-bottom-right-radius: calc(var(--tema-raio) - 1px);
    }

    /* Cabeçalho de registro inativo (ex.: composição do formulado inativo) em vermelho */
    .tabela-admin > thead > tr.table-danger > th {
        --bs-table-bg: #b02a37;
        background-color: #b02a37;
    }

    /* Linha de título (cor própria no style) e linha de ações (botões) acima do cabeçalho */
    .tabela-admin > thead > tr.tabela-admin-titulo > th {
        text-transform: none;
        letter-spacing: 0;
    }

    .tabela-admin > thead > tr.tabela-admin-acoes > th {
        --bs-table-bg: var(--tema-verde-suave);
        background-color: var(--tema-verde-suave);
        color: var(--tema-texto);
        text-transform: none;
        border-bottom: 1px solid var(--tema-verde-borda);
    }

    /* Linha selecionada (ex.: itens marcados no Atualizador) no verde suave em vez do azul */
    .tabela-admin > tbody > tr.table-info {
        --bs-table-bg: var(--tema-verde-suave);
        --bs-table-color: var(--tema-texto);
        --bs-table-hover-bg: var(--tema-verde-suave-hover);
        --bs-table-hover-color: var(--tema-texto);
        --bs-table-border-color: #eef1ef;
    }

        .tabela-admin > tbody > tr.table-info > td:first-child {
            border-left-color: var(--tema-verde);
        }

    .tabela-admin > thead > tr > th {
        --bs-table-bg: var(--tema-verde);
        background-color: var(--tema-verde);
        color: #fff;
        border: 0;
        font-weight: 600;
        font-size: .8rem;
        text-transform: uppercase;
        letter-spacing: .02em;
        padding-top: .65rem;
        padding-bottom: .65rem;
        vertical-align: middle;
        white-space: nowrap;
    }

        .tabela-admin > thead > tr > th a {
            color: #fff;
        }

        .tabela-admin > thead > tr > th.ordenavel:hover {
            background-color: var(--tema-verde-escuro);
        }

            .tabela-admin > thead > tr > th.ordenavel:hover .opacity-50 {
                opacity: 1 !important;
            }

    .tabela-admin > tbody > tr > td {
        border-left: 0;
        border-right: 0;
        border-color: #eef1ef;
        vertical-align: middle;
    }

    .tabela-admin > tbody > tr:last-child > td {
        border-bottom: 0;
    }

    /* Barra de estado na primeira célula: não pinta a linha inteira de vermelho */
    .tabela-admin > tbody > tr > td:first-child {
        border-left: 4px solid transparent;
    }

    .tabela-admin > tbody > tr.table-danger {
        --bs-table-bg: #fdf1f2;
        --bs-table-color: #8a6d70;
        --bs-table-hover-bg: #fbe6e8;
        --bs-table-hover-color: #8a6d70;
        --bs-table-border-color: #eef1ef;
    }

        .tabela-admin > tbody > tr.table-danger > td:first-child {
            border-left-color: #e4a3aa;
        }

/* Paginação das listagens: em cima e embaixo da tabela, alinhada à direita */
.paginacao-tabela .pagination {
    justify-content: flex-end;
}

.paginacao-topo {
    margin-bottom: .75rem;
}

/* =====================================================================
   Select2 (tema padrão usado no Proteus): chips, foco e opções no verde
   ===================================================================== */
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: var(--tema-verde-suave) !important;
    border-color: var(--tema-verde-borda) !important;
    color: var(--tema-verde) !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--tema-verde) !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--tema-verde-medio);
    box-shadow: 0 0 0 .2rem rgba(var(--tema-verde-rgb), .2);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: var(--tema-verde-suave) !important;
    color: var(--tema-verde-escuro) !important;
}

.select2-container--default .select2-results__option[aria-selected=true],
.select2-container--default .select2-results__option--selected {
    background-color: var(--tema-verde) !important;
    color: #fff !important;
}

.select2-dropdown {
    border-color: var(--tema-verde-borda);
}

/* =====================================================================
   SweetAlert2 e Toastr
   ===================================================================== */
/* Confirmar no verde (quem passa confirmButtonColor no JS, ex.: vermelho de excluir, continua com a cor dele) */
.swal2-styled.swal2-confirm {
    background-color: var(--tema-verde);
}

    .swal2-styled.swal2-confirm:focus {
        box-shadow: 0 0 0 3px rgba(var(--tema-verde-rgb), .35);
    }

.toast-success {
    background-color: var(--tema-verde) !important;
}

/* =====================================================================
   Cards e Home
   ===================================================================== */
.card {
    border-radius: var(--tema-raio);
}

.card-outline.card-primary,
.card-primary.card-outline {
    border-top-color: var(--tema-verde) !important;
}

.home-atalho {
    border-radius: var(--tema-raio);
}

    .home-atalho:hover {
        border-color: var(--tema-verde-medio);
        box-shadow: 0 .35rem 1rem rgba(var(--tema-verde-rgb), .12);
    }

.home-atalho-icone {
    background-color: var(--tema-verde);
}

.home-atalho:hover .home-atalho-icone {
    background-color: var(--tema-verde-medio);
}

.home-atalho:hover .home-atalho-seta {
    color: var(--tema-verde);
}

/* =====================================================================
   Botão de contorno grafite (preto da marca): opção "Substituição" da cópia de composição
   ===================================================================== */
.btn-outline-grafite {
    --bs-btn-color: var(--tema-topo);
    --bs-btn-border-color: var(--tema-topo);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--tema-topo);
    --bs-btn-hover-border-color: var(--tema-topo);
    --bs-btn-focus-shadow-rgb: 34, 34, 34;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--tema-topo);
    --bs-btn-active-border-color: var(--tema-topo);
}

/* Opções do "Usar" (Inclusão / Substituição) com a mesma largura */
.copia-modo > .btn {
    min-width: 10.5rem;
}


/* Rodapé discreto (mesmo do AgroCPBridge): uma linha fina, texto pequeno e cinza, fixo embaixo no desktop
   (no celular o mobile-app.css tira do fixo).
   O AdminLTE 4 beta3 do Proteus ainda não tem o .fixed-footer (o do Bridge tem): a regra fixa vem daqui */
.fixed-footer .app-footer {
    position: sticky;
    bottom: 0;
    z-index: 1030;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .15rem 1rem;
    min-height: 0;
    padding: .35rem 1rem calc(.35rem + env(safe-area-inset-bottom, 0px));
    font-size: .78rem;
    color: #8a918d;
    border-top: 1px solid #e3e7e5;
    box-shadow: none;
}

    .fixed-footer .app-footer strong {
        font-weight: 600;
    }

    .fixed-footer .app-footer a {
        color: var(--tema-verde);
        text-decoration: none;
    }

        .fixed-footer .app-footer a:hover {
            text-decoration: underline;
        }

@media (max-width: 767.98px) {
    .fixed-footer .app-footer {
        justify-content: center;
    }
}
