/* Relatórios (menu novo, 2026-07-20) — reaproveita .audit-filters (components.css) pro layout
   geral da barra de filtros, .mais-filtros-wrap/.mais-filtros-dropdown/.mais-filtros-badge
   (auditoria.css, carregado global pra SPA inteira) pro dropdown "Colunas", e
   .config-panel/.panel-header/.panel-body (configuracoes.css, também global) pro "módulo com
   fundo branco e borda" igual Clientes/Pedidos/Usuários/Notificações.

   2º refinamento no mesmo dia (usuário pediu mais 5 ajustes): sub-grupos colapsáveis dentro do
   dropdown de Colunas (em vez de 2 colunas fixas lado a lado), correção do bug de
   especificidade que empilhava checkbox+label, Status disparando consulta no clique, sem
   "Todas" em Filial, e busca+Imprimir lado a lado na barra do DataTable. */

/* Especificidade maior que a base ".config-panel .panel-header" (2 classes) — precisa bater
   pra sobrescrever align-items/justify-content, já que ".rel-panel-header" sozinha (1 classe)
   perderia pra base mesmo vindo depois no CSS. */
.config-panel .panel-header.rel-panel-header {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: var(--space-sm);
}

/* .audit-filters já traz seu próprio padding vertical (components.css) — dentro de
   .panel-header (que também tem padding próprio) isso dobraria o espaço, então zera aqui. */
.rel-panel-header .rel-filtros {
    padding: 0;
}

/* "Tipo de Relatório" saiu daqui e virou aba (.rel-tabs-nav, acima do .config-panel) — ver
   claude.md 2026-07-20. .rel-filtros volta a ser só a fileira normal de filtros secundários
   (Filial/Vendedor/Período/Colunas/Gerar), sem overrides especiais de alinhamento. */

/* Aba "Tipo de Relatório" — só 1 opção hoje, mas já é .tabs-nav/.tab-btn de verdade (mesmo
   padrão de Auditoria/Configurações). Margem reduzida (base é var(--space-md), 16px) porque a
   tela inteira precisa caber em 1366x768 sem scroll — mesmo critério de
   .tabs-nav.auditoria-tabs-nav. */
.rel-tabs-nav {
    margin-bottom: 6px;
}

/* Campos compactados pra caber a 1ª linha de filtros em 1366x768 sem quebrar linha (pedido do
   usuário, 2026-07-20) — larguras abaixo são estimativas (não há como renderizar e medir
   pixel a pixel neste ambiente; Chromium headless trava aqui), ajustar se ainda não couber. */
#rel-data-inicio,
#rel-data-fim {
    width: 115px; /* ~25% menor que a largura nativa de um <input type="date"> com este padding */
}

#rel-filtro-filial,
#rel-filtro-vendedor {
    width: 130px; /* ~30% menor que um <select> sem largura fixa (auto-ajustava pelo texto da opção) */
}

.rel-periodo-wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.rel-periodo-radio {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--c-text-secondary);
    white-space: nowrap;
}

/* ---------- Dropdown "Colunas" (estende .mais-filtros-dropdown) ---------- */

.rel-colunas-dropdown {
    min-width: 260px;
    max-width: 90vw;
    padding: var(--space-sm);
}

#rel-colunas-lista {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.rel-colunas-grupo + .rel-colunas-grupo {
    border-top: 1px solid var(--c-border);
    margin-top: 4px;
    padding-top: 4px;
}

.rel-colunas-grupo-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 6px 4px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.rel-colunas-grupo-toggle:hover {
    background-color: var(--c-surface-alt);
    border-radius: var(--radius-sm);
}

.rel-colunas-grupo-chevron {
    display: inline-flex;
    color: var(--c-text-secondary);
    transition: transform var(--transition);
    flex-shrink: 0;
}

.rel-colunas-grupo-toggle.open .rel-colunas-grupo-chevron {
    transform: rotate(180deg);
}

.rel-colunas-grupo-titulo {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--c-text-primary);
    flex: 1;
}

.rel-colunas-grupo-badge {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--c-text-secondary);
    background-color: var(--c-surface-alt);
    border-radius: 999px;
    padding: 1px 8px;
}

.rel-colunas-grupo-itens {
    display: none;
    flex-direction: column;
    gap: 2px;
    padding: 2px 4px 6px 26px;
}

.rel-colunas-grupo-itens.open {
    display: flex;
}

/* Especificidade maior que ".mais-filtros-dropdown label" (auditoria.css), que força
   flex-direction:column em QUALQUER <label> dentro de um dropdown "Mais Filtros" — sem isso
   o checkbox ficava empilhado em cima do texto em vez de lado a lado. */
.rel-colunas-dropdown label.rel-coluna-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 400;
    white-space: nowrap;
    color: var(--c-text-primary);
    cursor: pointer;
    padding: 3px 4px;
    border-radius: var(--radius-sm);
}

/* ".mais-filtros-dropdown input" (auditoria.css) é `width:100%` — regra genérica pensada pros
   <input type="date">/<select> do "Mais Filtros" original, mas alcança QUALQUER <input> dentro
   do dropdown, inclusive estes checkboxes: cada um esticava pra largura inteira da linha,
   empurrando o texto do label pra longe (era esse o "dropdown feio" da print, não a margem).
   `width:auto` desfaz o esticamento; margem zerada pra alinhamento consistente entre linhas. */
.rel-colunas-dropdown label.rel-coluna-item input[type="checkbox"] {
    width: auto;
    margin: 0;
    flex-shrink: 0;
}

.rel-colunas-dropdown label.rel-coluna-item:hover {
    background-color: var(--c-surface-alt);
}

/* ---------- Pílulas de Status ---------- */

.rel-status-pills-wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.rel-filtro-label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--c-text-secondary);
}

.rel-status-pills-lista {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.status-pill {
    --pill-color: var(--c-text-secondary);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 999px;
    border: 1.5px solid var(--pill-color);
    background: transparent;
    color: var(--pill-color);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.3;
    cursor: pointer;
    white-space: nowrap;
    opacity: 0.55;
    transition: opacity var(--transition), box-shadow var(--transition);
}

.status-pill:hover {
    opacity: 0.85;
}

.status-pill.active {
    background: var(--pill-color);
    color: #fff;
    opacity: 1;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.status-pill-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--pill-color);
    flex-shrink: 0;
}

.status-pill.active .status-pill-dot {
    background: #fff;
}

.status-pill-todos {
    --pill-color: var(--c-accent);
    font-weight: 700;
}

/* ---------- Barra do DataTable: busca à esquerda, Imprimir colado à direita dela ---------- */

/* .dataTables_filter, por padrão, só tem o <label> como filho — como o próprio label já é
   flex (tables.css), ele ocupa a linha toda sozinho e qualquer botão anexado depois dele cai
   pra linha de baixo. Escopado só a esta tabela (id gerado pelo DataTables a partir do id da
   <table>, "tbl-relatorio" + "_filter") pra não afetar a busca de nenhum outro módulo. */
#tbl-relatorio_filter {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.btn-rel-imprimir-inline {
    flex-shrink: 0;
}
