/* ==========================================================================
   IPDS — Info Plus Design System
   File:    grid.css
   Version: 2.5.0 (border-left/right adicionadas em .gridPager e .contadorRegistro)
   --------------------------------------------------------------------------
   Estilos do componente Grid (jqGrid + wrapper InfoPlus Grid).

   FILOSOFIA VISUAL:
     A Grid é tratada como um CARD UNIFICADO (estilo Stripe/Linear/Notion):
     borda arredondada nos cantos externos, sombra suave em volta, e os
     três elementos internos (.gridPager, .ui-jqgrid, .contadorRegistro)
     são clipados pelo overflow:hidden do container — formando uma peça
     visualmente coesa.

     Detecção do container é feita via CSS :has() (browsers modernos), com
     fallback para classe explícita .ipds-grid-card.

     O pager superior (.gridPager) e o inferior (.contadorRegistro) ambos
     usam fundo cinza-azulado claro (--ipds-color-navy-50) para se
     diferenciar do corpo branco da tabela.

   TIPOGRAFIA (v2.4.2):
     • Tudo uniformizado em 13px (registros, headers, pagers, inputs).
     • Hierarquia agora vem do peso (semibold em headers) e cor, não do tamanho.

   HISTÓRICO RELEVANTE:
     v2.4.5 — Fix bordas das células sumindo nas linhas selecionadas.
              v2.4.1 zerava todas as bordas (border:0) para neutralizar
              a borda gold parasita. Mas isso removia também as bordas
              naturais entre colunas. Agora: mantém as bordas mas força
              border-color para navy-100 (mesma cor das células normais),
              preservando a separação visual.
     v2.4.4 — Separadores verticais entre colunas no cabeçalho da grid
              (border-right navy-100 em cada <th>, exceto o último).
              Corpo da grid mantém sem linhas verticais (estilo Linear/Notion).
     v2.4.3 — Fix hover sobre linha selecionada que "apagava" o gold
              momentaneamente (sobrescrita por regra de hover normal via
              cascade). Solução: regra de hover normal usa :not(.ui-state-
              highlight), e adicionada regra explícita para hover-sobre-
              selecionada que aplica gold mais intenso (gold-200).
     v2.4.2 — Tipografia abaixada de 14px → 13px (registros e inputs).
              Decisão de design para reduzir contraste visual entre texto
              em maiúsculas (grid) e minúsculas (form), além de aumentar
              densidade de informação.
     v2.4.1 — Fix linha selecionada (.ui-state-highlight) que aparecia como
              "barrinha amarela vertical" entre células em vez de highlight
              da linha inteira. Causa: regra global do theme aplicava border
              em cada <td>. Solução: override no grid.css que anula a borda
              e aplica box-shadow inset na primeira célula.
     v2.4.0 — Tipografia da grid uniformizada em 14px (registros) e 13px
              (headers + pagers). Removidos font-size: 9px e 12px hardcoded
              que sobreviveram do tema antigo.
     v2.3.0 — Card unificado (Material elevation 4 — sombra em 3 camadas
              + borda navy-100 + radius lg).
     v2.2.x — Descoberta da arquitetura real da Grid (.gridPager +
              .ui-jqgrid + .contadorRegistro).
     v2.1.1 — Fix .gridPager altura colapsada (float clearing via flow-root).

   DEPENDE DE: ipds.tokens.css
   ========================================================================== */
       .imgPagerButton
       .buttonTelaPrincipalGenerica (acoplada à .imgFiltroGrid no original)
       .pagerButton
       .gridRegistroAlternativo
       .containerDescricaoGrid
       .dragging (estado aplicado pelo grid.js durante drag de labels)
       th.ui-th-column div  (override de cabeçalho)
     • Cores hardcoded substituídas por tokens IPDS

   MUDANÇAS DA v1 → v2.0:
     • Cores hardcoded substituídas por tokens IPDS
     • Sombras passam a usar tokens IPDS
     • Raios passam a usar tokens IPDS
     • Tamanhos canônicos passam a usar tokens IPDS

   DEPENDE DE: ipds.tokens.css

   COMPATIBILIDADE COM HTML EXISTENTE: 100%
     Nenhuma classe foi renomeada, removida ou teve sua estrutura alterada.
     O wrapper Grid (grid.js) continua funcionando sem nenhuma mudança.
   ========================================================================== */


