/* ============================================================================
   MODULO 03/8 - app/03-ux-patch.css (ex-app.css linhas 1269-5094). Modern UX Patch light/dark, ajustes V3/V4, dark fixes, sidebar scroll, paginacao/export, identidade visual, loading/blockUI. A ORDEM DE INCLUSAO 01->08 E CRITICA - nao reordenar.
   ============================================================================ */
/* ==========================================================
   BMCode Modern UX Patch - Light/Dark Enterprise SaaS
   Aplicar no final do app.css para sobrescrever o tema antigo
   (o :root claro deste patch foi CONSOLIDADO no :root único
    do topo do arquivo — os valores efetivos são os de lá)
========================================================== */

.app-body.theme-dark {
	--bm-primary: var(--bm-blue, #4650D4);
	--bm-primary-dark: color-mix(in srgb, var(--bm-blue, #4650D4) 55%, #fff);
	--bm-primary-light: color-mix(in srgb, var(--bm-blue, #4650D4) 26%, #000);
	--bm-primary-soft: rgba(79, 107, 255, 0.14);
	--bm-bg: #070d1a;
	--bm-surface: #0f172a;
	--bm-surface-soft: #111827;
	--bm-surface-strong: #162033;
	--bm-surface-alt: #1b2740;   /* trilho de gráfico no escuro (antes ficava branco pelo fallback) */
	--bm-border: #1e293b;
	--bm-text: #f8fafc;
	--bm-muted: #94a3b8;
	--bm-muted-light: #64748b;
	/* ── Overrides das cores de STATUS "fortes" no escuro (tons mais claros p/ contraste em fundo escuro) ── */
	--bm-danger-strong: #f87171;
	--bm-success-strong: #4ade80;
	--bm-warning-strong: #fbbf24;
	--bm-accent: #7c8bff;
	--shadow-soft: 0 8px 28px rgba(0, 0, 0, 0.26);
	--shadow-card: 0 22px 60px rgba(0, 0, 0, 0.34);
}

html, body, .app-body {
	background: var(--bm-bg) !important;
	color: var(--bm-text) !important;
}

body .ui-widget {
	font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.app-body {
	background: radial-gradient(circle at 75% 0%, var(--bm-primary-soft),
		transparent 32%), var(--bm-bg) !important;
}

/* Layout */
.layout {
	background: transparent !important;
}

.content {
	/* densidade horizontal: gap sidebar↔conteúdo 32→18 e mais largura útil (top vira 0 pela regra do header) */
	padding: 24px 18px !important;
	background: radial-gradient(circle at 80% 0%, var(--bm-primary-soft),
		transparent 30%), var(--bm-bg) !important;
}

/* Sidebar */
.sidebar {
	width: var(--sidebar-width) !important;
	min-width: var(--sidebar-width) !important;
	max-width: var(--sidebar-width) !important;
	background: var(--bm-surface) !important;
	border-right: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}

.sidebar-header {
	height: 104px !important;
	padding: 20px 18px 18px 24px !important;
	background: var(--bm-surface) !important;
	border-bottom: 1px solid var(--bm-border) !important;
}

.logo {
	max-width: 172px !important;
	max-height: 58px !important;
	object-fit: contain;
}

.menu-toggle-btn, .top-menu-toggle {
	width: 38px !important;
	height: 38px !important;
	border-radius: 12px !important;
	background: var(--bm-surface-soft) !important;
	color: var(--bm-primary) !important;
	border: 1px solid var(--bm-border) !important;
}

.menu-toggle-btn:hover, .top-menu-toggle:hover {
	background: var(--bm-primary-light) !important;
}

.sidebar-scroll {
	height: calc(100vh - 104px) !important;
	padding: 16px 14px !important;
	background: var(--bm-surface) !important;
	display: flex;
	flex-direction: column;
}

.sidebar-accordion, .sidebar-accordion.ui-accordion {
	border: none !important;
	background: transparent !important;
	flex: 1;
}

.sidebar-accordion .ui-accordion-header {
	margin: 10px 0 4px !important;
	border: none !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.sidebar-accordion .ui-accordion-header a {
	min-height: 42px !important;
	padding: 0 10px !important;
	color: var(--bm-muted) !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	letter-spacing: 0.04em !important;
	text-transform: none !important;
}

.sidebar-accordion .ui-accordion-header.ui-state-active,
	.sidebar-accordion .ui-accordion-header.ui-state-hover {
	background: transparent !important;
}

.sidebar-accordion .ui-accordion-header.ui-state-active a,
	.sidebar-accordion .ui-accordion-header.ui-state-hover a {
	color: var(--bm-primary) !important;
}

.sidebar-accordion .ui-accordion-content {
	padding: 4px 0 12px !important;
	border: none !important;
	background: transparent !important;
}

.menu-link {
	min-height: 46px !important;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 0 14px !important;
	border-radius: 14px !important;
	color: var(--bm-muted) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	background: transparent !important;
}

.menu-link i {
	width: 20px !important;
	font-size: 16px !important;
	color: var(--bm-muted) !important;
}

/* hover = realce sutil (sem mudar peso); item ativo = ênfase forte (cor + peso + barra). */
.menu-link:hover {
	background: color-mix(in srgb, var(--bm-action) 10%, transparent) !important;
	color: var(--bm-text) !important;
}
.menu-link.active, .menu-link.menu-active {
	background: color-mix(in srgb, var(--bm-action) 12%, transparent) !important;
	color: var(--bm-action) !important;
	font-weight: 700 !important;
	box-shadow: inset 3px 0 0 var(--bm-action) !important;
}

.menu-link:hover i { color: var(--bm-text) !important; }
.menu-link.active i, .menu-link.menu-active i {
	color: var(--bm-action) !important;
}

/* Sidebar footer */
.sidebar-footer {
	margin-top: auto;
	padding-top: 16px;
}

.sidebar-user-card {
	padding: 14px;
	border: 1px solid var(--bm-border);
	border-radius: 18px;
	background: var(--bm-surface-soft);
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr) 34px;
	align-items: center;
	gap: 12px;
}

.sidebar-avatar, .topbar-avatar, .bm-avatar-sm {
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-weight: 900;
}

.sidebar-avatar {
	width: 42px;
	height: 42px;
}

.sidebar-user-info {
	min-width: 0;
}

.sidebar-user-info strong {
	display: block;
	font-size: 13px;
	color: var(--bm-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-user-info span {
	display: block;
	margin-top: 3px;
	font-size: 12px;
	color: var(--bm-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-user-menu, .theme-toggle, .topbar-icon-button {
	width: 38px !important;
	height: 38px !important;
	padding: 0 !important;
	border-radius: 14px !important;
	background: var(--bm-primary) !important;
	color: #ffffff !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}
/* "Nova demanda" no header = ação primária → cor de marca do tenant (--bm-action) p/ destacar do restante navy institucional */
.topbar-icon-button.bm-topbar-newdemand { background: var(--bm-action) !important; }
.topbar-icon-button.bm-topbar-newdemand:hover { background: var(--bm-action-hover) !important; }
/* #3 — notificações (sino) e demais ícones de ação do topo seguem a cor da empresa (não o navy fixo) */
.topbar-icon-button.bm-notif-btn { background: var(--bm-action) !important; }
.topbar-icon-button.bm-notif-btn:hover { background: var(--bm-action-hover) !important; }

.sidebar-user-menu {
	background: var(--bm-primary) !important;
}

.theme-toggle:hover, .sidebar-user-menu:hover, .topbar-icon-button:hover
	{
	filter: brightness(1.06);
	transform: translateY(-1px);
}

.sidebar-theme-row {
	display: flex;
	justify-content: center;
	padding: 12px 0 0;
}

/* Menu recolhido */
.menu-toggle-check:checked ~ .layout .sidebar {
	width: var(--sidebar-collapsed-width) !important;
	min-width: var(--sidebar-collapsed-width) !important;
	max-width: var(--sidebar-collapsed-width) !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-header {
	width: var(--sidebar-collapsed-width) !important;
	padding: 16px 0 !important;
	justify-content: center !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-scroll {
	padding: 12px 8px !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-footer {
	display: none !important;
}

.menu-toggle-check:checked ~ .layout .menu-link {
	width: 56px !important;
	height: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	justify-content: center !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-accordion .ui-accordion-header
	{
	width: 56px !important;
	min-width: 56px !important;
	max-width: 56px !important;
	border-radius: 14px !important;
}

/* Topbar */
.topbar {
	position: sticky !important;
	top: 0 !important;
	z-index: 40 !important;
	min-height: 88px !important;
	background: var(--bm-surface, #ffffff) !important; /* OPACO: conteúdo não vaza por trás no scroll */
	border: 1px solid var(--bm-border) !important;
	border-radius: 22px !important;
	box-shadow: var(--shadow-soft) !important;
	padding: 18px 22px !important;
	margin-bottom: 28px !important;
}

.theme-dark .topbar {
	background: #0f172a !important;
}

.page-title {
	font-size: 28px !important;
	font-weight: 900 !important;
	letter-spacing: -0.04em !important;
	color: var(--bm-text) !important;
}

.muted {
	color: var(--bm-muted) !important;
	font-size: 14px !important;
	margin-top: 6px !important;
}

.topbar-actions {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	flex-wrap: wrap !important;
}

.company-select, .topbar .ui-selectonemenu {
	min-width: 220px !important;
	height: 46px !important;
	border-radius: 14px !important;
	background: var(--bm-surface) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}

.topbar-user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0 8px;
}

.topbar-avatar {
	width: 42px;
	height: 42px;
}

.topbar-user strong {
	display: block;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 850;
}

.topbar-user span {
	display: block;
	margin-top: 3px;
	color: var(--bm-muted);
	font-size: 12px;
}

.logout-button {
	background: var(--bm-primary) !important;
}

/* Cards */
.bm-card, .card, .dashboard-card, .ui-panel {
	background: var(--bm-surface) !important;
	border: 1px solid var(--bm-border) !important;
	border-radius: 22px !important;
	box-shadow: var(--shadow-soft) !important;
	padding: 24px !important;
	margin-bottom: 24px !important;
	color: var(--bm-text) !important;
}

.theme-dark .bm-card, .theme-dark .card, .theme-dark .dashboard-card,
	.theme-dark .ui-panel {
	background: rgba(15, 23, 42, 0.92) !important;
}

/* Filter card */
.bm-filter-card {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: 22px;
	box-shadow: var(--shadow-soft);
	padding: 24px;
	margin-bottom: 24px;
	display: grid;
	grid-template-columns: minmax(280px, 1fr) auto auto !important;
	align-items: end;
	gap: 16px;
}

.filter-group label {
	display: block;
	margin-bottom: 8px;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 800;
}

.input-icon {
	position: relative;
}

.input-icon i {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--bm-muted);
	font-size: 16px;
	z-index: 2;
}

.input-icon .ui-inputfield {
	width: 100% !important;
	padding-left: 46px !important;
}

/* Inputs */
input, textarea, .ui-inputfield, .ui-selectonemenu, .ui-calendar input {
	min-height: 44px !important;
	border: 1px solid var(--bm-border) !important;
	border-radius: 14px !important;
	font-size: 14px !important;
	color: var(--bm-text) !important;
	background: var(--bm-surface) !important;
	box-shadow: none !important;
	transition: 0.2s ease !important;
}

input, textarea, .ui-inputfield {
	padding: 11px 14px !important;
}

input:focus, textarea:focus, .ui-inputfield:focus {
	border-color: var(--bm-primary) !important;
	box-shadow: 0 0 0 4px var(--bm-primary-soft) !important;
	outline: none !important;
}

.ui-selectonemenu .ui-selectonemenu-label {
	padding: 11px 42px 11px 14px !important;
	color: var(--bm-text) !important;
	background: transparent !important;
}

.ui-selectonemenu .ui-selectonemenu-trigger {
	border-left: 1px solid var(--bm-border) !important;
	background: transparent !important;
	border-radius: 0 14px 14px 0 !important;
}

/* Buttons */
.ui-button, .btn {
	border: none !important;
	border-radius: 14px !important;
	padding: 11px 18px !important;
	font-weight: 800 !important;
	transition: 0.2s ease !important;
	box-shadow: none !important;
}

.ui-button {
	background: var(--bm-primary) !important;
	color: #ffffff !important;
}

.ui-button:hover {
	background: var(--bm-primary-dark) !important;
	transform: translateY(-1px);
}

.btn-primary, .ui-button-success {
	background: var(--bm-action) !important;
	color: #ffffff !important;
	box-shadow: 0 14px 28px rgba(38, 50, 122, 0.22) !important;
}
.btn-primary:hover, .ui-button-success:hover {
	background: var(--bm-action-hover) !important;
}

.btn-soft-primary, .ui-button-primary {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

.btn-secondary, .ui-button-secondary {
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border: 1px solid var(--bm-border) !important;
}

/* DataTable modern */
.bm-table-card {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: 14px;
	box-shadow: var(--shadow-card);
	padding: 0;
	overflow: hidden;
}

/* Modificador: card de CONTEÚDO solto (barras, calendário, texto) — o padding:0 acima
   é correto p/ envolver p:dataTable, mas corta conteúdo encostado na borda. */
.bm-table-card.bm-content-card { padding: 14px 16px; }

.ui-datatable {
	border-radius: 14px !important;
	overflow: hidden !important;
	background: var(--bm-surface) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: var(--shadow-card) !important;
	color: var(--bm-text) !important;
}

.ui-datatable table {
	width: 100%;
	border-collapse: collapse;
}

.ui-datatable thead th {
	background: var(--bm-surface-soft) !important;
	color: var(--bm-text) !important;
	border-color: var(--bm-border) !important;
	padding: 18px 18px !important;
	font-size: 13px !important;
	font-weight: 850 !important;
	letter-spacing: -0.01em !important;
}

.theme-dark .ui-datatable thead th {
	background: #111827 !important;
}

.ui-datatable .ui-column-filter {
	width: 100% !important;
	margin-top: 8px !important;
}

.ui-datatable tbody td {
	padding: 20px 18px !important;
	border-color: var(--bm-border) !important;
	font-size: 14px !important;
	color: var(--bm-text) !important;
	vertical-align: middle !important;
}

.ui-datatable tbody tr {
	background: var(--bm-surface) !important;
	transition: 0.18s ease !important;
}

.ui-datatable tbody tr:hover {
	background: var(--bm-primary-light) !important;
}

.ui-datatable .ui-paginator {
	background: var(--bm-surface) !important;
	border-color: var(--bm-border) !important;
	padding: 16px !important;
	color: var(--bm-text) !important;
}

.ui-datatable .ui-datatable-footer {
	background: var(--bm-surface-soft) !important;
	border-color: var(--bm-border) !important;
	color: var(--bm-text) !important;
	padding: 18px 20px !important;
	text-align: left !important;
	font-weight: 800 !important;
}

.ui-paginator .ui-paginator-page, .ui-paginator .ui-paginator-next,
	.ui-paginator .ui-paginator-prev, .ui-paginator .ui-paginator-first,
	.ui-paginator .ui-paginator-last {
	min-width: 36px !important;
	height: 36px !important;
	border-radius: 10px !important;
	color: var(--bm-muted) !important;
	background: transparent !important;
	border: none !important;
}

.ui-paginator .ui-state-active {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	font-weight: 900 !important;
}

.bm-user-cell {
	display: flex;
	align-items: center;
	gap: 14px;
}

.bm-avatar-sm {
	width: 42px;
	height: 42px;
	font-size: 14px;
}

.bm-user-cell strong {
	display: block;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
}

.bm-user-cell span {
	display: block;
	margin-top: 4px;
	color: var(--bm-muted);
	font-size: 13px;
}

.badge {
	display: inline-flex;
	align-items: center;
	padding: 6px 10px !important;
	border-radius: 999px !important;
	font-size: 12px !important;
	font-weight: 900 !important;
	line-height: 1 !important;
}

.badge-primary {
	background: var(--bm-primary-light);
	color: var(--bm-primary);
}

.status-dot {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 800;
}

.status-dot::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: currentColor;
}

.status-active {
	color: var(--bm-success);
}

.status-inactive {
	color: var(--bm-danger);
}

.table-row-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.table-action-menu, .table-action-btn {
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border-radius: 12px !important;
	background: var(--bm-surface-soft) !important;
	color: var(--bm-muted) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}

.table-action-menu:hover, .table-action-btn:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

.table-action-danger:hover {
	background: rgba(239, 68, 68, 0.12) !important;
	color: var(--bm-danger) !important;
}

/* Forms */
.form-shell, .form-section {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: 22px;
	box-shadow: var(--shadow-soft);
	padding: 24px 20px;   /* padding lateral reduzido (26→20) p/ aproveitar a largura liberada */
	margin-bottom: 24px;
	color: var(--bm-text);
}

.form-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 22px;
}

.form-header h2 {
	margin: 0;
	color: var(--bm-text);
	font-size: 24px;
	font-weight: 900;
	letter-spacing: -0.03em;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px !important;
}

.form-group label, .ui-outputlabel {
	color: var(--bm-text) !important;
	font-weight: 800 !important;
}

/* Tabs/dialogs */
.ui-tabs {
	border: 1px solid var(--bm-border) !important;
	border-radius: 22px !important;
	background: var(--bm-surface) !important;
	box-shadow: var(--shadow-soft) !important;
	overflow: hidden;
}

.ui-tabs .ui-tabs-nav {
	background: var(--bm-surface-soft) !important;
	border-bottom: 1px solid var(--bm-border) !important;
	padding: 8px 8px 0 !important;
}

.ui-tabs .ui-tabs-nav li {
	border: none !important;
	background: transparent !important;
	border-radius: 14px 14px 0 0 !important;
}

.ui-tabs .ui-tabs-nav li a {
	padding: 14px 18px !important;
	color: var(--bm-muted) !important;
	font-weight: 800 !important;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
	background: var(--bm-surface) !important;
}

.ui-tabs .ui-tabs-nav li.ui-tabs-selected a {
	color: var(--bm-primary) !important;
}

.ui-tabs .ui-tabs-panel {
	padding: 26px !important;
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
}

.ui-dialog {
	border-radius: 22px !important;
	overflow: hidden;
	background: var(--bm-surface) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: var(--shadow-card) !important;
}

.ui-dialog-titlebar {
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border: none !important;
	border-bottom: 1px solid var(--bm-border) !important;
	padding: 18px 22px !important;
}

.ui-dialog-content {
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
}

/* Dark-specific PrimeFaces overlays */
.theme-dark .ui-widget-content, .theme-dark .ui-menu, .theme-dark .ui-selectonemenu-panel,
	.theme-dark .ui-selectonemenu-items-wrapper, .theme-dark .ui-selectonemenu-list
	{
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border-color: var(--bm-border) !important;
}

.theme-dark .ui-selectonemenu-item, .theme-dark .ui-menuitem-link {
	color: var(--bm-text) !important;
}

.theme-dark .ui-state-highlight, .theme-dark .ui-selectonemenu-item.ui-state-highlight
	{
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

/* Responsive */
@media ( max-width : 1100px) { /* breakpoint canônico: era 1180px */
	.bm-filter-card {
		grid-template-columns: 1fr 1fr;
	}
	.topbar {
		align-items: flex-start !important;
		flex-direction: column !important;
	}
	.topbar-actions {
		width: 100%;
	}
}

@media ( max-width : 768px) {
	.layout {
		display: block !important;
	}
	.sidebar {
		width: 100% !important;
		min-width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		position: relative !important;
	}
	.sidebar-header {
		height: 86px !important;
	}
	.sidebar-scroll {
		height: auto !important;
	}
	.content {
		padding: 18px !important;
	}
	.bm-filter-card, .form-grid {
		grid-template-columns: 1fr !important;
	}
	.topbar-actions, .bm-filter-card .ui-button {
		width: 100%;
	}
	.ui-datatable {
		overflow-x: auto !important;
	}
}

/* =========================
   AJUSTES V3 - UX PREMIUM
   - módulos como texto
   - telas com ícones
   - apenas uma opção de recolher menu
   - título de página mais leve
   - dark mode mais consistente
========================= */

/* Topbar mais leve: sem segundo botão de recolher */
.topbar {
	position: sticky !important;
	top: 0 !important;
	z-index: 40 !important;
	min-height: 72px !important;
	padding: 16px 20px !important;
	border-radius: 20px !important;
	background: var(--bm-surface, #ffffff) !important; /* OPACO: sem vazamento de conteúdo no scroll */
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.06) !important;
}

.theme-dark .topbar {
	background: #0f172a !important;
}

.page-heading {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.page-title {
	font-size: 24px !important;
	font-weight: 750 !important;
	letter-spacing: -0.035em !important;
	line-height: 1.1 !important;
	color: var(--bm-text) !important;
}

.breadcrumb-text, .muted {
	font-size: 13px !important;
	font-weight: 500 !important;
	color: var(--bm-muted) !important;
}

/* Sidebar mais parecida com a referência: módulos textuais e telas com ícones */
.sidebar {
	width: var(--sidebar-width) !important;
	min-width: var(--sidebar-width) !important;
	max-width: var(--sidebar-width) !important;
	background: var(--bm-surface) !important;
}

.sidebar-header {
	height: 96px !important;
	padding: 18px 16px 18px 22px !important;
	border-bottom: 1px solid var(--bm-border) !important;
}

.logo {
	max-width: 168px !important;
	max-height: 56px !important;
}

.menu-toggle-btn {
	width: 38px !important;
	height: 38px !important;
	min-width: 38px !important;
	border-radius: 14px !important;
	background: var(--bm-surface-soft) !important;
	border: 1px solid var(--bm-border) !important;
	color: var(--bm-primary) !important;
}

.menu-toggle-btn:hover {
	background: var(--bm-primary-light) !important;
}

.sidebar-scroll {
	height: calc(100vh - 96px) !important;
	padding: 18px 14px 16px !important;
	display: flex;
	flex-direction: column;
}

.sidebar-accordion, .sidebar-accordion.ui-accordion {
	border: none !important;
	background: transparent !important;
}

.sidebar-accordion .ui-accordion-header {
	margin: 18px 0 6px !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
}

.sidebar-accordion .ui-accordion-header:first-child {
	margin-top: 0 !important;
}

.sidebar-accordion .ui-accordion-header a {
	min-height: auto !important;
	padding: 0 10px !important;
	background: transparent !important;
	color: var(--bm-muted) !important;
	font-size: 11px !important;
	font-weight: 850 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	line-height: 1.2 !important;
}

.sidebar-accordion .ui-accordion-header .ui-icon, .sidebar-accordion .ui-accordion-header .pi:not(.menu-link i)
	{
	display: none !important;
}

.menu-section-title {
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-accordion .ui-accordion-header.ui-state-active,
	.sidebar-accordion .ui-accordion-header.ui-state-hover {
	background: transparent !important;
}

.sidebar-accordion .ui-accordion-content {
	padding: 4px 0 12px !important;
	border: none !important;
	background: transparent !important;
}

.menu-link {
	min-height: 46px !important;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 0 13px !important;
	border-radius: 15px !important;
	color: var(--bm-text) !important;
	font-size: 14px !important;
	font-weight: 650 !important;
	transition: 0.18s ease !important;
}

.menu-link i {
	width: 20px !important;
	font-size: 16px !important;
	text-align: center !important;
	color: var(--bm-muted) !important;
}

.menu-link:hover {
	background: color-mix(in srgb, var(--bm-action) 10%, transparent) !important;
	color: var(--bm-action) !important;
}

.menu-link:hover i {
	color: var(--bm-primary) !important;
}

/* Rodapé da sidebar mais limpo */
.sidebar-footer {
	margin-top: auto;
	padding-top: 16px;
}

.sidebar-user-card {
	margin: 8px 0 12px !important;
	padding: 12px !important;
	border-radius: 18px !important;
	background: var(--bm-surface-soft) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	grid-template-columns: 40px 1fr 34px !important;
}

.sidebar-user-info strong {
	max-width: 118px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sidebar-theme-row {
	display: flex !important;
	justify-content: center !important;
}

/* Menu recolhido: apenas ícones das telas; módulos somem */
.menu-toggle-check:checked ~ .layout .sidebar {
	width: var(--sidebar-collapsed-width) !important;
	min-width: var(--sidebar-collapsed-width) !important;
	max-width: var(--sidebar-collapsed-width) !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-header {
	width: var(--sidebar-collapsed-width) !important;
	padding: 18px 0 !important;
	justify-content: center !important;
}

.menu-toggle-check:checked ~ .layout .logo {
	display: none !important;
}

.menu-toggle-check:checked ~ .layout .menu-toggle-btn i {
	transform: rotate(180deg);
}

.menu-toggle-check:checked ~ .layout .sidebar-scroll {
	padding: 14px 8px !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-accordion .ui-accordion-header
	{
	display: none !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-accordion .ui-accordion-content
	{
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	padding: 4px 0 !important;
}

.menu-toggle-check:checked ~ .layout .menu-link {
	width: 46px !important;
	height: 46px !important;
	min-height: 46px !important;
	padding: 0 !important;
	justify-content: center !important;
}

.menu-toggle-check:checked ~ .layout .menu-link .menu-text,
	.menu-toggle-check:checked ~ .layout .sidebar-user-info,
	.menu-toggle-check:checked ~ .layout .sidebar-user-menu {
	display: none !important;
}

.menu-toggle-check:checked ~ .layout .sidebar-user-card {
	grid-template-columns: 1fr !important;
	padding: 8px !important;
	justify-items: center !important;
}

/* Tabela e filtros com aparência mais próxima da referência premium */
.bm-filter-card {
	border-radius: 22px !important;
	padding: 24px !important;
	box-shadow: 0 14px 42px rgba(15, 23, 42, 0.07) !important;
}

/* raio 14px (era 22px): com overflow:hidden o arco de 22px alcançava e cortava o
   conteúdo das células dos cantos (ex.: valores no Raio-X) */
.bm-table-card, .ui-datatable {
	border-radius: 14px !important;
	box-shadow: 0 18px 52px rgba(15, 23, 42, 0.08) !important;
}

.ui-datatable thead th {
	background: var(--bm-surface-soft) !important;
	color: var(--bm-text) !important;
	font-weight: 800 !important;
}

.ui-datatable tbody td {
	padding-top: 18px !important;
	padding-bottom: 18px !important;
}

.table-action-menu {
	width: 40px !important;
	height: 40px !important;
	padding: 0 !important;
	border-radius: 13px !important;
	background: var(--bm-surface-soft) !important;
	color: var(--bm-muted) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}

.table-action-menu:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

.bm-row-menu {
	border-radius: 16px !important;
	border: 1px solid var(--bm-border) !important;
	background: var(--bm-surface) !important;
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.16) !important;
	padding: 8px !important;
}

.bm-row-menu .ui-menuitem-link {
	border-radius: 12px !important;
	padding: 12px 14px !important;
	color: var(--bm-text) !important;
	font-weight: 650 !important;
}

.bm-row-menu .ui-menuitem-link:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

.danger-menu-item .ui-menuitem-text, .danger-menu-item .ui-menuitem-icon,
	.danger-menu-item .ui-menuitem-link {
	color: var(--bm-danger) !important;
}

/* Dark mode mais consistente */
.theme-dark, .theme-dark .layout, .theme-dark .content {
	background: #070d1a !important;
	color: var(--bm-text) !important;
}

.theme-dark .content {
	background: radial-gradient(circle at 80% 0%, rgba(79, 107, 255, 0.12),
		transparent 28%), #070d1a !important;
}

.theme-dark .sidebar, .theme-dark .sidebar-header, .theme-dark .topbar,
	.theme-dark .bm-filter-card, .theme-dark .bm-table-card, .theme-dark .ui-datatable,
	.theme-dark .ui-datatable tbody tr, .theme-dark .ui-panel, .theme-dark .bm-card,
	.theme-dark .card, .theme-dark .dashboard-card {
	background: #0f172a !important;
	border-color: #1e293b !important;
	color: #f8fafc !important;
}

.theme-dark .sidebar-user-card, .theme-dark .menu-toggle-btn,
	.theme-dark .topbar-icon-button, .theme-dark .ui-datatable thead th,
	.theme-dark .ui-datatable .ui-paginator, .theme-dark .table-action-menu,
	.theme-dark .bm-row-menu, .theme-dark input, .theme-dark textarea,
	.theme-dark .ui-inputfield, .theme-dark .ui-selectonemenu {
	background: #111827 !important;
	border-color: #273449 !important;
	color: #f8fafc !important;
}

.theme-dark .ui-datatable tbody tr:hover, .theme-dark .menu-link:hover {
	background: rgba(79, 107, 255, 0.16) !important;
}

.theme-dark .ui-datatable tbody td, .theme-dark .ui-datatable thead th {
	border-color: #1e293b !important;
	color: #f8fafc !important;
}

.theme-dark .muted, .theme-dark .breadcrumb-text, .theme-dark .menu-link i,
	.theme-dark .sidebar-user-info span, .theme-dark .bm-user-cell span {
	color: #94a3b8 !important;
}

.theme-dark .menu-link, .theme-dark .page-title, .theme-dark .sidebar-user-info strong,
	.theme-dark .bm-user-cell strong {
	color: #f8fafc !important;
}

.theme-dark .badge-primary {
	background: rgba(79, 107, 255, 0.18) !important;
	color: #8ea2ff !important;
}

/* Responsivo mantém apenas o toggle da sidebar */
@media ( max-width : 768px) {
	.topbar {
		border-radius: 18px !important;
	}
	.page-title {
		font-size: 22px !important;
	}
}

/* (o :root que redefinia --sidebar-width/--sidebar-collapsed-width aqui
   foi consolidado no :root único do topo do arquivo) */

/* =========================================================
   AJUSTES V4 - MENU, DARK MODE, ACOES E HOVER
   Mantem o logo BMCode e remove problemas de clique/estado.
========================================================= */

/* Base para garantir que o tema escuro seja aplicado em todos os elementos principais */
.app-body.theme-dark, .theme-dark .layout, .theme-dark .content {
	background: #070d1a !important;
	color: var(--bm-text) !important;
}

.theme-dark .content {
	background: radial-gradient(circle at 80% 0%, rgba(79, 107, 255, 0.10),
		transparent 30%), #070d1a !important;
}

.theme-dark .sidebar, .theme-dark .sidebar-header, .theme-dark .topbar,
	.theme-dark .bm-filter-card, .theme-dark .bm-table-card, .theme-dark .ui-datatable,
	.theme-dark .ui-datatable tbody tr, .theme-dark .ui-panel, .theme-dark .card,
	.theme-dark .bm-card, .theme-dark .dashboard-card {
	background: #0f172a !important;
	border-color: #1e293b !important;
	color: #f8fafc !important;
}

.theme-dark .sidebar-scroll, .theme-dark .ui-datatable thead th,
	.theme-dark .ui-datatable .ui-paginator, .theme-dark .ui-datatable tfoot td,
	.theme-dark .ui-datatable tfoot tr {
	background: #111827 !important;
	border-color: #1e293b !important;
	color: #f8fafc !important;
}

.theme-dark .muted, .theme-dark .breadcrumb-text, .theme-dark .sidebar-section-title,
	.theme-dark .sidebar-user-info span, .theme-dark .topbar-user span,
	.theme-dark .bm-user-cell span {
	color: #94a3b8 !important;
}

.theme-dark input, .theme-dark textarea, .theme-dark .ui-inputfield,
	.theme-dark .ui-selectonemenu, .theme-dark .ui-calendar input {
	background: #0b1220 !important;
	border-color: #263449 !important;
	color: #f8fafc !important;
}

.theme-dark input::placeholder, .theme-dark textarea::placeholder,
	.theme-dark .ui-inputfield::placeholder {
	color: #64748b !important;
}

/* AUTOFILL do navegador (ex.: e-mail salvo suporte@bmcode.com.br): o Chrome pinta o input com um fundo
   claro próprio que IGNORA o background normal — deixava a caixa clara/ilegível no app. Só o box-shadow
   inset cobre isso; o text-fill-color força a cor do texto. Vale nos 2 temas (o portal já tinha isto). */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active,
	textarea:-webkit-autofill, select:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
	box-shadow: 0 0 0 1000px #ffffff inset !important;
	-webkit-text-fill-color: #0f172a !important;
	caret-color: #0f172a;
	transition: background-color 9999s ease-out 0s;
}
.theme-dark input:-webkit-autofill, .theme-dark input:-webkit-autofill:hover,
	.theme-dark input:-webkit-autofill:focus, .theme-dark input:-webkit-autofill:active,
	.theme-dark textarea:-webkit-autofill, .theme-dark select:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #0b1220 inset !important;
	box-shadow: 0 0 0 1000px #0b1220 inset !important;
	-webkit-text-fill-color: #f8fafc !important;
	caret-color: #f8fafc;
}

.theme-dark .ui-selectonemenu-label, .theme-dark .ui-selectonemenu-trigger,
	.theme-dark .ui-selectonemenu .ui-selectonemenu-label {
	background: #0b1220 !important;
	color: #f8fafc !important;
}

.theme-dark .ui-datatable tbody td, .theme-dark .ui-datatable thead th {
	border-color: #1e293b !important;
}

.theme-dark .ui-datatable tbody tr:hover {
	background: rgba(79, 107, 255, 0.10) !important;
}

/* Sidebar com modulos como texto e telas como itens clicaveis */
.sidebar-scroll {
	padding: 18px 14px 14px !important;
}

.sidebar-section {
	margin-bottom: 18px;
}

.sidebar-search {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
}

.sidebar-search-icon {
	color: var(--bm-muted);
	font-size: 14px;
	flex-shrink: 0;
}

.sidebar-search-input {
	flex: 1;
	height: 36px;
	padding: 0 12px;
	border-radius: 14px;
	border: 1px solid var(--bm-border);
	background: var(--bm-surface);
	color: var(--bm-text);
	font-size: 13px;
	outline: none;
	box-sizing: border-box;
}

.sidebar-search-input:focus {
	border-color: var(--bm-primary);
	box-shadow: 0 0 0 2px rgba(79, 107, 255, 0.15);
}

.sidebar-search-input::placeholder {
	color: var(--bm-muted);
	font-size: 13px;
}

.sidebar-collapsed .sidebar-search {
	display: none !important;
}

.sidebar-section-title {
	padding: 8px 12px 10px;
	color: var(--bm-muted);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-transform: none;
}

.menu-link {
	min-height: 46px !important;
	border-radius: 14px !important;
	margin: 2px 0;
	color: var(--bm-text) !important;
	font-weight: 650 !important;
}

.menu-link i {
	color: var(--bm-muted) !important;
	font-size: 16px !important;
}

.menu-link:hover {
	background: color-mix(in srgb, var(--bm-action) 10%, transparent) !important;
	color: var(--bm-action) !important;
}

.menu-link:hover i {
	color: var(--bm-primary) !important;
}

/* Recolhimento via classe JS, sem checkbox. Permite abrir e fechar sem recarregar. */
.sidebar-collapsed .sidebar {
	width: var(--sidebar-collapsed-width) !important;
	min-width: var(--sidebar-collapsed-width) !important;
	max-width: var(--sidebar-collapsed-width) !important;
}

.sidebar-collapsed .sidebar-header {
	padding: 18px 10px !important;
	justify-content: center !important;
}

.sidebar-collapsed .logo, .sidebar-collapsed .sidebar-section-title,
	.sidebar-collapsed .menu-text, .sidebar-collapsed .sidebar-user-info {
	display: none !important;
}

.sidebar-collapsed .menu-toggle-btn i {
	transform: rotate(180deg);
}

.sidebar-collapsed .sidebar-scroll {
	padding: 14px 8px !important;
}

.sidebar-collapsed .menu-link {
	width: 48px !important;
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 !important;
	justify-content: center !important;
}

.sidebar-collapsed .menu-link i {
	width: auto !important;
	margin: 0 !important;
}

.sidebar-collapsed .sidebar-user-card {
	grid-template-columns: 1fr !important;
	padding: 8px !important;
	justify-items: center;
}

.sidebar-collapsed .sidebar-footer {
	padding: 0 !important;
}

/* Topbar mais leve */
.page-title-row {
	display: flex;
	align-items: center;
	gap: 14px;
}

.page-title {
	font-size: 26px !important;
	font-weight: 800 !important;
	letter-spacing: -0.035em !important;
}

.breadcrumb-text {
	font-size: 13px !important;
	font-weight: 500 !important;
}

/* Hover dos botoes: nao escurecer demais e manter legibilidade */
.btn-soft-primary, .ui-button.btn-soft-primary, body .ui-button.btn-soft-primary
	{
	background: color-mix(in srgb, var(--bm-blue, var(--tenka-indigo)) 10%, #fff) !important;
	color: var(--bm-action) !important;
	border: 1px solid color-mix(in srgb, var(--bm-blue, var(--tenka-indigo)) 22%, #fff) !important;
}

.btn-soft-primary .ui-button-text, .ui-button.btn-soft-primary .ui-button-text,
	body .ui-button.btn-soft-primary .ui-button-text, .btn-soft-primary .ui-icon,
	.ui-button.btn-soft-primary .ui-icon, body .ui-button.btn-soft-primary .ui-icon
	{
	color: var(--bm-action) !important;
}

.btn-soft-primary:hover, .ui-button.btn-soft-primary:hover, body .ui-button.btn-soft-primary:hover
	{
	background: color-mix(in srgb, var(--bm-blue, var(--tenka-indigo)) 18%, #fff) !important;
	color: var(--bm-action-hover) !important;
	transform: translateY(-1px);
}

.btn-soft-primary:hover .ui-button-text, .ui-button.btn-soft-primary:hover .ui-button-text,
	body .ui-button.btn-soft-primary:hover .ui-button-text,
	.btn-soft-primary:hover .ui-icon, .ui-button.btn-soft-primary:hover .ui-icon,
	body .ui-button.btn-soft-primary:hover .ui-icon {
	color: #172351 !important;
}

.theme-dark .btn-soft-primary, .theme-dark .ui-button.btn-soft-primary,
	.theme-dark body .ui-button.btn-soft-primary {
	background: rgba(79, 107, 255, 0.16) !important;
	color: #dbe4ff !important;
	border-color: rgba(79, 107, 255, 0.24) !important;
}

.theme-dark .btn-soft-primary .ui-button-text, .theme-dark .ui-button.btn-soft-primary .ui-button-text,
	.theme-dark .btn-soft-primary .ui-icon, .theme-dark .ui-button.btn-soft-primary .ui-icon
	{
	color: #dbe4ff !important;
}

.theme-dark .btn-soft-primary:hover, .theme-dark .ui-button.btn-soft-primary:hover
	{
	background: rgba(79, 107, 255, 0.24) !important;
	color: #ffffff !important;
}

/* Menu de acoes em tres pontos usando p:menuButton, sem JS customizado. */
.table-action-menu, .ui-menubutton.table-action-menu, body .ui-menubutton.table-action-menu
	{
	width: 42px !important;
	height: 42px !important;
	border-radius: 14px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.ui-menubutton.table-action-menu .ui-button, body .ui-menubutton.table-action-menu .ui-button
	{
	width: 42px !important;
	height: 42px !important;
	padding: 0 !important;
	border-radius: 14px !important;
	background: var(--bm-surface-soft) !important;
	color: var(--bm-muted) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}

.ui-menubutton.table-action-menu .ui-button-text, body .ui-menubutton.table-action-menu .ui-button-text
	{
	display: none !important;
}

.ui-menubutton.table-action-menu .ui-icon, body .ui-menubutton.table-action-menu .ui-icon
	{
	color: var(--bm-muted) !important;
}

.ui-menubutton.table-action-menu .ui-button:hover, body .ui-menubutton.table-action-menu .ui-button:hover
	{
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	transform: none !important;
}

.ui-menubutton.topbar-icon-button {
	display: inline-flex !important;
	vertical-align: middle !important;
}

.ui-menubutton.topbar-icon-button .ui-button {
	width: 38px !important;
	height: 38px !important;
	padding: 0 !important;
	border-radius: 14px !important;
	background: var(--bm-primary) !important;
	color: #ffffff !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
}

.ui-menubutton.topbar-icon-button .ui-button-text {
	display: none !important;
}

.ui-menubutton.topbar-icon-button .ui-button-icon-left {
	position: static !important;
	margin: 0 !important;
}

.ui-menubutton.topbar-icon-button .ui-icon-triangle-1-s {
	display: none !important;
}

.ui-menubutton.table-action-menu .ui-button:hover .ui-icon, body .ui-menubutton.table-action-menu .ui-button:hover .ui-icon
	{
	color: var(--bm-primary) !important;
}

.ui-menu, .ui-menu.ui-widget, .ui-menu .ui-menu-list {
	border-radius: 16px !important;
	background: var(--bm-surface) !important;
	border-color: var(--bm-border) !important;
}

.ui-menu.ui-widget {
	box-shadow: var(--shadow-card) !important;
	padding: 8px !important;
}

.ui-menu .ui-menuitem-link {
	border-radius: 12px !important;
	padding: 11px 13px !important;
	color: var(--bm-text) !important;
	font-weight: 650 !important;
}

.ui-menu .ui-menuitem-link:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

.theme-dark .ui-menu, .theme-dark .ui-menu.ui-widget, .theme-dark .ui-menu .ui-menu-list
	{
	background: #111827 !important;
	border-color: #263449 !important;
}

.theme-dark .ui-menu .ui-menuitem-link {
	color: #f8fafc !important;
}

.danger-menu-item .ui-menuitem-text, .danger-menu-item .ui-menuitem-icon,
	.danger-menu-item .ui-menuitem-link {
	color: var(--bm-danger) !important;
}

/* Evita que estilos antigos de accordion interfiram se ainda estiverem em cache/arquivo. */
.sidebar-accordion {
	display: none !important;
}

@media ( max-width : 768px) {
	.sidebar-collapsed .sidebar, .sidebar {
		width: 100% !important;
		min-width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
		position: relative !important;
	}
	.sidebar-collapsed .sidebar-scroll {
		display: none !important;
	}
	.sidebar-collapsed .logo {
		display: block !important;
	}
}

.ui-button:hover, .ui-button:focus, .ui-button.ui-state-hover {
	color: #ffffff !important;
	background: var(--bm-primary-dark) !important;
	border-color: var(--bm-primary-dark) !important;
}

.btn-secondary:hover, .btn-secondary:focus, .btn-secondary.ui-state-hover,
	.btn-soft-primary:hover, .btn-soft-primary:focus, .btn-soft-primary.ui-state-hover
	{
	/* hover deriva da COR DO TENANT (--bm-blue), não do navy fixo (--bm-primary) — senão fica azul p/ todo tenant. */
	color: var(--bm-action) !important;
	background: color-mix(in srgb, var(--bm-blue, var(--tenka-indigo)) 12%, #fff) !important;
	border-color: color-mix(in srgb, var(--bm-blue, var(--tenka-indigo)) 30%, #fff) !important;
}

.btn-danger:hover, .btn-danger:focus, .btn-danger.ui-state-hover {
	color: var(--bm-danger) !important;
	background: rgba(239, 68, 68, 0.14) !important;
}

/* (consolidado) estilo do item ativo do menu agora vive numa única regra junto do hover —
   ver ".menu-link.active, .menu-link.menu-active" mais acima. Bloco removido p/ matar o conflito
   de peso (650 !important da base vencia o 800 sem !important daqui → ativo não destacava). */

.pk-code {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border);
	color: var(--bm-muted);
	font-size: 12px;
	font-weight: 800;
}

/* =========================
   DARK MODE - FIX FORM / TABS / PRIMEFACES
========================= */
.theme-dark .ui-tabs, .theme-dark .ui-tabs-panel, .theme-dark .ui-tabs .ui-tabs-panel,
	.theme-dark .ui-tabs-panels, .theme-dark .ui-tabs .ui-tabs-nav,
	.theme-dark .ui-panel, .theme-dark .ui-panel-content, .theme-dark .bm-card,
	.theme-dark .card, .theme-dark .form-section {
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border-color: var(--bm-border) !important;
}

.theme-dark .ui-tabs .ui-tabs-nav {
	background: var(--bm-surface-soft) !important;
}

.theme-dark .ui-tabs .ui-tabs-nav li {
	background: transparent !important;
	border-color: transparent !important;
}

.theme-dark .ui-tabs .ui-tabs-nav li a {
	color: var(--bm-muted) !important;
}

.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-selected, .theme-dark .ui-tabs .ui-tabs-nav li.ui-state-active
	{
	background: var(--bm-surface) !important;
	border-color: var(--bm-border) !important;
}

.theme-dark .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .theme-dark .ui-tabs .ui-tabs-nav li.ui-state-active a
	{
	color: var(--bm-primary) !important;
}

/* Labels */
.theme-dark label, .theme-dark .ui-outputlabel, .theme-dark .form-group label
	{
	color: var(--bm-text) !important;
}

/* Inputs */
.theme-dark input, .theme-dark textarea, .theme-dark .ui-inputfield,
	.theme-dark .ui-selectonemenu, .theme-dark .ui-calendar input {
	background: #0b1220 !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
	box-shadow: none !important;
}

/* Placeholder */
.theme-dark input::placeholder, .theme-dark textarea::placeholder {
	color: #64748b !important;
}

/* Campo desabilitado */
.theme-dark input:disabled, .theme-dark textarea:disabled, .theme-dark .ui-state-disabled,
	.theme-dark .ui-inputfield.ui-state-disabled {
	background: #1e293b !important;
	color: #cbd5e1 !important;
	opacity: 1 !important;
}

/* SelectOneMenu */
.theme-dark .ui-selectonemenu-label {
	background: #0b1220 !important;
	color: #f8fafc !important;
}

.theme-dark .ui-selectonemenu-trigger {
	background: #0b1220 !important;
	border-left-color: #263449 !important;
	color: #cbd5e1 !important;
}

.theme-dark .ui-selectonemenu-panel, .theme-dark .ui-selectonemenu-items-wrapper,
	.theme-dark .ui-selectonemenu-list {
	background: #0f172a !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
}

.theme-dark .ui-selectonemenu-item {
	background: #0f172a !important;
	color: #f8fafc !important;
}

.theme-dark .ui-selectonemenu-item:hover, .theme-dark .ui-selectonemenu-item.ui-state-highlight
	{
	background: rgba(79, 107, 255, 0.18) !important;
	color: #ffffff !important;
}

/* Checkbox */
.theme-dark .ui-chkbox-box {
	background: #0b1220 !important;
	border-color: #334155 !important;
}

.theme-dark .ui-chkbox-box.ui-state-active {
	background: var(--bm-primary) !important;
	border-color: var(--bm-primary) !important;
	color: #ffffff !important;
}

/* Botões no formulário */
.theme-dark .btn-secondary, .theme-dark .btn-secondary.ui-button {
	background: #0f172a !important;
	color: #f8fafc !important;
	border: 1px solid #263449 !important;
}

.theme-dark .btn-secondary:hover, .theme-dark .btn-secondary.ui-button:hover
	{
	background: rgba(79, 107, 255, 0.16) !important;
	color: #ffffff !important;
	border-color: var(--bm-primary) !important;
}

/* Fundo branco interno que aparece em forms */
.theme-dark .ui-widget-content {
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border-color: var(--bm-border) !important;
}

/* =========================
   DARK MODE - FIX DEFINITIVO FORM GRID
========================= */
.theme-dark .ui-panelgrid, .theme-dark .ui-panelgrid-content,
	.theme-dark .ui-panelgrid-cell, .theme-dark .ui-grid, .theme-dark .ui-grid-row,
	.theme-dark .ui-g, .theme-dark .ui-g-12, .theme-dark .ui-g-6,
	.theme-dark .ui-fluid, .theme-dark .form-grid, .theme-dark .form-group,
	.theme-dark table, .theme-dark tbody, .theme-dark tr, .theme-dark td {
	background: transparent !important;
	color: var(--bm-text) !important;
	border-color: var(--bm-border) !important;
}

.theme-dark .ui-tabs-panel, .theme-dark .ui-tabs .ui-tabs-panel,
	.theme-dark .ui-tabs-panels, .theme-dark .ui-widget-content {
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border-color: var(--bm-border) !important;
}

/* remove o bloco branco interno */
.theme-dark .ui-panelgrid-content, .theme-dark .ui-panelgrid .ui-panelgrid-cell
	{
	background: var(--bm-surface) !important;
}

/* labels do formulário */
.theme-dark .ui-outputlabel, .theme-dark label, .theme-dark .form-group label
	{
	color: #e5e7eb !important;
}

/* campos */
.theme-dark input, .theme-dark textarea, .theme-dark .ui-inputfield {
	background: #0b1220 !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
}

/* campos disabled/read-only */
.theme-dark input:disabled, .theme-dark textarea:disabled, .theme-dark .ui-inputfield.ui-state-disabled,
	.theme-dark .ui-state-disabled {
	background: #1e293b !important;
	color: #cbd5e1 !important;
	opacity: 1 !important;
}

/* select */
.theme-dark .ui-selectonemenu, .theme-dark .ui-selectonemenu-label,
	.theme-dark .ui-selectonemenu-trigger {
	background: #0b1220 !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
}

/* checkbox */
.theme-dark .ui-chkbox-box {
	background: #0b1220 !important;
	border-color: #334155 !important;
}

.theme-dark .ui-chkbox-box.ui-state-active {
	background: var(--bm-primary) !important;
	border-color: var(--bm-primary) !important;
}

/* =========================
   SIDEBAR SCROLL PREMIUM
========================= */
.sidebar {
	overflow: hidden !important;
}

.sidebar-scroll {
	height: calc(100vh - 104px);
	overflow-y: auto;
	overflow-x: hidden;
	padding: 16px 14px 20px;
	scrollbar-width: thin;
	scrollbar-color: rgba(148, 163, 184, 0.35) transparent;
}

/* Chrome / Edge */
.sidebar-scroll::-webkit-scrollbar {
	width: 6px;
}

.sidebar-scroll::-webkit-scrollbar-track {
	background: transparent;
}

.sidebar-scroll::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.28);
	border-radius: 999px;
}

.sidebar-scroll::-webkit-scrollbar-thumb:hover {
	background: rgba(148, 163, 184, 0.50);
}

/* Dark */
.theme-dark .sidebar-scroll {
	scrollbar-color: rgba(148, 163, 184, 0.28) transparent;
}

.theme-dark .sidebar-scroll::-webkit-scrollbar-thumb {
	background: rgba(148, 163, 184, 0.22);
}

.theme-dark .sidebar-scroll::-webkit-scrollbar-thumb:hover {
	background: rgba(148, 163, 184, 0.42);
}

.form-header {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) auto;
	align-items: center;
	gap: 20px;
	margin-bottom: 22px;
}

.form-header h2 {
	margin: 0;
	color: var(--bm-text);
	font-size: 24px;
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.2;
}

.form-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: nowrap;
}

.form-header-actions>* {
	align-self: center;
}

.form-navigation-bar {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center;
	gap: 2px;
	height: 44px;
	padding: 5px 8px;
	border-radius: 14px;
	background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border);
	box-shadow: none;
	vertical-align: middle;
}

.form-navigation-bar .form-navigation-goto,
.form-navigation-bar input.form-navigation-goto {
	width: 46px !important;
	min-width: 46px !important;
	height: 32px !important;
	text-align: center !important;
	padding: 0 4px !important;
	border-radius: 8px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	margin: 0 2px !important;
}

/* indicador de alterações não salvas (header do form) */
.bm-dirty-flag {
	font-size: 12px;
	font-weight: 700;
	color: #d97706;
	margin-left: 10px;
	white-space: nowrap;
}

/* mensagem de validação inline sob o campo */
.field-error-msg .ui-message-text,
.field-error-msg.ui-message-error {
	color: #dc2626 !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	display: block;
	margin-top: 4px;
}

/* busca rápida no formulário (autocomplete de registro) */
.form-quick-search {
	display: flex;
	align-items: center;
	margin: 2px 0 16px;
	max-width: 520px;
	position: relative;
}
.form-quick-search-icon {
	position: absolute;
	left: 12px;
	color: var(--bm-muted);
	font-size: 14px;
	pointer-events: none;
	z-index: 2;
}
.form-quick-search-input,
.form-quick-search-input.ui-autocomplete {
	width: 100% !important;
}
.form-quick-search-input .ui-autocomplete-input,
.form-quick-search-input input {
	width: 100% !important;
	height: 40px !important;
	padding-left: 34px !important;
	border-radius: 10px !important;
}

/* botão overflow (⋮) do cabeçalho: limpo, sem sombra */
.bm-overflow-btn.ui-menubutton .ui-button,
.bm-overflow-btn .ui-button {
	background: var(--bm-surface) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	color: var(--bm-muted) !important;
	min-width: 40px !important;
}
.bm-overflow-btn .ui-button:hover {
	background: var(--bm-surface-soft) !important;
	color: var(--bm-text) !important;
}
.bm-overflow-btn .ui-button .ui-button-text {
	display: none !important;
}

/* dialog de confirmação estilizado (substitui o window.confirm nativo) */
.bm-confirm-body { display: flex; align-items: flex-start; gap: 12px; padding: 4px 2px 10px; }
.bm-confirm-icon { color: #d97706; font-size: 22px; margin-top: 2px; }
.bm-confirm-msg { font-size: 14px; color: var(--bm-text); line-height: 1.45; }

/* seção recolhível de auditoria */
/* registro de alterações — link discreto no canto + popover (substitui o fieldset) */
.bm-audit-link-wrap {
	margin-top: 14px;
	text-align: right;
}
.bm-audit-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	color: var(--bm-muted);
	text-decoration: none;
	cursor: pointer;
	transition: color .15s;
}
.bm-audit-link:hover {
	color: var(--bm-primary);
}
.bm-audit-link i {
	font-size: 13px;
}
.bm-audit-pop {
	max-width: 320px;
}
.bm-audit-pop-grid {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 5px 14px;
	font-size: 13px;
	align-items: baseline;
}
.bm-audit-pop-grid .bm-audit-k {
	color: var(--bm-muted);
	font-weight: 600;
	white-space: nowrap;
}
.bm-audit-pop-grid .bm-audit-v {
	color: var(--bm-text);
}

/* histórico de alterações (auditoria campo-a-campo) dentro do popover */
.bm-audit-pop:has(.bm-audit-hist) { max-width: 420px; }
.bm-audit-hist {
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px solid var(--bm-border, #e5e7eb);
}
.bm-audit-hist-title {
	font-size: 12px;
	font-weight: 700;
	color: var(--bm-muted);
	text-transform: uppercase;
	letter-spacing: .03em;
	margin-bottom: 8px;
}
.bm-audit-hist-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 240px;
	overflow-y: auto;
}
.bm-audit-hist-item {
	padding: 6px 0;
	border-bottom: 1px dashed var(--bm-border, #eee);
}
.bm-audit-hist-item:last-child { border-bottom: none; }
.bm-audit-hist-line {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	font-size: 13px;
}
.bm-audit-hist-campo { font-weight: 600; color: var(--bm-text); }
.bm-audit-hist-de {
	color: var(--bm-muted);
	text-decoration: line-through;
	opacity: .8;
}
.bm-audit-hist-arrow { font-size: 11px; color: var(--bm-muted); }
.bm-audit-hist-para { color: var(--bm-text); font-weight: 600; }
.bm-audit-hist-meta {
	font-size: 11px;
	color: var(--bm-muted);
	margin-top: 2px;
}

/* form compacto/elegante (escopo da tela de referência) */
.bm-tabview .ui-tabs-panel {
	padding: 18px 22px !important;
}
.bm-tabview .form-grid-modern {
	max-width: 760px;
}

/* busca rápida no cabeçalho (mesma linha da paginação) */
.bm-header-search.ui-autocomplete { width: 230px !important; }
.bm-header-search .ui-autocomplete-input,
.bm-header-search input {
	width: 230px !important;
	height: 40px !important;
	border-radius: 10px !important;
	font-size: 13px !important;
}
@media (max-width: 1100px) {
	.bm-header-search.ui-autocomplete,
	.bm-header-search .ui-autocomplete-input,
	.bm-header-search input { width: 160px !important; }
}

/* dialog de atalhos de teclado */
.bm-shortcuts { list-style: none; margin: 0; padding: 4px 2px; }
.bm-shortcuts li {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; padding: 9px 6px; border-bottom: 1px solid var(--bm-border);
}
.bm-shortcuts li:last-child { border-bottom: none; }
.bm-shortcuts em { font-style: normal; color: var(--bm-muted); font-size: 13px; }
.bm-sc-keys { display: inline-flex; align-items: center; gap: 4px; }
.kbd {
	display: inline-block; min-width: 22px; text-align: center;
	padding: 2px 7px; font-size: 12px; font-weight: 700;
	color: var(--bm-text); background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border); border-bottom-width: 2px; border-radius: 6px;
}

/* foco visível consistente (acessibilidade) */
.form-header-actions .ui-button:focus-visible,
.form-shell .ui-inputfield:focus-visible,
.form-shell .ui-selectonebutton .ui-button:focus-visible,
.form-shell .ui-autocomplete-input:focus-visible {
	outline: 2px solid var(--bm-primary) !important;
	outline-offset: 2px !important;
}

/* header de ações: quebra linha em telas estreitas (não estoura) */
.form-header-actions {
	flex-wrap: wrap;
	gap: 8px;
}
@media (max-width: 820px) {
	.form-header { flex-direction: column; align-items: stretch; }
	.bm-header-search.ui-autocomplete,
	.bm-header-search .ui-autocomplete-input,
	.bm-header-search input { width: 100% !important; }
}

/* separa o grupo de navegação (esq.) das ações do registro (dir.) no header */
.form-header-actions .bm-actions-spacer { margin-left: auto !important; }

/* dialog de preferências de campos (estilo Sankhya) */
.bm-prefs-hint { color: var(--bm-muted); font-size: 13px; margin: 0 0 12px; }
.bm-prefs-row {
	display: flex; align-items: center; gap: 10px;
	padding: 9px 4px; border-bottom: 1px solid var(--bm-border);
}
.bm-prefs-row:last-of-type { border-bottom: none; }
.bm-prefs-label { font-size: 14px; color: var(--bm-text); }
.bm-prefs-lock { color: var(--bm-muted); font-size: 12px; font-style: italic; }

.form-navigation-counter {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 32px;
	color: var(--bm-muted);
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
	text-align: center;
}

.form-header-actions .ui-button, .form-header-actions .ui-commandlink,
	.form-header-actions .form-navigation-bar {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.nav-btn, .ui-button.nav-btn {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	padding: 0 !important;
	border-radius: 10px !important;
	background: transparent !important;
	color: var(--bm-muted) !important;
	border: none !important;
	box-shadow: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.nav-btn .ui-button-text, .ui-button.nav-btn .ui-button-text {
	display: none !important;
}

.nav-btn .ui-icon, .ui-button.nav-btn .ui-icon, .nav-btn .pi, .ui-button.nav-btn .pi
	{
	margin: 0 !important;
	color: var(--bm-muted) !important;
	position: static !important;
	transform: none !important;
}

.nav-btn:hover, .ui-button.nav-btn:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	transform: none !important;
}

.nav-btn:hover .ui-icon, .ui-button.nav-btn:hover .ui-icon, .nav-btn:hover .pi,
	.ui-button.nav-btn:hover .pi {
	color: var(--bm-primary) !important;
}

.nav-btn.ui-state-disabled, .ui-button.nav-btn.ui-state-disabled {
	opacity: 0.35 !important;
	background: transparent !important;
}

/* =========================
   EXPORTAÇÃO LISTAGENS
========================= */
.bm-filter-card {
	grid-template-columns: minmax(280px, 1fr) auto auto auto !important;
}

.export-menu-button, .ui-menubutton.export-menu-button, body .ui-menubutton.export-menu-button
	{
	height: 52px !important;
}

.ui-menubutton.export-menu-button .ui-button, body .ui-menubutton.export-menu-button .ui-button
	{
	height: 52px !important;
	border-radius: 14px !important;
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	font-weight: 800 !important;
}

.ui-menubutton.export-menu-button .ui-button .ui-button-text,
	.ui-menubutton.export-menu-button .ui-button .ui-icon {
	color: var(--bm-text) !important;
}

.ui-menubutton.export-menu-button .ui-button:hover, body .ui-menubutton.export-menu-button .ui-button:hover
	{
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	border-color: var(--bm-primary-light) !important;
	transform: translateY(-1px);
}

.ui-menubutton.export-menu-button .ui-button:hover .ui-button-text,
	.ui-menubutton.export-menu-button .ui-button:hover .ui-icon {
	color: var(--bm-primary) !important;
}

.theme-dark .ui-menubutton.export-menu-button .ui-button {
	background: #0f172a !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
}

.theme-dark .ui-menubutton.export-menu-button .ui-button .ui-button-text,
	.theme-dark .ui-menubutton.export-menu-button .ui-button .ui-icon {
	color: #f8fafc !important;
}

.theme-dark .ui-menubutton.export-menu-button .ui-button:hover {
	background: rgba(79, 107, 255, 0.18) !important;
	color: #ffffff !important;
	border-color: rgba(79, 107, 255, 0.28) !important;
}

@media ( max-width : 1100px) { /* breakpoint canônico: era 1180px */
	.bm-filter-card {
		grid-template-columns: 1fr 1fr !important;
	}
}

@media ( max-width : 768px) {
	.bm-filter-card {
		grid-template-columns: 1fr !important;
	}
	.bm-filter-card .ui-button, .bm-filter-card .ui-menubutton,
		.bm-filter-card .ui-menubutton .ui-button {
		width: 100% !important;
	}
}

.table-footer-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
}

.table-footer-total {
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 800;
}

.ui-datatable .ui-datatable-footer {
	background: var(--bm-surface-soft) !important;
	border-color: var(--bm-border) !important;
	color: var(--bm-text) !important;
	padding: 16px 20px !important;
	text-align: left !important;
}

.export-menu-button, .ui-menubutton.export-menu-button {
	min-width: 140px !important;
}

.ui-menubutton.export-menu-button .ui-button {
	height: 42px !important;
	border-radius: 14px !important;
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	font-weight: 800 !important;
}

.ui-menubutton.export-menu-button .ui-button:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	border-color: var(--bm-primary-light) !important;
	transform: none !important;
}

.ui-menubutton.export-menu-button .ui-button:hover .ui-button-text,
	.ui-menubutton.export-menu-button .ui-button:hover .ui-icon {
	color: var(--bm-primary) !important;
}

.theme-dark .ui-menubutton.export-menu-button .ui-button {
	background: #0f172a !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
}

.theme-dark .ui-menubutton.export-menu-button .ui-button:hover {
	background: rgba(79, 107, 255, 0.18) !important;
	color: #ffffff !important;
	border-color: rgba(79, 107, 255, 0.28) !important;
}

/* =========================
   PAGINAÇÃO ESTILO GMAIL
========================= */
.ui-datatable .ui-paginator {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 8px !important;
	background: var(--bm-surface) !important;
	border-color: var(--bm-border) !important;
	padding: 14px 18px !important;
}

.ui-paginator .ui-paginator-current {
	color: var(--bm-muted) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	margin-right: 8px !important;
}

.ui-paginator .ui-paginator-prev, .ui-paginator .ui-paginator-next {
	width: 34px !important;
	height: 34px !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--bm-muted) !important;
	border: none !important;
}

.ui-paginator .ui-paginator-prev:hover, .ui-paginator .ui-paginator-next:hover
	{
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

/* =========================
   PAGINAÇÃO + EXPORTAR NA MESMA LINHA
========================= */
.ui-datatable .ui-paginator {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 10px !important;
	background: var(--bm-surface) !important;
	border-color: var(--bm-border) !important;
	padding: 14px 18px !important;
	min-height: 68px !important;
}

.ui-datatable .ui-paginator-left-content {
	margin-right: auto !important;
}

.ui-datatable .ui-paginator-right-content {
	display: flex !important;
	align-items: center !important;
	margin-left: 18px !important;
}

.ui-paginator .ui-paginator-current {
	color: var(--bm-muted) !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	margin-right: 8px !important;
}

.ui-paginator .ui-paginator-prev, .ui-paginator .ui-paginator-next {
	width: 34px !important;
	height: 34px !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--bm-muted) !important;
	border: none !important;
	box-shadow: none !important;
}

.ui-paginator .ui-paginator-prev:hover, .ui-paginator .ui-paginator-next:hover
	{
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
}

/* Exportar dentro do paginador */
.ui-paginator .export-menu-button, .ui-paginator .ui-menubutton.export-menu-button
	{
	margin-left: 8px !important;
}

.ui-paginator .ui-menubutton.export-menu-button .ui-button {
	height: 42px !important;
	min-width: 140px !important;
	border-radius: 14px !important;
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	font-weight: 800 !important;
}

.ui-paginator .ui-menubutton.export-menu-button .ui-button:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	border-color: var(--bm-primary-light) !important;
	transform: none !important;
}

.ui-paginator .ui-menubutton.export-menu-button .ui-button:hover .ui-button-text,
	.ui-paginator .ui-menubutton.export-menu-button .ui-button:hover .ui-icon
	{
	color: var(--bm-primary) !important;
}

/* Dark */
.theme-dark .ui-datatable .ui-paginator {
	background: #0f172a !important;
	border-color: #1e293b !important;
}

.theme-dark .ui-paginator .ui-menubutton.export-menu-button .ui-button {
	background: #111827 !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
}

.theme-dark .ui-paginator .ui-menubutton.export-menu-button .ui-button:hover
	{
	background: rgba(79, 107, 255, 0.18) !important;
	color: #ffffff !important;
	border-color: rgba(79, 107, 255, 0.28) !important;
}

/* =========================
   FIX EXPORT BUTTON NO PAGINATOR
========================= */
.ui-paginator .ui-menubutton.export-menu-button, .ui-paginator .export-menu-button
	{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 42px !important;
	margin: 0 0 0 10px !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
}

.ui-paginator .ui-menubutton.export-menu-button>.ui-button,
	.ui-paginator .export-menu-button>.ui-button, .ui-paginator .ui-menubutton.export-menu-button .ui-button
	{
	height: 42px !important;
	min-width: 140px !important;
	margin: 0 !important;
	padding: 0 18px !important;
	border-radius: 14px !important;
	background: var(--bm-surface) !important;
	color: var(--bm-text) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	outline: none !important;
}

.ui-paginator .ui-menubutton.export-menu-button .ui-button-text,
	.ui-paginator .ui-menubutton.export-menu-button .ui-icon, .ui-paginator .export-menu-button .ui-button-text,
	.ui-paginator .export-menu-button .ui-icon {
	color: var(--bm-text) !important;
}

.ui-paginator .ui-menubutton.export-menu-button:hover, .ui-paginator .export-menu-button:hover
	{
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

.ui-paginator .ui-menubutton.export-menu-button>.ui-button:hover,
	.ui-paginator .export-menu-button>.ui-button:hover, .ui-paginator .ui-menubutton.export-menu-button .ui-button:hover
	{
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	border-color: var(--bm-primary-light) !important;
	box-shadow: none !important;
	transform: none !important;
}

.ui-paginator .ui-menubutton.export-menu-button>.ui-button:hover .ui-button-text,
	.ui-paginator .ui-menubutton.export-menu-button>.ui-button:hover .ui-icon,
	.ui-paginator .export-menu-button>.ui-button:hover .ui-button-text,
	.ui-paginator .export-menu-button>.ui-button:hover .ui-icon {
	color: var(--bm-primary) !important;
}

/* Dark */
.theme-dark .ui-paginator .ui-menubutton.export-menu-button>.ui-button,
	.theme-dark .ui-paginator .export-menu-button>.ui-button, .theme-dark .ui-paginator .ui-menubutton.export-menu-button .ui-button
	{
	background: #111827 !important;
	color: #f8fafc !important;
	border-color: #263449 !important;
	box-shadow: none !important;
}

.theme-dark .ui-paginator .ui-menubutton.export-menu-button .ui-button-text,
	.theme-dark .ui-paginator .ui-menubutton.export-menu-button .ui-icon {
	color: #f8fafc !important;
}

.sidebar-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.tenant-logo {
	max-width: 148px;
	max-height: 44px;
	object-fit: contain;
}

.tenant-logo-fallback { color: var(--bm-text); font-size: 14px; font-weight: 900; max-width: 150px;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.sidebar-collapsed .tenant-logo-fallback { display: none !important; }
/* Tenka reduzido na moldura: assinatura da sidebar oculta (fica só a discreta do rodapé "por BMCode") */
.sidebar-tenka-sig { display: none !important; }

.tenant-fallback {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-weight: 900;
}

.tenant-info {
	min-width: 0;
}

.tenant-info strong {
	display: block;
	max-width: 150px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
}

.tenant-info span {
	display: block;
	margin-top: 3px;
	color: var(--bm-muted);
	font-size: 12px;
}

.platform-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 14px;
	color: var(--bm-muted);
	font-size: 11px;
	font-weight: 700;
}

.platform-logo {
	max-width: 72px;
	max-height: 24px;
	object-fit: contain;
	opacity: 0.72;
}

.platform-copy {
	margin-top: 8px;
	text-align: center;
	color: var(--bm-muted);
	font-size: 11px;
}

/* =========================
   EMPRESA - IDENTIDADE VISUAL
========================= */
.brand-preview-card {
	margin-top: 22px;
	padding: 22px;
	border-radius: 20px;
	background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border);
}

.brand-preview-title {
	margin-bottom: 16px;
	color: var(--bm-muted);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.brand-preview-content {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	border-radius: 18px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
}

.brand-preview-logo {
	max-width: 160px;
	max-height: 48px;
	object-fit: contain;
}

.brand-preview-fallback {
	width: 46px;
	height: 46px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-weight: 900;
	font-size: 18px;
}

.brand-preview-content strong {
	display: block;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
}

.brand-preview-content span {
	display: block;
	margin-top: 3px;
	color: var(--bm-muted);
	font-size: 12px;
}

/* =========================
   SIDEBAR TENANT BRAND
========================= */
.sidebar-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.tenant-logo {
	max-width: 150px;
	max-height: 46px;
	object-fit: contain;
}

.tenant-fallback {
	width: 42px;
	height: 42px;
	min-width: 42px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-weight: 900;
	font-size: 17px;
}

.tenant-info {
	min-width: 0;
}

.tenant-info strong {
	display: block;
	max-width: 135px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
}

.tenant-info span {
	display: block;
	margin-top: 3px;
	color: var(--bm-muted);
	font-size: 12px;
}

.sidebar-collapsed .tenant-logo, .sidebar-collapsed .tenant-info {
	display: none !important;
}

.platform-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 14px;
	color: var(--bm-muted);
	font-size: 11px;
	font-weight: 700;
}

.platform-logo {
	max-width: 72px;
	max-height: 24px;
	object-fit: contain;
	opacity: 0.72;
}

.platform-copy {
	margin-top: 8px;
	text-align: center;
	color: var(--bm-muted);
	font-size: 11px;
}

.sidebar-collapsed .platform-brand, .sidebar-collapsed .platform-copy {
	display: none !important;
}

/* =========================
   MENU RECOLHIDO - DEFINITIVO VIA BODY CLASS
========================= */
.menu-toggle-check {
	display: none !important;
}

/* anula a lógica antiga por checkbox */
.menu-toggle-check:checked ~ .layout .sidebar, .menu-toggle-check:checked 
	 ~ .layout .sidebar-header, .menu-toggle-check:checked ~ .layout .sidebar-scroll,
	.menu-toggle-check:checked ~ .layout .menu-link {
	all: unset;
}

/* sidebar recolhida */
body.sidebar-collapsed .sidebar {
	width: var(--sidebar-collapsed-width) !important;
	min-width: var(--sidebar-collapsed-width) !important;
	max-width: var(--sidebar-collapsed-width) !important;
	overflow: hidden !important;
}

/* header recolhido */
body.sidebar-collapsed .sidebar-header {
	width: var(--sidebar-collapsed-width) !important;
	padding: 18px 0 !important;
	justify-content: center !important;
}

/* esconde identidade da empresa */
body.sidebar-collapsed .tenant-logo, body.sidebar-collapsed .tenant-info,
	body.sidebar-collapsed .tenant-fallback {
	display: none !important;
}

/* gira o botão */
body.sidebar-collapsed .menu-toggle-btn i {
	transform: rotate(180deg);
}

/* scroll/menu recolhido */
body.sidebar-collapsed .sidebar-scroll {
	padding: 14px 8px !important;
}

/* esconde nomes dos módulos */
body.sidebar-collapsed .sidebar-section-title {
	display: none !important;
}

/* reduz espaçamento entre seções */
body.sidebar-collapsed .sidebar-section {
	margin-bottom: 6px !important;
}

/* item do menu apenas com ícone */
body.sidebar-collapsed .menu-link {
	width: 48px !important;
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 !important;
	margin: 2px auto !important;
	justify-content: center !important;
	gap: 0 !important;
}

/* esconde texto das telas */
body.sidebar-collapsed .menu-link .menu-text {
	display: none !important;
}

/* centraliza ícone */
body.sidebar-collapsed .menu-link i {
	width: auto !important;
	margin: 0 !important;
	font-size: 16px !important;
}

/* rodapé recolhido */
body.sidebar-collapsed .sidebar-user-info, body.sidebar-collapsed .sidebar-user-menu,
	body.sidebar-collapsed .platform-brand, body.sidebar-collapsed .platform-copy
	{
	display: none !important;
}

body.sidebar-collapsed .sidebar-user-card {
	grid-template-columns: 1fr !important;
	padding: 8px !important;
	justify-items: center !important;
}

/* mantém conteúdo expandido corretamente */
body.sidebar-collapsed .content {
	min-width: 0 !important;
}

body.sidebar-collapsed .menu-link {
	cursor: pointer !important;
}

body.sidebar-collapsed .menu-link:hover {
	background: color-mix(in srgb, var(--bm-action) 10%, transparent) !important;
	color: var(--bm-action) !important;
}

/* =========================
   IDENTIDADE VISUAL - EMPRESA
========================= */
.identity-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-bottom: 24px;
}

.identity-upload-card {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: 20px;
	padding: 20px;
	box-shadow: var(--shadow-soft);
	min-width: 0;
}

.identity-upload-info {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-bottom: 18px;
}

.identity-upload-icon {
	width: 44px;
	height: 44px;
	min-width: 44px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-size: 18px;
}

.identity-upload-info strong {
	display: block;
	color: var(--bm-text);
	font-size: 15px;
	font-weight: 900;
	margin-bottom: 4px;
}

.identity-upload-info span {
	display: block;
	color: var(--bm-muted);
	font-size: 13px;
	line-height: 1.35;
}

.identity-upload-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
}

/* PrimeFaces simple upload */
.file-upload-modern, .file-upload-modern .ui-fileupload,
	.file-upload-modern .ui-fileupload-buttonbar, .file-upload-modern .ui-fileupload-content
	{
	width: 100% !important;
}

.file-upload-modern .ui-button, .file-upload-modern.ui-fileupload .ui-button,
	.file-upload-modern .ui-fileupload-choose {
	width: 100% !important;
	height: 46px !important;
	border-radius: 14px !important;
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	border: 1px solid var(--bm-border) !important;
	box-shadow: none !important;
	font-weight: 800 !important;
}

.file-upload-modern .ui-button:hover, .file-upload-modern.ui-fileupload .ui-button:hover,
	.file-upload-modern .ui-fileupload-choose:hover {
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	filter: brightness(0.98);
	transform: none !important;
}

.file-upload-modern .ui-button-text, .file-upload-modern .ui-icon {
	color: var(--bm-primary) !important;
}

.upload-action-btn, .ui-button.upload-action-btn {
	height: 46px !important;
	min-width: 110px !important;
	padding: 0 18px !important;
}

.identity-current-file {
	margin-top: 12px;
	padding: 9px 12px;
	border-radius: 12px;
	background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border);
	color: var(--bm-muted);
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.identity-color-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 48px;
	align-items: center;
	gap: 12px;
}

.identity-color-input {
	width: 100% !important;
}

.identity-color-preview {
	width: 48px;
	height: 44px;
	border-radius: 14px;
	border: 1px solid var(--bm-border);
	box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.32);
}

/* Preview */
.brand-preview-card {
	margin-top: 22px;
	padding: 22px;
	border-radius: 20px;
	background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border);
}

.brand-preview-title {
	margin-bottom: 16px;
	color: var(--bm-muted);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.brand-preview-content {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	border-radius: 18px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
}

.brand-preview-logo {
	max-width: 160px;
	max-height: 48px;
	object-fit: contain;
}

.brand-preview-fallback {
	width: 46px;
	height: 46px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-weight: 900;
	font-size: 18px;
}

.brand-preview-content strong {
	display: block;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
}

.brand-preview-content span {
	display: block;
	margin-top: 3px;
	color: var(--bm-muted);
	font-size: 12px;
}

/* Dark mode */
.theme-dark .identity-upload-card, .theme-dark .brand-preview-content {
	background: var(--bm-surface) !important;
	border-color: var(--bm-border) !important;
}

.theme-dark .brand-preview-card, .theme-dark .identity-current-file {
	background: var(--bm-surface-soft) !important;
	border-color: var(--bm-border) !important;
}

.theme-dark .file-upload-modern .ui-button, .theme-dark .file-upload-modern.ui-fileupload .ui-button,
	.theme-dark .file-upload-modern .ui-fileupload-choose {
	background: rgba(79, 107, 255, 0.16) !important;
	color: #dbe4ff !important;
	border-color: rgba(79, 107, 255, 0.24) !important;
}

.theme-dark .file-upload-modern .ui-button-text, .theme-dark .file-upload-modern .ui-icon
	{
	color: #dbe4ff !important;
}

@media ( max-width : 900px) {
	.identity-grid {
		grid-template-columns: 1fr;
	}
	.identity-upload-actions {
		grid-template-columns: 1fr;
	}
	.upload-action-btn, .ui-button.upload-action-btn {
		width: 100% !important;
	}
}

.brand-preview-logo {
	max-width: 220px !important;
	max-height: 64px !important;
	object-fit: contain;
}

.tenant-logo {
	max-width: 180px !important;
	max-height: 54px !important;
	object-fit: contain;
}

.brand-preview-content {
	min-height: 78px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 14px 22px;
	border-radius: 18px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
}

/* =========================
   SIDEBAR LOGO / ICONE POR ESTADO
========================= */
.tenant-icon-collapsed, .tenant-icon-fallback-collapsed {
	display: none !important;
}

.tenant-logo-expanded {
	display: block !important;
}

body.sidebar-collapsed .tenant-logo-expanded, body.sidebar-collapsed .tenant-info
	{
	display: none !important;
}

body.sidebar-collapsed .tenant-icon-collapsed {
	display: block !important;
	width: 42px !important;
	height: 42px !important;
	object-fit: contain !important;
	border-radius: 12px !important;
}

body.sidebar-collapsed .tenant-icon-fallback-collapsed {
	width: 42px !important;
	height: 42px !important;
	min-width: 42px !important;
	border-radius: 14px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	font-weight: 900 !important;
	font-size: 17px !important;
}

body.sidebar-collapsed .sidebar-brand {
	justify-content: center !important;
	width: 100% !important;
}

body.sidebar-collapsed .sidebar-header {
	justify-content: center !important;
	gap: 0 !important;
}

/* =========================
   PREVIEW IDENTIDADE - 3 ASSETS
========================= */
.brand-preview-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.brand-preview-item {
	min-width: 0;
}

.brand-preview-item>span {
	display: block;
	margin-bottom: 8px;
	color: var(--bm-muted);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.brand-preview-box {
	height: 96px;
	border-radius: 18px;
	border: 1px solid var(--bm-border);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	overflow: hidden;
}

.brand-preview-box-light {
	background: #ffffff;
}

.brand-preview-box-dark {
	background: #071024;
}

.brand-preview-box-icon {
	background: var(--bm-surface);
}

.brand-preview-logo {
	max-width: 220px !important;
	max-height: 62px !important;
	object-fit: contain !important;
}

.brand-preview-icon {
	width: 58px !important;
	height: 58px !important;
	object-fit: contain !important;
	border-radius: 14px !important;
}

.theme-dark .brand-preview-box-icon {
	background: #111827;
}

@media ( max-width : 900px) {
	.brand-preview-grid {
		grid-template-columns: 1fr;
	}
}

/* =========================
   MENU RECOLHIDO - ÍCONE NO TOPO
========================= */
body.sidebar-collapsed .sidebar-header {
	height: 96px !important;
	padding: 12px 0 10px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
}

body.sidebar-collapsed .sidebar-brand {
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
}

body.sidebar-collapsed .tenant-logo-expanded, body.sidebar-collapsed .tenant-logo,
	body.sidebar-collapsed .tenant-info, body.sidebar-collapsed .tenant-fallback
	{
	display: none !important;
}

body.sidebar-collapsed .tenant-icon-collapsed {
	display: block !important;
	width: 34px !important;
	height: 34px !important;
	max-width: 34px !important;
	max-height: 34px !important;
	object-fit: contain !important;
	border-radius: 10px !important;
}

body.sidebar-collapsed .tenant-icon-fallback-collapsed {
	display: flex !important;
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	border-radius: 10px !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--bm-primary-light) !important;
	color: var(--bm-primary) !important;
	font-size: 15px !important;
	font-weight: 900 !important;
}

body.sidebar-collapsed .menu-toggle-btn {
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	margin: 0 !important;
}

body.sidebar-collapsed .menu-toggle-btn i {
	transform: rotate(180deg) !important;
}

body.sidebar-collapsed .sidebar-scroll {
	height: calc(100vh - 96px) !important;
	padding-top: 14px !important;
}

.password-panel {
	display: grid;
	gap: 18px;
}

.password-card {
	display: grid;
	grid-template-columns: 52px 1fr auto;
	align-items: center;
	gap: 16px;
	padding: 20px;
	border-radius: 20px;
	background: var(--bm-surface-soft);
	border: 1px solid var(--bm-border);
}

.password-card-icon {
	width: 52px;
	height: 52px;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-primary-light);
	color: var(--bm-primary);
	font-size: 22px;
}

.password-card-content strong {
	display: block;
	color: var(--bm-text);
	font-size: 16px;
	font-weight: 900;
	margin-bottom: 5px;
}

.password-card-content span {
	display: block;
	color: var(--bm-muted);
	font-size: 13px;
	line-height: 1.45;
}

.password-status-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.password-status-item {
	padding: 16px;
	border-radius: 16px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
}

.password-status-item span {
	display: block;
	color: var(--bm-muted);
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 6px;
}

.password-status-item strong {
	display: block;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
}

@media ( max-width : 900px) {
	.password-card {
		grid-template-columns: 1fr;
	}
	.password-status-grid {
		grid-template-columns: 1fr;
	}
}

/* =========================
   LISTAGEM PERFIL
========================= */
.bm-profile-cell {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.bm-profile-info {
	min-width: 0;
}

.bm-profile-info strong {
	display: block;
	color: var(--bm-text);
	font-size: 14px;
	font-weight: 900;
	line-height: 1.25;
	margin-bottom: 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bm-profile-info span {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--bm-muted);
	font-size: 13px;
	line-height: 1.35;
	max-width: 780px;
}

.perfil-table .ui-datatable-data>tr>td {
	vertical-align: middle !important;
}

.remember-me {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 4px 0 18px;
	color: var(--bm-muted);
	font-size: 13px;
	font-weight: 700;
}

.remember-me .ui-chkbox {
	margin: 0 !important;
}

.remember-me label, .remember-me .ui-outputlabel {
	cursor: pointer;
	color: var(--bm-muted);
	font-size: 13px;
	font-weight: 700;
}

.bm-loading-box {
	min-width: 280px;
	padding: 26px 32px;
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 22px 60px rgba(15, 23, 42, .22);
	text-align: center;
	border: 1px solid rgba(226, 232, 240, .9);
}

.bm-loading-icon {
	font-size: 34px;
	color: #2B2F6E;
	margin-bottom: 14px;
	display: block;
}

.bm-loading-title {
	font-size: 16px;
	font-weight: 700;
	color: #172554;
	margin-bottom: 6px;
}

.bm-loading-subtitle {
	font-size: 13px;
	color: #64748b;
	line-height: 1.4;
}

.ui-blockui {
	background: rgba(15, 23, 42, .22) !important;
	backdrop-filter: blur(2px);
}

/* ===============================
   BMCode - Loading / Block UI
   =============================== */
.ui-blockui {
	/* fixa o overlay no viewport: em telas altas o dim não some no fim da página */
	position: fixed !important;
	inset: 0 !important;
	width: auto !important;
	height: auto !important;
	background: rgba(15, 23, 42, 0.28) !important;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	/* acima de dialogs/sidebars (baseZIndex 9000, que o PrimeFaces ainda incrementa) —
	   senão o "carregando" fica ATRÁS do popup de importação. */
	z-index: 100000 !important;
}

.ui-blockui-content {
	/* o cartão "Processando" fica SEMPRE centralizado na tela do usuário,
	   independente do scroll/altura do form (sobrepõe o posicionamento inline do PrimeFaces) */
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	right: auto !important;
	bottom: auto !important;
	transform: translate(-50%, -50%) !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	z-index: 100001 !important;
}

.bm-loading-card {
	min-width: 340px;
	max-width: 420px;
	padding: 28px 32px;
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.96),
		rgba(248, 250, 252, 0.96));
	box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28), 0 0 0 1px
		rgba(226, 232, 240, 0.9);
	display: flex;
	align-items: center;
	gap: 20px;
	animation: bmLoadingEnter 0.22s ease-out;
}

/* Loader da marca (Tenka): anel girando com as cores da marca + o símbolo "T" estático no centro.
   Rebrandar aqui propaga p/ TODO carregando — login "Autenticando", salvar/buscar/navegar (blockUI
   global do p:ajaxStatus) e blockUI de telas. Só CSS; markup <div class="bm-loading-spinner"><span/></div>. */
.bm-loading-spinner {
	position: relative;
	width: 56px;
	height: 56px;
	min-width: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	box-shadow: none;
}
/* anel girando (cores da marca) */
.bm-loading-spinner::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: conic-gradient(from 0deg, #4650D4, #8A91E8, #eef2ff, #4650D4);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 5px));
	        mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 5px));
	animation: bmSpin 0.9s linear infinite;
}
/* símbolo "T" da Tenka, estático no centro (pulsa suave) */
.bm-loading-spinner::after {
	content: "";
	position: absolute;
	width: 24px;
	height: 32px;
	background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 130'><path d='M10 14 H86 M10 14 V30 M86 14 V30' fill='none' stroke='%234650D4' stroke-width='11' stroke-linecap='round'/><rect x='36' y='42' width='24' height='24' rx='6' fill='%234650D4'/><rect x='36' y='72' width='24' height='24' rx='6' fill='%238A91E8'/><rect x='36' y='102' width='24' height='24' rx='6' fill='%236D7076'/></svg>") center / contain no-repeat;
	animation: bmTenkaPulse 1.1s ease-in-out infinite;
}
/* o antigo miolo branco (span) não é mais usado no visual novo */
.bm-loading-spinner span { display: none; }
@keyframes bmTenkaPulse { 0%, 100% { opacity: .85; transform: scale(.94); } 50% { opacity: 1; transform: scale(1); } }

/* iconezinho de loading do PrimeFaces (estado de ajax em botões etc.) → símbolo "T" da Tenka pulsando,
   no lugar do círculo/spinner genérico. Onde o PF não usa .ui-icon-loading, o loader-card (branded) cobre. */
.ui-icon-loading {
	background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 130'><path d='M10 14 H86 M10 14 V30 M86 14 V30' fill='none' stroke='%234650D4' stroke-width='12' stroke-linecap='round'/><rect x='36' y='42' width='24' height='24' rx='6' fill='%234650D4'/><rect x='36' y='72' width='24' height='24' rx='6' fill='%238A91E8'/><rect x='36' y='102' width='24' height='24' rx='6' fill='%236D7076'/></svg>") center / contain no-repeat !important;
	animation: bmTenkaPulse 1s ease-in-out infinite;
}
.ui-icon-loading::before { content: "" !important; }

.bm-loading-content {
	text-align: left;
}

.bm-loading-title {
	font-size: 16px;
	font-weight: 800;
	color: #172554;
	margin-bottom: 6px;
	letter-spacing: -0.01em;
}

.bm-loading-text {
	font-size: 13px;
	color: #64748b;
	line-height: 1.45;
	max-width: 280px;
}

@keyframes bmSpin {from { transform:rotate(0deg);
	
}

to {
	transform: rotate(360deg);
}

}
@keyframes bmLoadingEnter {from { opacity:0;
	transform: translateY(8px) scale(0.98);
}

to {
	opacity: 1;
	transform: translateY(0) scale(1);
}
}

.empresa-logo-preview {
    max-width: 220px;
    max-height: 90px;
    object-fit: contain;
    padding: 10px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
}

.empresa-icone-preview {
    width: 56px;
    height: 56px;
    object-fit: contain;
    padding: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #ffffff;
}

.page-actions-card {
	background: var(--bm-card);
	border: 1px solid var(--bm-border);
	border-radius: 18px;
	padding: 18px;
	margin-bottom: 16px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	box-shadow: 0 10px 30px rgba(15, 23, 42, .04);
}

.page-actions-left {
	flex: 1;
	min-width: 260px;
}

.page-actions-right {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.filter-field label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: #64748b;
	margin-bottom: 6px;
}

.filter-field input {
	width: 100%;
}

.table-actions {
	display: flex;
	gap: 8px;
	justify-content: center;
	align-items: center;
}

.table-main-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.table-main-text strong {
	color: #0f172a;
	font-size: 14px;
}

.table-main-text span {
	color: #64748b;
	font-size: 12px;
}

.empresa-list-logo {
	max-width: 58px;
	max-height: 34px;
	object-fit: contain;
	border-radius: 8px;
	background: #fff;
	padding: 4px;
	border: 1px solid #e5e7eb;
}

.empresa-list-logo-fallback {
	width: 38px;
	height: 38px;
	border-radius: 12px;
	background: #2B2F6E;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
}

.status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 5px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
}

.status-active {
	background: #dcfce7;
	color: #166534;
}

.status-inactive {
	background: #fee2e2;
	color: #991b1b;
}

.table-footer-total {
	text-align: right;
	font-weight: 700;
	color: #475569;
}

