.relatorio-filtro {
  --relatorio-filtro-borda: rgba(76, 78, 100, .12);
  --relatorio-filtro-suave: rgba(76, 78, 100, .64);
  --relatorio-filtro-fundo: rgba(76, 78, 100, .035);
  height: 100%;
  min-height: 0;
}

.modal-relatorio-filtros .modal-body {
  padding: 14px 12px;
  background: #f7f7f9;
}

html.relatorio-modal-aberto,
body.relatorio-modal-aberto {
  height: 100% !important;
  overflow: hidden !important;
}

.relatorio-filtro__conteudo {
  display: flex;
  align-items: stretch;
  height: 100%;
  min-height: 0;
  margin-right: 0;
  margin-left: 0;
}

.relatorio-filtro__conteudo > [class*="col-"] {
  display: flex;
  min-height: 0;
  padding-right: 6px;
  padding-left: 6px;
}

.relatorio-filtro__secao {
  width: 100%;
  margin: 0;
}

.relatorio-filtro__secao-filtros {
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.relatorio-filtro__secao-filtros > .relatorio-filtro__secao-titulo {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #fff;
  transition: margin .15s ease, padding .15s ease, box-shadow .15s ease;
}

.relatorio-filtro__secao-filtros.is-scrolled > .relatorio-filtro__secao-titulo {
  top: -18px;
  margin: -18px -18px 17px;
  padding: 18px 18px 12px;
  box-shadow: 0 5px 10px rgba(76, 78, 100, .08);
}

.relatorio-filtro__secao-titulo {
  justify-content: space-between;
}

.relatorio-filtro__secao-saida > p {
  margin: -5px 0 11px;
  color: var(--relatorio-filtro-suave);
  font-size: .73rem;
}

.relatorio-filtro__subtitulo {
  max-width: calc(100% - 70px);
  margin-top: 2px;
  overflow: hidden;
  color: var(--relatorio-filtro-suave);
  font-size: .88rem;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.relatorio-filtro__painel-titulo {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.relatorio-filtro__painel-titulo > div {
  display: flex;
  flex-direction: column;
}

.relatorio-filtro__painel-titulo small {
  margin-top: 2px;
  color: var(--relatorio-filtro-suave);
  font-size: .76rem;
  font-weight: 400;
}

.relatorio-filtro__quantidade {
  padding: 3px 9px;
  border-radius: 12px;
  background: rgba(156, 39, 176, .08);
  color: var(--primary-medium);
  font-size: .7rem;
  font-weight: 600;
  white-space: nowrap;
}

.relatorio-filtros__grade {
  display: flex;
  flex-wrap: wrap;
}

.relatorio-filtros__grade > .form-group {
  float: none;
  margin-bottom: 16px;
}

.relatorio-filtros__grade .select2-container {
  width: 100% !important;
}

.relatorio-filtros__grade .control-label {
  margin-bottom: 6px;
  color: #4c4e64;
  font-size: .78rem;
  font-weight: 600;
}

.relatorio-filtros__grade .form-control,
.relatorio-filtros__grade .select2-container .select2-selection {
  border-color: var(--relatorio-filtro-borda);
  border-radius: 6px;
}

.relatorio-filtros__grade .input-group-addon {
  border-color: var(--relatorio-filtro-borda);
  background: var(--relatorio-filtro-fundo);
  color: var(--relatorio-filtro-suave);
  font-size: .75rem;
}

.relatorio-filtro__painel-gerar {
  position: sticky;
  top: 92px;
}

.relatorio-filtro__identificacao {
  display: flex;
  align-items: center;
  padding-bottom: 15px;
  border-bottom: 1px solid var(--relatorio-filtro-borda);
}

.relatorio-filtro__icone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-right: 10px;
  border-radius: 9px;
  background: rgba(156, 39, 176, .08);
  color: var(--primary-medium);
  font-size: 1.1rem;
}

.relatorio-filtro__identificacao strong,
.relatorio-filtro__identificacao span {
  display: block;
}

.relatorio-filtro__identificacao strong {
  color: #4c4e64;
  font-size: .85rem;
}

.relatorio-filtro__identificacao span {
  margin-top: 2px;
  color: var(--relatorio-filtro-suave);
  font-size: .73rem;
}

.relatorio-filtro__secao-saida {
  padding-top: 15px;
}

.relatorio-filtro__secao-saida > label,
.relatorio-filtro__secao-saida > span {
  display: block;
}

.relatorio-filtro__secao-saida > label {
  margin: 0;
  color: #4c4e64;
  font-size: .82rem;
  font-weight: 600;
}

.relatorio-filtro__secao-saida > span {
  margin: 2px 0 10px;
  color: var(--relatorio-filtro-suave);
  font-size: .72rem;
}

.relatorio-saida {
  display: block;
  margin: 0 0 7px;
  cursor: pointer;
}

.relatorio-saida input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.relatorio-saida__conteudo {
  display: flex;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid var(--relatorio-filtro-borda);
  border-radius: 7px;
  background: #fff;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.relatorio-saida:hover .relatorio-saida__conteudo {
  border-color: rgba(156, 39, 176, .35);
  background: rgba(156, 39, 176, .02);
}

.relatorio-saida input:checked + .relatorio-saida__conteudo {
  border-color: var(--primary-medium);
  background: rgba(156, 39, 176, .055);
  box-shadow: 0 0 0 2px rgba(156, 39, 176, .06);
}

.relatorio-saida__icone {
  width: 24px;
  color: #d33b32;
  font-size: 1rem;
}

.relatorio-saida--excel .relatorio-saida__icone {
  color: #026e39;
}

.relatorio-saida--html .relatorio-saida__icone,
.relatorio-saida--debug .relatorio-saida__icone {
  color: #4e6fae;
}

.relatorio-saida__texto {
  flex: 1;
}

.relatorio-saida__texto strong,
.relatorio-saida__texto small {
  display: block;
}

.relatorio-saida__texto strong {
  color: #4c4e64;
  font-size: .78rem;
}

.relatorio-saida__texto small {
  margin-top: 1px;
  color: var(--relatorio-filtro-suave);
  font-size: .67rem;
  font-weight: 400;
}

.relatorio-saida__selecao {
  color: rgba(76, 78, 100, .3);
}

.relatorio-saida input:checked + .relatorio-saida__conteudo .relatorio-saida__selecao::before {
  content: "\f058";
  color: var(--primary-medium);
}

.relatorio-filtro__aviso {
  display: flex;
  align-items: flex-start;
  margin: 13px 0;
  padding: 9px 10px;
  border-radius: 6px;
  background: rgba(33, 150, 243, .07);
  color: #3976a8;
  font-size: .7rem;
  line-height: 1.35;
}

.relatorio-filtro__aviso i {
  margin: 2px 7px 0 0;
}

.relatorio-filtro__btn-gerar {
  min-height: 40px;
}

.relatorio-filtro__btn-gerar i {
  margin-right: 6px;
}

.relatorio-filtro__voltar {
  display: block;
  margin-top: 11px;
  color: var(--relatorio-filtro-suave);
  font-size: .72rem;
  text-align: center;
}

.relatorio-filtro__voltar i {
  margin-right: 4px;
}

.relatorio-filtro__sem-filtros {
  display: flex;
  align-items: center;
  padding: 18px;
  border: 1px dashed rgba(40, 167, 69, .35);
  border-radius: 8px;
  background: rgba(40, 167, 69, .045);
  color: #24813a;
}

.relatorio-filtro__sem-filtros > i {
  margin-right: 11px;
  font-size: 1.25rem;
}

.relatorio-filtro__sem-filtros strong,
.relatorio-filtro__sem-filtros span {
  display: block;
}

.relatorio-filtro__sem-filtros span {
  margin-top: 2px;
  color: var(--relatorio-filtro-suave);
  font-size: .75rem;
}

.relatorio-categoria-produto {
  border: 1px solid var(--relatorio-filtro-borda);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.relatorio-categoria-produto__topo,
.relatorio-categoria-produto__acoes,
.relatorio-categoria-produto__rodape {
  padding: 11px 12px;
}

.relatorio-categoria-produto__topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  border-bottom: 1px solid rgba(76, 78, 100, .09);
  background: linear-gradient(180deg, rgba(156, 39, 176, .045), rgba(255, 255, 255, 0));
}

.relatorio-categoria-produto__topo strong,
.relatorio-categoria-produto__topo span {
  display: block;
}

.relatorio-categoria-produto__topo strong {
  color: #262338;
  font-size: .84rem;
}

.relatorio-categoria-produto__topo span {
  margin-top: 2px;
  color: var(--relatorio-filtro-suave);
  font-size: .68rem;
}

.relatorio-categoria-produto__contador {
  flex: 0 0 auto;
  margin-left: 10px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(156, 39, 176, .08);
  color: var(--primary-medium) !important;
  font-size: .68rem !important;
  font-weight: 600;
  white-space: nowrap;
}

.relatorio-categoria-produto__acoes {
  display: flex;
  gap: 7px;
  align-items: center;
  border-bottom: 1px solid rgba(76, 78, 100, .09);
  background: #fff;
}

.relatorio-categoria-produto__busca {
  position: relative;
  flex: 1;
}

.relatorio-categoria-produto__busca i {
  position: absolute;
  top: 50%;
  left: 10px;
  z-index: 1;
  color: rgba(76, 78, 100, .46);
  font-size: .74rem;
  transform: translateY(-50%);
}

.relatorio-categoria-produto__busca .form-control {
  height: 30px;
  padding-left: 30px;
  border-color: var(--relatorio-filtro-borda);
  border-radius: 7px;
  font-size: .72rem;
}

.relatorio-categoria-produto__acoes .btn {
  height: 30px;
  padding: 4px 9px;
  border-color: var(--relatorio-filtro-borda);
  border-radius: 7px;
  color: #4c4e64;
  font-size: .7rem;
}

.relatorio-categoria-produto__acoes .btn i {
  margin-right: 4px;
  color: var(--primary-medium);
}

.relatorio-categoria-produto__arvore {
  max-height: 360px;
  overflow: auto;
  background: #fff;
}

.relatorio-categoria-produto__arvore.treeview .list-group {
  margin-bottom: 0;
}

.relatorio-categoria-produto__arvore.treeview .list-group-item {
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  border-right: 0 !important;
  border-left: 0 !important;
  border-color: rgba(76, 78, 100, .08) !important;
  color: #34364a;
  font-size: .75rem;
  transition: background .15s ease, color .15s ease;
}

.relatorio-categoria-produto__arvore.treeview .list-group-item:first-child {
  border-top: 0 !important;
}

.relatorio-categoria-produto__arvore.treeview .list-group-item:last-child {
  border-bottom: 0 !important;
}

.relatorio-categoria-produto__arvore.treeview .node-selected {
  border-left: 3px solid var(--primary-medium) !important;
  font-weight: 600;
}

.relatorio-categoria-produto__arvore.treeview .node-disabled {
  opacity: .45;
}

.relatorio-categoria-produto__arvore.treeview span.indent {
  margin-right: 7px;
  margin-left: 8px;
}

.relatorio-categoria-produto__arvore.treeview span.icon {
  width: 14px;
  margin-right: 7px;
  color: rgba(94, 0, 125, .68);
  text-align: center;
}

.relatorio-categoria-produto__arvore.treeview .badge {
  margin-left: auto;
  border-radius: 999px;
  background: rgba(76, 78, 100, .08);
  color: rgba(76, 78, 100, .72);
  font-size: .62rem;
  font-weight: 600;
}

.relatorio-categoria-produto__arvore.treeview .node-selected .badge {
  background: rgba(156, 39, 176, .12);
  color: var(--primary-medium);
}

.relatorio-categoria-produto__node {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  min-width: 0;
}

.relatorio-categoria-produto__codigo {
  color: rgba(76, 78, 100, .62);
  font-size: .68rem;
  font-weight: 700;
}

.relatorio-categoria-produto__nome {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.relatorio-categoria-produto__node--raiz .relatorio-categoria-produto__nome {
  font-weight: 700;
}

.relatorio-categoria-produto__selected-icon {
  color: var(--primary-medium) !important;
}

.relatorio-categoria-produto__rodape {
  display: flex;
  align-items: center;
  border-top: 1px solid rgba(76, 78, 100, .09);
  background: rgba(76, 78, 100, .025);
  color: var(--relatorio-filtro-suave);
  font-size: .68rem;
}

.relatorio-categoria-produto__rodape i {
  margin-right: 6px;
  color: var(--primary-medium);
}

@media (max-width: 991px) {
  .modal-relatorio-filtros .modal-body {
    overflow-y: auto !important;
  }

  .relatorio-filtro {
    height: auto;
  }

  .relatorio-filtro__conteudo {
    display: block;
    height: auto;
  }

  .relatorio-filtro__conteudo > [class*="col-"] {
    display: block;
    margin-bottom: 12px;
  }

  .relatorio-filtro__painel-gerar {
    position: static;
  }

  .relatorio-filtro__secao-filtros {
    overflow: visible;
  }

  .relatorio-filtro__secao-filtros > .relatorio-filtro__secao-titulo {
    position: static;
  }
}

@media (max-width: 767px) {
  .relatorio-filtro__subtitulo {
    white-space: normal;
  }

  .relatorio-filtro__painel-titulo {
    align-items: flex-start;
  }

  .relatorio-filtro__painel-titulo small {
    max-width: 230px;
  }

  .relatorio-categoria-produto__topo,
  .relatorio-categoria-produto__acoes {
    align-items: stretch;
    flex-direction: column;
  }

  .relatorio-categoria-produto__contador {
    margin: 8px 0 0;
    text-align: center;
  }
}