/* ========== CONTAINER PRINCIPAL ========== */
.ui-jqgrid,
.ui-jqgrid .ui-widget-content,
.ui-jqgrid .ui-jqgrid-view,
.ui-jqgrid .ui-jqgrid-bdiv,
.ui-jqgrid .ui-jqgrid-hdiv,
.ui-jqgrid .ui-jqgrid-hbox,
.ui-jqgrid .ui-jqgrid-htable,
.ui-jqgrid .ui-jqgrid-btable {
	/* TESTE: sem bordas laterais no corpo da grid */
	border-left: none !important;
	border-right: none !important;
}

.ui-jqgrid.semBordasLaterais {
	border-left: none;
	border-right: none;
}

.ui-jqgrid-bdiv.semScrollX {
	overflow-x: hidden;
}

/* Override de cabeçalho — quebra de linha em colunas estreitas */
th.ui-th-column div {
	white-space: normal !important;
	height: auto !important;
	padding: 2px;
}


/* ========== ESTADO: DRAG DE LABEL ==========
   Aplicado pelo grid.js (função de draggable de form fields)
   ========================================================================== */
.dragging {
	opacity: 0.5;
}


/* ========== TIPOGRAFIA DA GRID (desktop) ==========
   Define hierarquia uniforme em 13px com peso variável:
     • Registros (corpo)             — 13px regular
     • Headers de coluna             — 13px semibold (hierarquia via peso)
     • Pagers (filtro + contador)    — 13px regular
     • Inputs dentro de pagers       — 13px (igual aos demais inputs)
   Regras explícitas previnem cascata indesejada de body ou de outros CSS. */
.ui-jqgrid tr.jqgrow td {
	font-size: var(--ipds-font-size-base);        /* 13px */
	font-family: var(--ipds-font-sans);
	line-height: 1.4;
	padding: 9px var(--ipds-grid-cell-padding-x);
	white-space: normal;
	overflow: visible;
}

.ui-jqgrid .ui-jqgrid-htable th,
.ui-jqgrid .ui-jqgrid-htable .ui-jqgrid-labels th div {
	font-size: var(--ipds-font-size-base);        /* 13px */
	font-weight: var(--ipds-font-weight-semibold);
	font-family: var(--ipds-font-sans);
	letter-spacing: 0.2px;
}

/* Separador vertical entre colunas do cabeçalho — sutil */
.ui-jqgrid .ui-jqgrid-htable th {
	border-right: 1px solid var(--ipds-border-subtle);
}


.gridPager,
.gridPager *,
.contadorRegistro,
.contadorRegistro * {
	font-size: var(--ipds-font-size-base);        /* 13px */
}

/* Override: inputs dentro de pagers usam altura/font padrão de input */
.gridPager input,
.contadorRegistro input {
	font-size: var(--ipds-input-font-size);       /* 14px (input padrão) */
}


/* ========== LINHA SELECIONADA (.ui-state-highlight) ==========
   IMPORTANTE: o tema global jquery-ui.ipds.theme.css define
   .ui-state-highlight com border: 1px solid gold + border-left: 3px.
   Numa table com border-collapse, isso pinta as bordas das células com
   gold (que destoa) em vez de manter o cinza-azulado natural.

   Estratégia: MANTER as bordas das células (preserva separação visual
   entre colunas), apenas FORÇAR sua cor para navy-100 — a mesma cor
   que as células não selecionadas usam. A "barra dourada" indicadora
   da seleção é aplicada à parte via box-shadow inset (não conta como
   border, não afeta layout, não some entre células). */
.ui-jqgrid tr.jqgrow.ui-state-highlight,
.ui-jqgrid tr.jqgrow.ui-state-highlight > td {
	background: var(--ipds-grid-row-bg-selected);
	border-color: var(--ipds-border-subtle);
	color: var(--ipds-text-primary);
}

/* Barra vertical à esquerda — só na primeira célula da linha */
/*.ui-jqgrid tr.jqgrow.ui-state-highlight > td:first-child {
	box-shadow: inset 3px 0 0 var(--ipds-grid-row-border-selected);
}*/

/* Hover de linha NÃO selecionada — feedback azulado sutil.
   :not() previne que esta regra "vença" o highlight via ordem do cascade. */
