/* =====================================================================
   Xingu Orion — CSS de override (NOSSO arquivo, não é do template)

   Carregado DEPOIS do material-dashboard.css, então por cascata/especificidade
   ele sobrescreve o estilo do template sem precisar editar o template. É o
   mesmo arquivo, com a mesma função, que o Atlas mantém em public/css/custom.css
   — a única diferença entre os sistemas é a paleta declarada aqui.

   PALETA DA MARCA (Xingu Orion). O accent PRIMÁRIO do Material (originalmente
   rosa #e91e63) foi trocado pelo VERDE da marca; a sidebar escura, pelo
   CINZA-AZULADO escurecido.
     - primário (verde):  #0F5B3D (= rgb 15,91,61). Gradiente: verde -> profundo.
     - escuro (marca):    #2B333D — sidebar, superfícies escuras, títulos.
   Verde/vermelho SEMÂNTICOS (sucesso/erro) continuam vindo do tema. Atenção: o
   verde da MARCA e o verde de SUCESSO convivem na mesma tela. Por isso estado
   de sucesso nunca é só cor — vem com texto, e o botão primário usa o verde
   PROFUNDO da marca, distinto do verde claro do `.bg-success` do tema.

   Dica: se um dia mudar a cor da marca, troque os valores abaixo (ou use as
   variáveis --orion-* logo a seguir).
   ===================================================================== */

/* Variáveis da identidade Xingu Orion (kit de identidade, 25/08/2026). */
:root {
    --orion-green-deep: #0F5B3D;
    --orion-green: #1E8C5A;
    --orion-green-light: #6DBF73;
    --orion-blue-gray: #6B7785;
    --orion-light-gray: #E5E7EA;
    --orion-white: #F8F9F9;
}