.ui-jqgrid tr.jqgrow.ui-state-hover:not(.ui-state-highlight),
.ui-jqgrid tr.jqgrow.ui-state-hover:not(.ui-state-highlight) > td {
	background: var(--ipds-grid-row-bg-hover);
	border-color: var(--ipds-border-subtle);
}

/* Hover de linha JÁ selecionada — tom mais intenso (feedback "preparado
   para clique"). Especificidade maior que a de hover normal pois combina
   2 classes no <tr>. */
.ui-jqgrid tr.jqgrow.ui-state-highlight.ui-state-hover,
.ui-jqgrid tr.jqgrow.ui-state-highlight.ui-state-hover > td {
	background: var(--ipds-grid-row-bg-selected-hover);
	border-color: var(--ipds-border-subtle);
}

/* Mantém a barra esquerda também durante hover na selecionada */
/*.ui-jqgrid tr.jqgrow.ui-state-highlight.ui-state-hover > td:first-child {
	box-shadow: inset 3px 0 0 var(--ipds-grid-row-border-selected);
}*/


/* ========== PAGER (Barra de filtro/paginação da grid) ========== */
.gridPager {
	width: 100%;
	position: relative;
	/* display: flow-root cria um block formatting context que considera
	   filhos float no cálculo de altura. Sem isto, .divContainerPagerButtons
	   (float: left) fica fora do fluxo e .gridPager colapsa para height: 0,
	   sumindo todos os botões do pager. Equivalente moderno ao clearfix. */
	display: flow-root;
	/* Defesa adicional: garante 55px mínimo mesmo se flow-root falhar
	   (browsers <2017) ou algum filho mudar de comportamento. */
	min-height: 55px;
	/* Continuidade visual com a grid: faixa cinza-azulada clara que
	   contrasta com o branco do corpo, sinalizando claramente que o
	   pager é parte da grid mas funcionalmente separado. */
	background-color: var(--ipds-pager-bg);
	padding: 0 8px;
	box-sizing: border-box;
	/* TESTE: só borda inferior */
	border-top: none;
	border-left: none;
	border-right: none;
	border-bottom: 1px solid var(--ipds-pager-border);
}

.gridPager.semBordasLaterais {
	border-left: none;
	border-right: none;
}

/* ========== CARD UNIFICADO (Opção C — estilo Stripe/Linear/Notion) ==========
   Detecta o container que envolve uma grid completa e o transforma num
   card único: borda arredondada em todos os cantos, sombra mais marcada,
   borda externa, e overflow:hidden para clipar os filhos perfeitamente
   nas curvas.

   Usa CSS :has() (Chrome 105+, Firefox 121+, Safari 15.4+). Para
   ambientes com browsers mais antigos, use a classe .ipds-grid-card
   manualmente no container (alternativa explícita).

   Detecta containers que têm pelo menos a tabela + um pager como filhos
   diretos. Cobre as combinações comuns:
     • .gridPager + .ui-jqgrid + .contadorRegistro (grid completa)
     • .gridPager + .ui-jqgrid (sem contador)
     • .ui-jqgrid + .contadorRegistro (sem pager superior) */
.ipds-grid-card,
div:has(> .gridPager):has(> .ui-jqgrid),
div:has(> .ui-jqgrid):has(> .contadorRegistro) {
	border-radius: var(--ipds-radius-lg);
	overflow: hidden;
	/* Sombra em duas camadas: uma sutil de difusão geral + uma mais
	   marcada embaixo. Padrão Material Design "elevation 4". */
	box-shadow:
		0 4px 6px -1px rgba(10, 22, 40, 0.10),
		0 2px 4px -1px rgba(10, 22, 40, 0.06),
		0 8px 16px -4px rgba(10, 22, 40, 0.08);
	/* Borda externa fina para destacar o card do fundo do dialog. */
	border: 1px solid var(--ipds-border-subtle);
	background-color: var(--ipds-bg-surface);
	/* Pequeno margin para a sombra "respirar" sem ser cortada por overflow
	   de containers pais. */
	box-sizing: border-box;
}

/* ========== PAGER NATIVO do jqGrid (.ui-jqgrid-pager) ==========
   NOTA: a Grid customizada do Info Plus NÃO usa o pager nativo do jqGrid —
   usa .gridPager (superior) e .contadorRegistro (inferior), ambos
   estilizados acima. Estas regras existem como defesa em profundidade
   caso alguma tela use o pager nativo do jqGrid diretamente. */
.ui-jqgrid .ui-jqgrid-pager {
	background-color: var(--ipds-pager-bg);
	border: none;
	border-top: 1px solid var(--ipds-pager-border);
	box-sizing: border-box;
	min-height: 35px;
	padding: 0 8px;
}

.ui-jqgrid .ui-jqgrid-pager .ui-pg-table {
	background: transparent;
	border: none;
}

.ui-jqgrid .ui-jqgrid-pager .ui-pg-input,
.ui-jqgrid .ui-jqgrid-pager .ui-pg-selbox {
	background-color: var(--ipds-bg-surface);
	border: 1px solid var(--ipds-border-subtle);
	border-radius: var(--ipds-radius-xs);
	padding: 2px 4px;
	font-size: var(--ipds-font-size-sm);
	color: var(--ipds-text-primary);
}

.ui-jqgrid .ui-jqgrid-pager .ui-pg-button {
	border: 1px solid transparent;
	border-radius: var(--ipds-radius-xs);
	transition: var(--ipds-transition-fast);
	cursor: pointer;
}

.ui-jqgrid .ui-jqgrid-pager .ui-pg-button:hover {
	background-color: var(--ipds-pager-button-active-bg);
	border-color: var(--ipds-border-subtle);
}

.ui-jqgrid .ui-jqgrid-pager .ui-pg-button.ui-state-disabled,
.ui-jqgrid .ui-jqgrid-pager .ui-pg-button.ui-state-disabled:hover {
	opacity: 0.4;
	cursor: not-allowed;
	background-color: transparent;
	border-color: transparent;
}

.divContainerPagerButtons {
	height: 55px;
	float: left;
	display: flex;
	justify-content: center;
	align-items: center;
}

.grupoPagerButton {
	height: 100%;
	float: left;
	display: none;
	justify-content: center;
	align-items: center;
}

.grupoPagerButton.visivel {
	display: flex;
	align-items: center;
	border: 1px solid var(--ipds-border-subtle);
	border-radius: var(--ipds-radius-sm);
	padding: 0 4px;
	height: calc(100% - 4px);
}

/* Quando todos os botões do grupo foram movidos para o Kebab (ou qualquer
   outro motivo deixou o grupo sem filhos), esconde o grupo para não
   exibir uma borda vazia no pager. */
.grupoPagerButton.visivel:empty {
	display: none;
}


/* ========== BOTÕES DO PAGER (PagerButton, PagerButtonInativo) ==========
   Migradas do index.css na refatoração v2.1.
   .pagerButton — selector legado (cursor: pointer apenas)
   .divPagerButton — botão ativo, criado dinamicamente pelo grid.js
   .divPagerButtonInativo — botão desabilitado
   .imgPagerButton — ícone dentro do botão
   ========================================================================== */
.pagerButton {
	cursor: pointer;
}

.divPagerButton {
	user-select: none;
	transition: var(--ipds-transition-base);
	float: left;
	margin-left: 5px;
	border-radius: var(--ipds-radius-xs);
	width: 30px;
	cursor: pointer;
	height: 28px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-shrink: 0;
}

.divPagerButton:hover {
	background-color: var(--ipds-pager-button-active-bg);
}

.divPagerButton:active {
	transform: translateY(2px);
}