/* ---- Sidebar / superfícies escuras: cinza do tema -> ESCURO da marca ---- */
.bg-gradient-dark {
    background-image: linear-gradient(195deg, #3E4854 0%, #2B333D 100%) !important;
}

/* ---- Gradiente primário (botões cheios, item ativo do menu, badges,
        ícones de card, swatch "primary" do painel de config) ---- */
.bg-gradient-primary {
    background-image: linear-gradient(195deg, #1E8C5A 0%, #0F5B3D 100%) !important;
}

/* ---- Cor sólida primária ---- */
.bg-primary {
    background-color: #0F5B3D !important;
}

/* ---- Texto primário (links e rótulos que usavam rosa) ---- */
.text-primary {
    color: #0F5B3D !important;
}

/* ---- Texto com gradiente (ícones/números "text-gradient text-primary").
        O template já faz o recorte no texto; aqui só trocamos a cor. ---- */
.text-primary.text-gradient,
.text-gradient.text-primary {
    background-image: linear-gradient(310deg, #6DBF73 0%, #0F5B3D 100%) !important;
}

/* ---- Sombra primária (cards/ícones com "shadow-primary") ---- */
.shadow-primary {
    box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.14),
                0 7px 10px -5px rgba(15, 91, 61, 0.4) !important;
}

/* ---- Botão preenchido primário: sombra e estados ---- */
.btn.bg-gradient-primary {
    box-shadow: 0 3px 3px 0 rgba(15, 91, 61, 0.15),
                0 3px 1px -2px rgba(15, 91, 61, 0.2),
                0 1px 5px 0 rgba(15, 91, 61, 0.15) !important;
}
.btn.bg-gradient-primary:hover {
    box-shadow: 0 14px 26px -12px rgba(15, 91, 61, 0.4),
                0 4px 23px 0 rgba(0, 0, 0, 0.12),
                0 8px 10px -5px rgba(15, 91, 61, 0.2) !important;
}

/* ---- Botão contornado primário ---- */
.btn-outline-primary {
    color: #0F5B3D !important;
    border-color: #0F5B3D !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active {
    background-color: #0F5B3D !important;
    border-color: #0F5B3D !important;
    color: #fff !important;
}

/* ---- Item ativo da barra lateral ---- */
.sidenav .navbar-nav .nav-link.active {
    box-shadow: 0 3px 5px 0 rgba(15, 91, 61, 0.2) !important;
}

/* ---- Checkboxes e switches marcados (ficavam rosa quando ligados) ---- */
.form-check-input:checked {
    background-color: #0F5B3D !important;
    border-color: #0F5B3D !important;
}

/* ---- Campos de texto em foco (rótulo e borda do input-group-outline) ---- */
.input-group-outline.is-focused .form-label,
.input-group-outline .form-control:focus ~ .form-label {
    color: #0F5B3D !important;
}
.input-group-outline.is-focused .form-control,
.input-group-outline .form-control:focus {
    border-color: #0F5B3D !important;
}

/* ---- Paginação ---- */
.pagination .page-item.active .page-link,
.pagination.pagination-primary .page-item.active .page-link {
    background-image: linear-gradient(195deg, #1E8C5A 0%, #0F5B3D 100%) !important;
    border: none !important;
    color: #fff !important;
}

/* =====================================================================
   Tela de acesso

   O Atlas usa uma foto do Unsplash como fundo do login. Aqui o fundo é um
   gradiente da própria paleta: uma imagem hospedada fora significa uma
   requisição a terceiro na ÚNICA tela que todo mundo abre, inclusive quem
   ainda não autenticou — e uma tela de login que depende de CDN alheio é uma
   tela de login que fica cinza quando o CDN cai.
   ===================================================================== */
.orion-acesso-fundo {
    background-image: linear-gradient(195deg, #3E4854 0%, #2B333D 60%, #171C22 100%);
}

/* =====================================================================
   Barra superior e sino (spec notificacoes-sino-push-e-tempo-real, ASM-062)

   Cópia rastreada do bloco do Hermes/Atlas (R-032). A grade de três colunas
   (hambúrguer 44px · identidade · ações) substitui o `.collapse` do template,
   que o Bootstrap esconde abaixo de 992px — era assim que o sino sumia no
   celular. O contador usa o vermelho de ALERTA do tema (#f44335), não o da
   marca; o sino é o escuro das superfícies, para não gritar sem ter o que dizer.
   ===================================================================== */
.navbar-main {
    position: relative;
    z-index: 9998;
}
.orion-topbar {
    align-items: center;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
}
.orion-topbar__menu {
    grid-column: 1;
    justify-self: start;
    min-height: 44px;
    min-width: 44px;
}
.orion-topbar__menu #iconNavbarSidenav {
    align-items: center;
    display: flex;
    height: 44px;
    justify-content: center;
    width: 44px;
}
.orion-topbar__identidade {
    grid-column: 2;
    min-width: 0;
    overflow: hidden;
}
.orion-topbar__identidade .breadcrumb {
    flex-wrap: nowrap;
    margin-right: 0 !important;
    min-width: 0;
    overflow: hidden;
}
.orion-topbar__identidade .breadcrumb-item,
.orion-topbar__identidade h6 {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.orion-topbar__acoes {
    display: flex !important;
    flex-basis: auto;
    grid-column: 3;
    justify-content: flex-end;
    min-width: 44px;
    overflow: visible;
}
.orion-topbar__acoes .navbar-nav {
    align-items: center;
    flex-direction: row;
    overflow: visible;
}

/* ---- Sino de notificações ---- */
.sino-wrapper {
    min-height: 44px;
    min-width: 44px;
    overflow: visible;
    position: relative;
}
.sino-botao {
    align-items: center;
    color: #2B333D !important;
    display: inline-flex;
    height: 44px;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    overflow: visible !important;
    position: relative;
    width: 44px;
}
.sino-botao .material-icons-round {
    font-size: 30px;
    line-height: 1;
}
.sino-contador {
    position: absolute;
    top: 0;
    right: -2px;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.25rem;
    border-radius: 1rem;
    background: #f44335;
    color: #fff;
    font-size: 0.63rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 1;
}
.sino-painel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.5rem);
    z-index: 9999;
    width: min(29rem, calc(100vw - 1rem));
    max-height: min(42rem, calc(100vh - 5rem));
    overflow-y: auto;
    background: #fff;
    border-radius: 0.6rem;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
}
.sino-lista { max-height: 24rem; overflow-y: auto; }
.sino-item {
    --sino-cor: var(--orion-green, #1E8C5A);
    align-items: stretch;
    border-bottom: 1px solid #f0f2f5;
    border-left: 4px solid var(--sino-cor);
    display: flex;
    min-height: 5.25rem;
    position: relative;
}
.sino-item:hover { background: #f8f9fa; }
.sino-item.nao-lida { background: color-mix(in srgb, var(--sino-cor) 7%, white); }
.sino-item--aviso { --sino-cor: var(--orion-green, #1E8C5A); }
.sino-item--importante { --sino-cor: #fb8c00; }
.sino-item--critica { --sino-cor: #e53935; }
.sino-item__conteudo {
    align-items: flex-start;
    color: inherit;
    display: flex;
    flex: 1 1 auto;
    gap: .55rem;
    min-width: 0;
    padding: .65rem .35rem .65rem .7rem;
    text-decoration: none;
}
.sino-item__icone { color: var(--sino-cor); font-size: 1.15rem; margin-top: .15rem; }
.sino-item__nivel { color: var(--sino-cor); display: block; font-size: .62rem; font-weight: 700; text-transform: uppercase; }

@media (max-width: 575.98px) {
    .sino-painel { position: fixed; right: .5rem; top: 4.25rem; }
}

@media (min-width: 1200px) {
    .orion-topbar { display: flex; }
    .orion-topbar__identidade { flex: 1 1 auto; }
    .orion-topbar__acoes { margin-left: auto; }
}