.divPagerButtonInativo {
	user-select: none;
	float: left;
	margin-left: 5px;
	border-radius: var(--ipds-radius-xs);
	width: 30px;
	cursor: auto;
	height: 28px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.divPagerButtonInativo img {
	filter: grayscale(100%);
}

.imgPagerButton {
	user-select: none;
	max-height: 20px;
}

/* Quando .imgPagerButton é um Material Symbol (span), o max-height não
   surte efeito — o tamanho é definido pelo font-size. 18px casa
   visualmente com os PNGs de 20px. */
span.imgPagerButton.material-symbols-outlined {
	font-size: 18px;
	line-height: 1;
	display: inline-block;
	vertical-align: middle;
}

.divPagerButtonInativo span.imgPagerButton.material-symbols-outlined {
	opacity: 0.5;
}


/* ========== BOTÕES GENÉRICOS DE TELA E FILTRO ==========
   Acoplados visualmente: ambos usam o mesmo background hover do paginador.
   .buttonTelaPrincipalGenerica — botão genérico de ação (não exclusivo do
     Grid, mas mantido aqui pelo acoplamento de comportamento com .imgFiltroGrid)
   ========================================================================== */
.buttonTelaPrincipalGenerica,
.imgFiltroGrid {
	transition: var(--ipds-transition-base);
}

.buttonTelaPrincipalGenerica:hover,
.imgFiltroGrid:hover {
	background-color: var(--ipds-pager-button-active-bg) !important;
}

.buttonTelaPrincipalGenerica:active,
.imgFiltroGrid:active {
	transform: translateY(2px);
}


/* ========== CONTADOR DE REGISTROS (pager INFERIOR — customizado Info Plus) ==========
   Esta é a barra inferior da grid, contendo a paginação («, ‹, ›, »,
   "Página X de Y") e o contador "Registro X de Y".

   Apesar do nome "contadorRegistro", este elemento é o pager inferior
   funcional do componente Grid. Fica fora do .ui-jqgrid (não usa o
   pager nativo do jqGrid), como filho direto do divGridEntidades, irmão
   do .gridPager (que é o pager superior).

   Recebe o mesmo tratamento visual do .gridPager (Opção B do design system)
   para que a Grid pareça uma peça coesa: corpo branco entre duas faixas
   cinza-azuladas. */
.contadorRegistro {
	height: 45px;
	min-height: 45px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	position: relative;
	background-color: var(--ipds-pager-bg);
	/* TESTE: só borda superior */
	border: none;
	border-top: 1px solid var(--ipds-pager-border);
	box-sizing: border-box;
	padding: 0 8px;
}


.divContadorRegistros {
	display: inline-block;
	margin-right: 5px;
	font-size: var(--ipds-font-size-sm);
	font-weight: var(--ipds-font-weight-bold);
	text-align: center;
	color: var(--ipds-text-secondary);
	white-space: nowrap;
}

.divContadorRegistrosInline {
	display: inline-block;
}


/* ========== PAGINAÇÃO ========== */
.containerBotoesPaginacao {
	display: flex;
	align-items: center;
	text-align: center;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}

.anchorPaginaAtual {
	margin-left: 3px;
	margin-right: 3px;
	display: inline-block;
}


/* ========== REGISTRO NÃO ENCONTRADO ========== */
.divRegistroNaoEncontrado {
	display: none;
	position: absolute;
	left: -100%;
	top: 10px;
	width: 100%;
	text-align: center;
	z-index: 100;
}

.divContainerRegistroNaoEncontrado {
	display: inline-block;
	border: 3px solid var(--ipds-border-strong);
	padding: 15px;
	border-radius: var(--ipds-radius-sm);
	box-shadow: var(--ipds-shadow-md);
	background-color: var(--ipds-bg-surface);
}

.imgAvisoErroGrid {
	margin-right: 15px;
	cursor: pointer;
	vertical-align: middle;
}

.spanRegistroNaoEncontrado {
	text-align: left;
	display: inline-block;
	cursor: pointer;
	vertical-align: middle;
}


/* ========== FILTRO GRID ========== */
.imgFiltroGrid {
	float: left;
	margin-right: 5px;
	border-radius: var(--ipds-radius-sm);
	cursor: pointer;
	vertical-align: middle;
}

.divContainerFiltroGrid {
	height: 0;
	width: 100%;
	float: left;
	overflow: hidden;
}

.divContainerFiltrarParteTexto {
	margin-right: 10px;
	float: right;
}


/* ========== TOTALIZADOR DE COLUNAS ========== */
.totalizadorColunas {
	height: 22px;
	outline-style: none;
	background: var(--ipds-bg-info-soft) !important;
	color: var(--ipds-text-secondary);
}

.totalizadorColunas td {
	border-bottom: 1px solid var(--ipds-border-divider);
}


/* ========== LEGENDA ========== */
.divLegendaGrid {
	height: 0;
	position: fixed;
	background-color: var(--ipds-bg-surface-alt);
	border: 1px solid var(--ipds-border-default);
	overflow: hidden;
	display: none;
	z-index: 9999;
	min-width: 350px;
	padding: 5px;
}

.divLegendaItem {
	height: 30px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.imgLegendaGrid {
	max-height: 25px;
}

.divQuadradoLegenda {
	height: 25px;
	width: 25px;
	flex-shrink: 0;
}

.spanSignificadoLegenda {
	color: var(--ipds-text-primary);
	font-size: var(--ipds-font-size-base);
}


/* ========== EXIBIDOR DE COLUNAS ========== */
.divExibidorColunas {
	max-height: calc(100vh - 100px);
	overflow: hidden;
	z-index: 999999999;
	background-color: var(--ipds-bg-surface);
	position: fixed;
	bottom: 0;
	padding-top: 20px;
	display: none;
	border: 1px solid var(--ipds-border-default);
	box-shadow: 0 -4px 16px rgba(10, 22, 40, 0.12);
}


/* ========== CONTEXT MENU GRID ========== */
.divContextMenuGrid {
	max-height: calc(100vh - 100px);
	overflow: hidden;
	z-index: 999999999;
	background-color: var(--ipds-bg-surface);
	position: fixed;
	white-space: break-spaces;
	bottom: 0;
	padding-top: 5px;
	border: 1px solid var(--ipds-border-default);
	box-shadow: 0 -4px 16px rgba(10, 22, 40, 0.12);
}


/* ========== HEADER CUSTOMIZADO ========== */
.gridColumnHeader {
	/* Estilos do cabeçalho customizado */
}


/* ========== DESCRIÇÃO E REGISTRO ALTERNATIVO ==========
   Migrados do index.css na refatoração v2.1.
   ========================================================================== */
.containerDescricaoGrid {
	font-weight: var(--ipds-font-weight-bold);
	font-size: var(--ipds-font-size-lg);
	font-family: var(--ipds-font-display);
	color: var(--ipds-text-primary);
}

.gridRegistroAlternativo {
	background-color: var(--ipds-state-active-bg);
	border: 1px solid var(--ipds-border-divider);
}


/* ========== MENSAGENS DE ERRO/INFO ========== */
.spanMensagemGrid {
	width: 100%;
	font-size: var(--ipds-font-size-md);
	color: var(--ipds-text-primary);
	display: inline-block;
}


/* ========== BOTÃO MINIMIZAR/MAXIMIZAR PAGER (Mobile) ========== */
.btnTogglePager {
	display: none;
	position: absolute;
	left: auto;
	right: 3px;
	top: 3px;
	width: 16px;
	height: 16px;
	cursor: pointer;
	z-index: 100;
	background-color: transparent;
	border-radius: var(--ipds-radius-xs);
	padding: 1px;
}

.gridPager.pagerMinimizado {
	padding: 2px 5px !important;
	min-height: 20px !important;
	height: 20px !important;
}

.gridPager.pagerMinimizado .divContainerPagerButtons {
	display: none !important;
}

.gridPager.pagerMinimizado .btnTogglePager {
	display: block !important;
	position: absolute !important;
	right: 3px !important;
	top: 50% !important;
	transform: translateY(-50%);
}

.contadorRegistro.pagerMinimizado {
	display: none !important;
}


/* ========== RESPONSIVO - TABLET ========== */
@media (max-width: 768px) {
	.gridPager {
		padding: 5px;
	}

	.btnTogglePager {
		display: block !important;
		position: absolute !important;
		left: auto !important;
		right: 3px !important;
		top: 3px !important;
		margin: 0 !important;
	}

	.divContainerPagerButtons {
		float: none !important;
		flex-wrap: wrap;
		height: auto;
		gap: 5px;
		justify-content: flex-start;
		padding-right: 25px;
	}

	.grupoPagerButton {
		display: contents !important;
	}

	.imgPagerButton {
		max-height: 16px !important;
	}

	.divPagerButton,
	.divPagerButtonInativo {
		width: 26px !important;
		height: 24px !important;
	}

	.contadorRegistro {
		height: auto;
		min-height: 35px;
		flex-wrap: wrap;
		justify-content: center;
	}

	.divContadorRegistros {
		font-size: var(--ipds-font-size-xs);
	}

	.imgFiltroGrid {
		margin-right: 0;
		margin-bottom: 5px;
	}

	.divContainerFiltroGrid {
		float: none;
		width: 100%;
	}

	.divContainerFiltroGrid .ui-button {
		margin-left: 5px !important;
		margin-right: 10px !important;
	}

	.divContainerFiltrarParteTexto {
		float: none;
		margin: 5px 0;
	}

	.ui-jqgrid {
		width: 100% !important;
		max-width: 100% !important;
	}

	.ui-jqgrid-view {
		width: 100% !important;
	}

	.ui-jqgrid-bdiv {
		overflow-x: auto !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		max-height: none !important;
	}

	.contadorRegistro {
		position: relative;
		z-index: 10;
		background-color: inherit;
	}

	.ui-jqgrid tr.jqgrow {
		height: auto !important;
		min-height: 28px;
	}

	.ui-jqgrid tr.jqgrow td {
		padding: 5px 4px !important;
		font-size: var(--ipds-font-size-base) !important;
	}

	.pagerButtonDesigner {
		display: none !important;
	}

	.ui-jqgrid .ui-jqgrid-hdiv {
		height: auto !important;
		min-height: 24px !important;
		overflow-x: hidden !important;
		overflow-y: hidden !important;
	}

	.ui-jqgrid .ui-jqgrid-htable {
		height: auto !important;
	}

	.ui-jqgrid .ui-jqgrid-htable th {
		padding: 4px 3px !important;
		font-size: var(--ipds-font-size-sm) !important;
		height: auto !important;
		line-height: 1.2 !important;
		white-space: normal !important;
		word-wrap: break-word !important;
		vertical-align: middle !important;
	}

	.ui-jqgrid .ui-jqgrid-htable th div {
		height: auto !important;
		min-height: 12px !important;
		overflow: visible !important;
		white-space: normal !important;
		word-break: break-word !important;
	}

	.ui-jqgrid .ui-jqgrid-htable .ui-jqgrid-labels th div {
		font-size: var(--ipds-font-size-sm) !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1.1 !important;
	}

	.ui-jqgrid input[type="checkbox"] {
		width: 18px !important;
		height: 18px !important;
	}

	.divRegistroNaoEncontrado {
		width: 90%;
		left: 5%;
		transform: translateY(-50%);
	}

	.divContainerRegistroNaoEncontrado {
		width: 100%;
		box-sizing: border-box;
	}

	.divLegendaGrid {
		min-width: auto;
		width: 90%;
		left: 5% !important;
	}

	.containerBotoesPaginacao {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 3px;
	}

	.anchorPaginaAtual {
		font-size: var(--ipds-font-size-sm);
	}
}


/* ========== RESPONSIVO - MOBILE ========== */
@media (max-width: 480px) {
	.divContainerPagerButtons {
		justify-content: flex-start;
	}

	.grupoPagerButton {
		display: contents !important;
	}

	.ui-jqgrid tr.jqgrow {
		min-height: 30px;
	}

	.ui-jqgrid tr.jqgrow td {
		padding: 6px 4px !important;
		font-size: var(--ipds-font-size-sm) !important;
	}

	.divContadorRegistros {
		font-size: var(--ipds-font-size-xs);
	}
}


/* ========== INPUTS E SELECTS INLINE NA GRID ========== */
.ipds-grid-input,
.ipds-grid-select {
	height: var(--ipds-input-height);
	padding: var(--ipds-input-padding-y) var(--ipds-input-padding-x);
	font-size: var(--ipds-input-font-size, 13px);
	font-family: var(--ipds-font-sans);
	border: 1px solid var(--ipds-input-border);
	border-radius: var(--ipds-input-radius);
	background-color: var(--ipds-surface, #fff);
	color: var(--ipds-text, #333);
	box-sizing: border-box;
	outline: none;
	transition: border-color 0.15s ease;
}

.ipds-grid-input:hover,
.ipds-grid-select:hover {
	border-color: var(--ipds-input-border-hover, #888);
}

.ipds-grid-input:focus,
.ipds-grid-select:focus {
	border-color: var(--ipds-input-border-focus, var(--ipds-primary, #1565C0));
	box-shadow: 0 0 0 2px rgba(21, 101, 192, 0.15);
}

.ipds-grid-input {
	width: 130px;
}

.ipds-grid-input.ipds-grid-input-wide {
	width: 100%;
}

.ipds-grid-select {
	width: 100%;
	cursor: pointer;
}

/* ========== RESPONSIVO - MOBILE PAISAGEM ========== */
@media (max-width: 768px) and (orientation: landscape) {
	.divContainerFiltroGrid,
	.divPagerButton:has(img[src*="filtro.png"]) {
		display: none !important;
	}
}
