/* ============================================================================
   MODULO 07/8 - app/07-template-crud.css (ex-app.css linhas 13280-15273). Chat view, command palette, template CRUD (form/lista/peek/dicionario), tiers UX, casca refinada, rodape, MFA. A ORDEM DE INCLUSAO 01->08 E CRITICA - nao reordenar.
   ============================================================================ */
/* =========================
   Chat view styles
   (conversa-view.xhtml)
========================= */
.chat-msg-container {
	max-height: 400px;
	overflow-y: auto;
}

.chat-msg-row {
	display: flex;
	margin-bottom: 10px;
}
.chat-msg-row-end {
	justify-content: flex-end;
}

.chat-msg-bubble {
	max-width: 70%;
	padding: 10px 14px;
	border-radius: 14px;
	font-size: 13px;
}
.chat-msg-bubble-cliente {
	background: #eef2ff;
	color: #1e293b;
	border-bottom-left-radius: 4px;
}
.chat-msg-bubble-operador {
	background: #4650D4;
	color: #fff;
	border-bottom-right-radius: 4px;
}

.chat-msg-time {
	font-size: 10px;
	margin-top: 4px;
	opacity: .6;
}

.chat-empty {
	text-align: center;
	color: #94a3b8;
	padding: 20px;
	font-size: 13px;
}

.chat-input-bar {
	padding: 12px 16px;
	border-top: 1px solid #e2e8f0;
}

.chat-input-form {
	display: flex;
	gap: 8px;
}

.chat-input-textarea {
	flex: 1;
	border: 1.5px solid #e2e8f0;
	border-radius: 10px;
	padding: 10px;
	font-size: 13px;
	outline: none;
	font-family: inherit;
	resize: none;
}

.chat-input-btn {
	align-self: flex-end;
	border: none;
	cursor: pointer;
}

.chat-back-link {
	display: inline-flex;
}

/* ===================== Command Palette (Ctrl+K) ===================== */
.bm-cmdk-data { display: none !important; }

/* trigger no topbar */
.topbar-cmdk-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 34px;
	padding: 0 10px 0 12px;
	border: 1px solid var(--bm-border, #e2e8f0);
	border-radius: 8px;
	background: var(--bm-surface, #fff);
	color: var(--bm-muted, #64748b);
	cursor: pointer;
	font-size: 13px;
	transition: border-color .15s, background .15s, color .15s;
}
.topbar-cmdk-btn:hover {
	border-color: var(--bm-blue, #4650D4);
	color: var(--bm-text, #1e293b);
}
.topbar-cmdk-btn .pi { font-size: 14px; }
.topbar-cmdk-label { font-weight: 500; }
.topbar-cmdk-kbd {
	font-size: 11px;
	font-weight: 600;
	padding: 2px 6px;
	border-radius: 5px;
	background: var(--bm-bg, #f1f5f9);
	border: 1px solid var(--bm-border, #e2e8f0);
	color: var(--bm-muted, #64748b);
	letter-spacing: .03em;
}
@media (max-width: 900px) {
	.topbar-cmdk-label, .topbar-cmdk-kbd { display: none; }
	.topbar-cmdk-btn { padding: 0 10px; }
}

/* overlay */
.bm-cmdk {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
}
.bm-cmdk.bm-cmdk-open { display: block; }
.bm-cmdk-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, .45);
	backdrop-filter: blur(2px);
}
.theme-dark .bm-cmdk-backdrop { background: rgba(2, 6, 23, .6); }
.bm-cmdk-box {
	position: relative;
	max-width: 600px;
	margin: 11vh auto 0;
	background: var(--bm-surface, #fff);
	border: 1px solid var(--bm-border, #e2e8f0);
	border-radius: 14px;
	box-shadow: 0 20px 60px rgba(2, 6, 23, .35);
	overflow: hidden;
	animation: bmCmdkIn .14s ease-out;
}
@keyframes bmCmdkIn {
	from { opacity: 0; transform: translateY(-8px) scale(.98); }
	to { opacity: 1; transform: none; }
}
.bm-cmdk-input-row {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--bm-border, #e2e8f0);
}
.bm-cmdk-search-ic { font-size: 16px; color: var(--bm-muted, #64748b); }
#bmCmdkInput {
	flex: 1;
	border: none;
	outline: none;
	background: transparent;
	font-size: 16px;
	color: var(--bm-text, #1e293b);
}
.bm-cmdk-kbd {
	font-size: 11px;
	font-weight: 600;
	padding: 2px 7px;
	border-radius: 5px;
	background: var(--bm-bg, #f1f5f9);
	border: 1px solid var(--bm-border, #e2e8f0);
	color: var(--bm-muted, #64748b);
}
.bm-cmdk-list {
	list-style: none;
	margin: 0;
	padding: 6px;
	max-height: 52vh;
	overflow-y: auto;
}
.bm-cmdk-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 9px;
	cursor: pointer;
	color: var(--bm-text, #1e293b);
}
.bm-cmdk-item .pi { font-size: 15px; color: var(--bm-muted, #64748b); width: 18px; text-align: center; }
.bm-cmdk-item-nome { flex: 1; font-size: 14px; }
.bm-cmdk-item-grupo {
	font-size: 11px;
	color: var(--bm-muted, #64748b);
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--bm-bg, #f1f5f9);
}
.bm-cmdk-item.bm-cmdk-active {
	background: var(--bm-blue, #4650D4);
	color: #fff;
}
.bm-cmdk-item.bm-cmdk-active .pi,
.bm-cmdk-item.bm-cmdk-active .bm-cmdk-item-grupo { color: #fff; }
.bm-cmdk-item.bm-cmdk-active .bm-cmdk-item-grupo { background: rgba(255, 255, 255, .22); }
.bm-cmdk-empty {
	padding: 28px 16px;
	text-align: center;
	color: var(--bm-muted, #64748b);
	font-size: 14px;
}
.bm-cmdk-foot {
	display: flex;
	gap: 18px;
	padding: 10px 16px;
	border-top: 1px solid var(--bm-border, #e2e8f0);
	font-size: 12px;
	color: var(--bm-muted, #64748b);
}
.bm-cmdk-foot b {
	display: inline-block;
	min-width: 18px;
	text-align: center;
	padding: 1px 5px;
	border-radius: 4px;
	background: var(--bm-bg, #f1f5f9);
	border: 1px solid var(--bm-border, #e2e8f0);
	font-weight: 600;
	margin-right: 2px;
}

/* ===================== Anotações/comentários do registro ===================== */
.bm-coment-box {
	display: block;
	max-width: 760px;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--bm-border, #e2e8f0);
}
.bm-coment-title {
	font-size: 13px;
	font-weight: 700;
	color: var(--bm-text, #1e293b);
	margin-bottom: 10px;
}
.bm-coment-title .pi { color: var(--bm-muted, #64748b); margin-right: 6px; }
.bm-coment-add { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 14px; }
.bm-coment-add > .ui-button { flex-shrink: 0; align-self: flex-start; }
.bm-coment-input { width: 100%; min-height: 38px; box-sizing: border-box; }
.bm-coment-empty { color: var(--bm-muted, #64748b); font-size: 13px; padding: 6px 0 10px; }
.bm-coment-list { list-style: none; margin: 0; padding: 0; }
.bm-coment-item { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--bm-border, #eee); }
.bm-coment-item:last-child { border-bottom: none; }
.bm-coment-avatar {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--bm-blue, #4650D4);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
}
.bm-coment-body { flex: 1; }
.bm-coment-meta { font-size: 12px; color: var(--bm-muted, #64748b); margin-bottom: 2px; }
.bm-coment-meta strong { color: var(--bm-text, #1e293b); margin-right: 8px; }
.bm-coment-text { font-size: 13.5px; color: var(--bm-text, #1e293b); white-space: pre-wrap; }

/* anexos */
.bm-anexo-box { margin-top: 18px; }
.bm-anexo-upload { margin-bottom: 12px; }
/* "Anexar arquivo" é AÇÃO do registro → cor de ação da marca (não o navy herdado de .ui-button) */
.bm-anexo-upload .ui-fileupload-choose, .bm-anexo-upload .ui-fileupload-buttonbar .ui-button {
	background: var(--bm-action) !important; border-color: var(--bm-action) !important; }
.bm-anexo-upload .ui-fileupload-choose:hover, .bm-anexo-upload .ui-fileupload-buttonbar .ui-button:hover {
	background: var(--bm-action-hover) !important; border-color: var(--bm-action-hover) !important; }
.bm-anexo-list { list-style: none; margin: 0; padding: 0; }
.bm-anexo-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px dashed var(--bm-border, #eee);
}
.bm-anexo-item:last-child { border-bottom: none; }
.bm-anexo-ic { color: var(--bm-muted, #64748b); font-size: 15px; }
.bm-anexo-nome { flex: 1; font-size: 13.5px; color: var(--bm-blue, #4650D4); text-decoration: none; }
.bm-anexo-nome:hover { text-decoration: underline; }
.bm-anexo-meta { font-size: 12px; color: var(--bm-muted, #64748b); }
.bm-anexo-del .ui-button-icon { color: var(--bm-muted, #64748b); }
.bm-anexo-del:hover .ui-button-icon { color: #e5484d; }

/* ===================== Form 2 colunas + trilha de atividade (right rail) ===================== */
/* Form + painel de atividade LADO A LADO (rail à direita). Recolhível pelo botão (bm-rail-hidden);
   quando oculto, o form ocupa 100% (body.bm-rail-hidden mais abaixo). */
.bm-form-2col {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 18px;
	align-items: start;
}
.bm-form-main { min-width: 0; }
.bm-activity-rail {
	display: flex;
	flex-direction: column;
	gap: 14px;
	align-items: stretch;
}
.bm-activity-rail .bm-coment-box {
	margin-top: 0;
	padding: 14px 16px;
	border: 1px solid var(--bm-border, #e2e8f0);
	border-radius: 12px;
	background: var(--bm-surface, #fff);
}
.bm-form-2col.bm-no-rail { grid-template-columns: 1fr; }
@media (max-width: 1100px) {
	.bm-form-2col { grid-template-columns: 1fr; }
}

/* ===================== Ajuda por campo (ⓘ) ===================== */
.bm-label-cell { display: inline-flex; align-items: center; gap: 6px; }
.bm-help { position: relative; display: inline-flex; cursor: help; color: var(--bm-muted, #64748b); }
.bm-help .pi { font-size: 13px; }
.bm-help:hover, .bm-help:focus { color: var(--bm-blue, #4650D4); outline: none; }
.bm-help-pop {
	position: absolute;
	left: calc(100% + 8px);
	top: -2px;
	z-index: 60;
	display: none;
	width: 250px;
	padding: 10px 12px;
	background: var(--bm-text, #1e293b);
	color: #fff;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(2, 6, 23, .32);
	font-size: 12.5px;
	line-height: 1.45;
	white-space: normal;
}
.bm-help:hover .bm-help-pop,
.bm-help:focus .bm-help-pop,
.bm-help:focus-within .bm-help-pop { display: block; }
@media (max-width: 820px) {
	.bm-help-pop { left: auto; right: 0; top: calc(100% + 6px); }
}
.bm-help-desc { display: block; }
.bm-help-ex { display: block; margin-top: 6px; opacity: .85; font-style: italic; }

/* ===================== Guia "Como preencher" + contador de anotação ===================== */
.bm-guia-list { list-style: none; margin: 0; padding: 0; }
.bm-guia-item { padding: 10px 0; border-bottom: 1px dashed var(--bm-border, #eee); }
.bm-guia-item:last-child { border-bottom: none; }
.bm-guia-campo { font-weight: 700; color: var(--bm-text, #1e293b); font-size: 14px; }
.bm-guia-desc { color: var(--bm-text, #334155); font-size: 13px; margin-top: 2px; }
.bm-guia-ex { display: block; color: var(--bm-muted, #64748b); font-size: 12.5px; font-style: italic; margin-top: 3px; }
.bm-coment-input-wrap { flex: 1; min-width: 0; }
.bm-coment-counter { display: block; font-size: 11px; color: var(--bm-muted, #64748b); margin-top: 3px; text-align: right; }

/* ===================== Form dinâmico (render por dicionário) ===================== */
.bm-dyn-grid {
	display: grid !important;
	grid-template-columns: repeat(var(--bm-cols, 1), minmax(0, 1fr));
	gap: 16px 20px;
	max-width: 100%;
}
.bm-dyn-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
/* visibilidade condicional (dicionário v2) — oculta no client sem tirar do DOM */
.bm-dyn-field.bm-dyn-hidden { display: none !important; }
.bm-dyn-label { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--bm-text, #1e293b); }
.bm-dyn-input .ui-inputfield,
.bm-dyn-input .ui-autocomplete,
.bm-dyn-input .ui-selectonemenu { width: 100%; }
/* autocomplete com seta (dropdown): mantém input + botão na MESMA linha */
.bm-dyn-input .ui-autocomplete-dd { display: flex; width: 100%; }
.bm-dyn-input .ui-calendar { display: inline-flex !important; width: 100%; }
.bm-dyn-input .ui-calendar > .ui-inputfield { flex: 1 1 auto; width: 1%; border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.bm-dyn-input .ui-calendar > .ui-datepicker-trigger,
.bm-dyn-input .ui-calendar > .ui-button { flex: 0 0 auto; }
.bm-dyn-input .ui-autocomplete-dd .ui-autocomplete-input { flex: 1 1 auto; width: 1%; }
.bm-dyn-input .ui-autocomplete-dd .ui-autocomplete-dropdown { flex: 0 0 auto; }
.bm-req { color: #e5484d; }
/* subcabeçalho de grupo: ocupa a largura toda do grid, separa blocos de campos */
.bm-dyn-grouphdr {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 6px 0 2px;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--bm-border, #e2e8f0);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--bm-text-soft, #64748b);
}
.bm-dyn-grouphdr:first-child { margin-top: 0; }
/* mensagem de validação por campo (abaixo do widget) */
.bm-field-msg .ui-message,
.bm-field-msg.ui-message { margin-top: 3px; font-size: 12px; background: none; border: none; padding: 0; }
.bm-field-msg .ui-message-error-detail { color: #e5484d; }
@media (max-width: 820px) { .bm-dyn-grid { grid-template-columns: 1fr; } }

/* =====================================================================
   PREMIUM POLISH — template CRUD (form dinâmico + lista). Camada de
   refino visual: foco, transições, seções, badges, hover. Aditivo.
   ===================================================================== */
/* Form: campos com microinteração e foco nítido */
.bm-dyn-field { position: relative; transition: opacity .15s ease; }
.bm-dyn-input .ui-inputfield,
.bm-dyn-input .ui-selectonemenu,
.bm-dyn-input .ui-autocomplete-input,
.bm-dyn-input .ui-inputnumber-input {
	border-radius: 10px !important;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.bm-dyn-input .ui-inputfield:hover,
.bm-dyn-input .ui-selectonemenu:hover { border-color: #c7d2fe !important; }
.bm-dyn-input .ui-inputfield:focus,
.bm-dyn-input .ui-inputtextarea:focus,
.bm-dyn-input .ui-inputnumber-input:focus,
.bm-dyn-input .ui-state-focus {
	border-color: var(--bm-blue, #4650D4) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--bm-blue, #4650D4) 18%, transparent) !important;
	outline: none !important;
}
.bm-dyn-input .ui-inputfield[readonly], .bm-dyn-input .ui-inputfield:disabled { background: #f8fafc !important; color: #64748b !important; }
.bm-dyn-label { letter-spacing: .005em; }
.bm-help i { color: #94a3b8; transition: color .15s ease; cursor: help; }
.bm-help:hover i { color: var(--bm-blue, #4650D4); }
/* Form em SEÇÕES-CARD: cada grupo é um card com seu próprio grid (layout robusto + premium) */
.bm-form-sections { display: flex; flex-direction: column; gap: 16px; max-width: none; }
.bm-form-section {
	background: #fff; border: 1px solid #eef2f7; border-radius: 14px;
	padding: 16px 18px; box-shadow: 0 1px 2px rgba(15,23,42,.03);
}
.bm-form-section-title {
	font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	color: #64748b; margin: 0 0 14px; display: flex; align-items: center; gap: 8px;
}
.bm-form-section-title::before { content: ""; width: 4px; height: 14px; border-radius: 2px; background: var(--bm-blue, #4650D4); }
.bm-form-section .bm-dyn-grid { max-width: 100%; }
/* grid dinâmico: multi-coluna usa 100% da largura (mata o cap de 760px do .bm-tabview,
   com especificidade maior + !important); 1 coluna mantém largura legível. */
.bm-tabview .form-grid-modern.bm-dyn-grid,
.bm-form-section .form-grid-modern.bm-dyn-grid { max-width: none !important; width: 100% !important; }
.bm-tabview .form-grid-modern.bm-dyn-grid.bm-cols-1,
.bm-form-section .form-grid-modern.bm-dyn-grid.bm-cols-1 { max-width: 860px !important; }
.theme-dark .bm-form-section { background: #0f172a; border-color: #1e293b; }

/* Lista: cabeçalho fixo + linhas com hover suave + transição */
.bm-list-table .ui-datatable-thead > tr > th { position: sticky; top: 0; z-index: 2; background: #f8fafc; }
.bm-list-table .ui-datatable-tbody > tr { transition: background .12s ease, box-shadow .12s ease; }
.bm-list-table .ui-datatable-tbody > tr:hover { background: color-mix(in srgb, var(--bm-blue, #4650D4) 6%, #fff) !important; }
.bm-list-table .ui-datatable-tbody > tr > td { border-bottom: 1px solid #f1f5f9; }
/* total do rodapé em destaque */
.bm-col-total { font-weight: 700; color: #0f172a; }
.bm-col-right, .bm-col-right .ui-column-title { text-align: right; }

/* Badges (na lista) — pílulas suaves e modernas */
.bm-datatable .badge {
	display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px;
	border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1.4;
	background: #f1f5f9; color: #475569; border: 1px solid transparent;
}
.bm-datatable .badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .7; }
.bm-datatable .badge-success { background: #e7f7ee; color: #15803d; }
.bm-datatable .badge-danger  { background: #fdecec; color: #b91c1c; }
.bm-datatable .badge-info     { background: #e8f0fe; color: #1d4ed8; }
.bm-datatable .badge-warning  { background: #fef6e7; color: #b45309; }
.bm-datatable .badge-secondary{ background: #f1f5f9; color: #475569; }

/* Toolbar de filtros: chips de filtros ativos */
.bm-filter-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; flex-basis: 100%; width: 100%; }
/* PADRÃO: a faixa de filtros ativos (chips) ocupa uma LINHA PRÓPRIA abaixo da toolbar (não cola no "Mais ações") */
.bm-chips-row { flex-basis: 100%; width: 100%; order: 99; }
.bm-chip {
	display: inline-flex; align-items: center; gap: 5px; padding: 2px 4px 2px 9px;
	background: color-mix(in srgb, var(--bm-blue, #4650D4) 9%, #fff); color: #475569;
	border: 1px solid color-mix(in srgb, var(--bm-blue, #4650D4) 18%, transparent);
	border-radius: 999px; font-size: 11px; font-weight: 600; line-height: 1.4;
}
.bm-chip .bm-chip-x {
	display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px;
	border-radius: 50%; border: none; background: rgba(15,23,42,.06); color: #475569; cursor: pointer; font-size: 9px;
}
.bm-chip .bm-chip-x:hover { background: var(--bm-blue, #4650D4); color: #fff; }

/* Micro-feedback: growl/toast mais discretos e arredondados */
.ui-growl-item { border-radius: 12px !important; box-shadow: 0 8px 24px rgba(15,23,42,.14) !important; }

/* BUG #7 — o toast não pode travar os botões de ação embaixo dele.
   O CONTÊINER do growl (top-right, fixed) fica com pointer-events:none, então a
   área vazia sobre a barra de ações NÃO intercepta cliques; só cada toast
   individual volta a ser clicável (para fechar/interagir). Além disso ele é
   deslocado para ABAIXO do topbar (min-height ~88px + margem) para não cobrir a
   barra de ações principal. */
.ui-growl {
	top: 104px !important;          /* abaixo do topbar sticky (não cobre a barra de ações) */
	z-index: 1090 !important;       /* previsível: acima do conteúdo, abaixo de nada crítico */
	pointer-events: none !important;/* área vazia do contêiner deixa o clique passar */
}
.ui-growl .ui-growl-item-container,
.ui-growl .ui-growl-item {
	pointer-events: auto !important;/* cada toast continua clicável (fechar / ações) */
}

/* Coluna de seleção: checkbox do header (selecionar todos) e das linhas CENTRALIZADOS */
.bm-list-table th.bm-list-checkcol, .bm-list-table td.bm-list-checkcol { text-align: center !important; }
.bm-list-table .bm-list-checkcol .ui-chkbox { display: inline-flex; vertical-align: middle; margin: 0 auto; float: none; }
.bm-list-table .ui-selection-column .ui-chkbox, .bm-list-table .ui-selection-column { text-align: center; }

/* Ações da linha: reveladas no HOVER (limpo) + não invadem a coluna Nº */
.bm-list-table .bm-list-acoes { white-space: nowrap; min-width: 108px; text-align: center; }
.bm-list-table .bm-row-actions { display: inline-flex; gap: 2px; justify-content: center; opacity: 0; transition: opacity .12s ease; }
.bm-list-table .ui-datatable-tbody > tr:hover .bm-row-actions,
.bm-list-table .ui-datatable-tbody > tr.ui-state-highlight .bm-row-actions { opacity: 1; }
.bm-list-table .bm-act-ico.ui-button { width: 30px; height: 30px; padding: 0; }
@media (hover: none) { .bm-list-table .bm-row-actions { opacity: 1; } } /* touch: sempre visível */

/* Diálogo de configuração do campo (⚙): mais largo, legível, sem dados encobertos */
.bm-cat-cfg-dialog.ui-dialog { width: 760px !important; max-width: 96vw !important; }
.bm-cat-cfg-grid { max-height: 66vh; }
.bm-cat-cfg-row > label { white-space: normal; line-height: 1.25; }

/* Densidade tipográfica: textos do conteúdo um pouco menores (mais ar, menos "grandão") */
.content { font-size: 14px; }
.bm-datatable, .bm-datatable td, .bm-datatable th,
.bm-dyn-input .ui-inputfield, .bm-dyn-input .ui-selectonemenu-label { font-size: 13px; }
.bm-dyn-label, .bm-rail-field > label, .bm-peek-item label { font-size: 12px; }
.page-title { font-size: 20px !important; }

/* Barra de progresso fina no topo (feedback AJAX instantâneo, estilo GitHub/YouTube) */
.bm-top-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; z-index: 99999; opacity: 0;
	background: linear-gradient(90deg, var(--bm-primary, #4650D4), #8aa8ff); box-shadow: 0 0 8px rgba(79,107,255,.5); }
.bm-top-progress.on { width: 92%; opacity: 1; transition: width 9s cubic-bezier(.12,.78,.16,1), opacity .2s; }

/* Toolbar do topo em UMA linha. Serve DOIS layouts com a mesma regra:
   - telas COM busca (ex.: ticket-list): a busca cresce e empurra [Exibir filtros] [ações] p/ a direita.
   - telas SEM busca (padrão "agenda": ticket-dashboard, agenda(-equipe), rentabilidade, cockpit-dono):
     [Exibir filtros] fica à esquerda e as ações vão p/ a direita via margin-left:auto; chips caem na 2ª linha.
   Dupla classe .bm-filter-card.bm-list-toolbar (esp. 0,2,0) + !important vence o grid/space-between herdado.
   NÃO duplicar como <style> local nas telas — esta é a fonte única. */
.bm-filter-card.bm-list-toolbar {
	display: flex !important;
	grid-template-columns: none !important;      /* anula o grid herdado */
	align-items: center !important;
	justify-content: flex-start !important;      /* anula o space-between herdado */
	gap: 10px !important;
	flex-wrap: wrap !important;                    /* chips podem cair p/ a 2ª linha (flex:1 0 100% abaixo) */
}
.bm-filter-card.bm-list-toolbar .bm-toolbar-search {
	flex: 1 1 auto !important;
	min-width: 160px !important;
	max-width: none !important;
	margin-bottom: 0 !important;
}
/* Filtros por COLUNA na tabela de lista: removidos — a tela usa só ordenação (setas) + busca/filtros do topo. */
.bm-list-table .ui-column-filter,
.bm-list-table .ui-filter-column .ui-column-customfilter,
.bm-list-table thead .ui-column-filter-menu-button { display: none !important; }
.bm-filter-card.bm-list-toolbar .bm-toolbar-search .input-icon { width: 100% !important; max-width: none !important; }
.bm-filter-card.bm-list-toolbar .bm-toolbar-search .input-icon .ui-inputfield,
.bm-filter-card.bm-list-toolbar .bm-toolbar-search .input-icon input {
	width: 100% !important;
	min-width: 0 !important;                       /* vence o min-width:420px de .bm-filter-card .filter-group input */
	max-width: none !important;
}
/* "Exibir filtros" fica à esquerda; o grupo de ações vai p/ a direita. */
.bm-filter-card.bm-list-toolbar .bm-rail-toggle-btn { flex: 0 0 auto !important; margin: 0 !important; }
/* Grupo de ações: fica à direita, TODOS os botões numa ÚNICA linha (nowrap) — inclusive os EXCLUSIVOS de
   cada tela (ui:insert toolbar-extra / markup próprio dos dashboards). Quem cai p/ a 2ª linha são os CHIPS
   de filtro selecionado (regra .bm-chips-row abaixo: order:99 + flex-basis:100%), não os botões. */
.bm-filter-card.bm-list-toolbar .list-filter-actions {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 8px !important;
	flex: 0 0 auto !important;                     /* largura natural — nunca quebra botão a botão */
	flex-wrap: nowrap !important;                   /* linha 1 = toggle + TODOS os botões */
	margin-left: auto !important;                  /* empurra p/ a direita mesmo SEM busca que cresça (telas agenda) */
	width: auto !important;
}
/* Busca (quando existe) já cresce → o spacer não precisa empurrar */
.bm-filter-card.bm-list-toolbar .bm-toolbar-spacer { display: none !important; flex: 0 0 0 !important; }
/* Chips de filtros aplicados = 2ª linha, ocupam a largura inteira LOGO ABAIXO da toolbar */
.bm-filter-card.bm-list-toolbar .bm-chips-row { flex: 1 0 100% !important; margin-top: 8px !important; }
/* 2ª linha com fonte MENOR que os botões, p/ hierarquia visual (os valores de filtro são secundários) */
.bm-filter-card.bm-list-toolbar .bm-chips-row .bm-chip { font-size: 10px !important; padding: 1px 4px 1px 8px !important; }

/* --- Compactação da toolbar: garante que [Exibir filtros] + TODOS os botões caibam em UMA linha mesmo
   em telas menores (notebook 14" a ~80% de zoom, densidade compacta) e sobre espaço p/ botões exclusivos.
   Reduz gaps, padding, fonte e ícones dos botões — SEM remover rótulos. --- */
.bm-filter-card.bm-list-toolbar { gap: 8px !important; }
.bm-filter-card.bm-list-toolbar .list-filter-actions { gap: 6px !important; }
.bm-filter-card.bm-list-toolbar .list-filter-actions .ui-button,
.bm-filter-card.bm-list-toolbar .bm-rail-toggle-btn {
	padding: 6px 10px !important;
	font-size: .82rem !important;
	line-height: 1.1 !important;
}
.bm-filter-card.bm-list-toolbar .list-filter-actions .ui-button .pi,
.bm-filter-card.bm-list-toolbar .bm-rail-toggle-btn .pi { font-size: .85rem !important; }
/* Passo extra em telas mais estreitas: aperta ainda mais (continua com rótulos) */
@media (max-width: 1366px) {
	.bm-filter-card.bm-list-toolbar { gap: 6px !important; }
	.bm-filter-card.bm-list-toolbar .list-filter-actions { gap: 4px !important; }
	.bm-filter-card.bm-list-toolbar .list-filter-actions .ui-button,
	.bm-filter-card.bm-list-toolbar .bm-rail-toggle-btn { padding: 5px 8px !important; font-size: .78rem !important; }
}

/* Rail de filtros PERSISTENTE (lado a lado com a lista, retrátil) */
.bm-list-shell { display: flex; gap: 16px; align-items: flex-start; }
.bm-filter-rail { flex: 0 0 270px; width: 270px; background: #fff; border: 1px solid #eef2f7; border-radius: 14px; padding: 16px; position: sticky; top: 12px; display: flex; flex-direction: column; max-height: calc(100vh - 210px); }
.bm-list-main { flex: 1 1 auto; min-width: 0; }
/* Coluna principal do shell = banda de cards/KPIs + lista; o rail alinha desde o topo dos cards. */
.bm-list-main-col { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.bm-list-shell.bm-rail-collapsed .bm-filter-rail { display: none; }
.bm-rail-head { display: flex; align-items: center; justify-content: space-between; font-weight: 700; font-size: 13px; color: #334155; margin-bottom: 12px; }
.bm-rail-head span { display: inline-flex; align-items: center; gap: 7px; }
.bm-rail-collapse { background: none; border: none; cursor: pointer; color: #94a3b8; padding: 2px 4px; }
.bm-rail-collapse:hover { color: var(--bm-blue, #4650D4); }
.bm-rail-field { display: flex; flex-direction: column; gap: 3px; margin-bottom: 0; }
.bm-rail-field > label { font-size: 12px; font-weight: 600; color: #475569; }
.bm-rail-fields { display: flex; flex-direction: column; gap: 10px; flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding-right: 6px; }
.bm-rail-fields::-webkit-scrollbar { width: 7px; }
.bm-rail-fields::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 6px; }
.bm-rail-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eef2f7; flex: 0 0 auto; }
.bm-rail-toggle-btn { display: inline-flex; align-items: center; gap: 6px; }
/* Mesma altura dos .ui-button da toolbar (06-dashboard-listas: min-height 44px) — alinha o
   [Exibir filtros] com os demais botões (ex.: Raio-X/rentabilidade) */
.bm-filter-card .bm-rail-toggle-btn {
	min-height: 44px;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.theme-dark .bm-filter-rail { background: #0f172a; border-color: #1e293b; }
@media (max-width: 900px) { .bm-list-shell { flex-direction: column; } .bm-filter-rail { width: 100%; flex-basis: auto; position: static; } }

/* Painel lateral de filtros (retrátil) */
.bm-filtros-sidebar.ui-sidebar { width: 360px; max-width: 92vw; padding: 22px 24px; }
.bm-filtros-head { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 1.05rem; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid #eef2f7; }
.bm-filtros-body { display: flex; flex-direction: column; gap: 14px; }
.bm-filtros-item { display: flex; flex-direction: column; gap: 5px; }
.bm-filtros-item > label { font-size: 12px; font-weight: 600; color: #475569; }
.bm-filtros-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 24px; padding-top: 16px; border-top: 1px solid #eef2f7; }

/* Views salvas (overlay de filtros nomeados) */
.bm-views-panel { min-width: 290px; max-width: 360px; }
.bm-views-title { font-weight: 700; font-size: 13px; margin-bottom: 8px; color: #334155; }
.bm-views-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px solid #f1f5f9; }
.bm-views-link { color: var(--bm-blue, #4650D4); font-weight: 600; cursor: pointer; text-decoration: none; }
.bm-views-link:hover { text-decoration: underline; }
.bm-views-del { color: #94a3b8; cursor: pointer; }
.bm-views-del:hover { color: #e5484d; }
.bm-views-save { display: flex; gap: 8px; margin-top: 12px; }

/* Número sequencial por empresa — badge monoespaçado discreto */
.bm-numero-badge { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 12px; font-weight: 700; color: #475569; background: #f1f5f9; padding: 2px 8px; border-radius: 7px; }

/* Detail peek (painel lateral de visualização rápida) */
.bm-peek.ui-sidebar { width: 420px; max-width: 92vw; padding: 22px 24px; }
.bm-peek-head { display: flex; align-items: center; gap: 14px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid #eef2f7; }
.bm-peek-avatar { width: 46px; height: 46px; border-radius: 12px; background: color-mix(in srgb, var(--bm-blue, #4650D4) 14%, #fff); color: var(--bm-blue, #4650D4); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; }
.bm-peek-title { display: flex; flex-direction: column; gap: 6px; }
.bm-peek-title strong { font-size: 1.1rem; }
.bm-peek-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.bm-peek-item { display: flex; flex-direction: column; gap: 3px; }
.bm-peek-item label { font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: #94a3b8; }
.bm-peek-item span { font-size: 14px; color: #1e293b; }
.bm-peek-actions { display: flex; gap: 10px; margin-top: 24px; }
.bm-peek-edit { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; padding: 9px 16px; border-radius: 10px; }

/* Skeleton loader (placeholder de carregamento) */
.bm-skel { background: linear-gradient(90deg,#eef2f7 25%,#f7fafc 37%,#eef2f7 63%); background-size: 400% 100%; animation: bm-skel 1.4s ease infinite; border-radius: 8px; height: 14px; }
@keyframes bm-skel { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* seletor de nº de colunas: tiles generosos com mini-preview (barras) + rótulo */
.bm-cols-pick { display: flex !important; gap: 12px; width: 100%; }
.bm-cols-pick .ui-button {
	flex: 1 1 0;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-height: 70px;
	padding: 12px 8px !important;
	border-radius: 12px !important;
	white-space: pre-line !important;
	line-height: 1.5;
	font-size: 13px;
	font-weight: 600;
	background: var(--bm-surface, #fff) !important;
	color: var(--bm-text, #1e293b) !important;
	border: 1.5px solid var(--bm-border, #e2e8f0) !important;
	box-shadow: none !important;
	transition: border-color .12s, background .12s, transform .08s;
}
.bm-cols-pick .ui-button .ui-button-text { padding: 0 !important; white-space: pre-line !important; }
.bm-cols-pick .ui-button:hover { border-color: var(--bm-blue, #4650D4) !important; transform: translateY(-1px); }
.bm-cols-pick .ui-button.ui-state-active {
	background: color-mix(in srgb, var(--bm-blue, #4650D4) 8%, #fff) !important;
	color: var(--bm-blue, #4650D4) !important;
	border-color: var(--bm-blue, #4650D4) !important;
	box-shadow: 0 0 0 1px var(--bm-blue, #4650D4) inset !important;
}

/* ===================== Preferências: layout de colunas + agrupamento ===================== */
.form-grid-modern.bm-cols-2, .form-grid-modern.bm-cols-3 { max-width: 100%; }
.bm-prefs-cols { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.bm-prefs-cols-label { font-size: 13px; color: var(--bm-muted, #64748b); font-weight: 600; }
/* lista de campos por aba: cada aba vira um bloco com grade de 2 colunas */
.bm-prefs-fields { max-height: 52vh; overflow: auto; padding-right: 4px; }
.bm-prefs-aba { margin-bottom: 16px; }
.bm-prefs-aba-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 24px;
}
.bm-prefs-aba-grid .bm-prefs-row { border-bottom: 1px solid var(--bm-border, #e2e8f0); }
@media (max-width: 640px) { /* breakpoint canônico: era 560px */ .bm-prefs-aba-grid { grid-template-columns: 1fr; } }
.bm-prefs-grupo {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--bm-muted, #64748b);
	margin: 0 0 6px;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--bm-blue, #4650D4);
	display: inline-block;
}

/* ===================== Status (switch minimalista) ===================== */
.bm-status-switch { display: inline-flex; align-items: center; gap: 10px; }
.bm-status-switch-label { font-size: 13.5px; color: var(--bm-text, #1e293b); }

/* ===================== Painel de atividade recolhível ===================== */
body.bm-rail-hidden .bm-form-2col { grid-template-columns: 1fr; }
body.bm-rail-hidden .bm-activity-rail { display: none; }

/* ===================== Tier 6 — Acessibilidade ===================== */
/* skip-link: pular direto para o conteúdo (visível só com foco por teclado) */
.bm-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100002;
	background: var(--bm-blue, #4650D4);
	color: #fff;
	padding: 10px 16px;
	border-radius: 0 0 8px 0;
	font-size: 14px;
	text-decoration: none;
}
.bm-skip-link:focus {
	left: 0;
}
/* só-leitor-de-tela */
.bm-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}
/* foco visível por teclado (não atrapalha clique de mouse) */
.btn-primary:focus-visible,
.ui-button:focus-visible,
.menu-link:focus-visible,
.bm-cmdk-item:focus-visible,
.topbar-icon-button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible {
	outline: 2px solid var(--bm-action) !important;
	outline-offset: 2px !important;
}
/* respeita "reduzir animações" do SO */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ===================== Tier 6 — Skeleton loaders ===================== */
.bm-skeleton {
	display: block;
	background: linear-gradient(90deg, var(--bm-bg, #eef1f5) 25%, var(--bm-surface, #f7f9fc) 37%, var(--bm-bg, #eef1f5) 63%);
	background-size: 400% 100%;
	animation: bmSkeleton 1.2s ease-in-out infinite;
	border-radius: 6px;
	min-height: 14px;
}
.bm-skeleton.bm-skeleton-line { height: 14px; margin: 8px 0; }
.bm-skeleton.bm-skeleton-line.short { width: 40%; }
.bm-skeleton.bm-skeleton-block { height: 80px; }
@keyframes bmSkeleton { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.theme-dark .bm-skeleton { background: linear-gradient(90deg, #1e293b 25%, #273549 37%, #1e293b 63%); background-size: 400% 100%; }

/* ===================== Tier 6 — Responsivo / mobile ===================== */
@media (max-width: 820px) {
	.form-header { flex-direction: column; align-items: stretch; gap: 10px; }
	.form-header-actions { flex-wrap: wrap; justify-content: flex-start; }
	.bm-header-search.ui-autocomplete { width: 100% !important; }
	.bm-header-search .ui-autocomplete-input { width: 100% !important; }
	.form-navigation-bar { flex-wrap: wrap; }
	.topbar { flex-wrap: wrap; gap: 8px; }
	.topbar-actions { flex-wrap: wrap; }
	.bm-relmov-saldos { flex-direction: column; }
	.bm-cmdk-box { max-width: 94vw; margin-top: 8vh; }
	.bm-coment-add { flex-direction: column; align-items: stretch; }
}
@media (max-width: 640px) { /* breakpoint canônico: era 560px */
	.form-grid-modern { max-width: 100%; }
	.bm-table-card, .bm-form-card { overflow-x: auto; }
	.bm-datatable { min-width: 520px; }
	.dialog-footer-actions { flex-wrap: wrap; }
}

/* ===================== Painel "Movimentações desta conta" ===================== */
.bm-relmov-saldos { display: flex; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.bm-relmov-tile {
	flex: 1 1 200px;
	padding: 14px 16px;
	border-radius: 10px;
	border: 1px solid var(--bm-border, #e2e8f0);
	background: var(--bm-surface, #fff);
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.bm-relmov-tile-label { font-size: 12px; color: var(--bm-muted, #64748b); font-weight: 600; }
.bm-relmov-tile-valor { font-size: 22px; font-weight: 700; color: var(--bm-text, #1e293b); }
.bm-relmov-realizado { border-left: 3px solid #16a34a; }
.bm-relmov-aberto { border-left: 3px solid #f59e0b; }
.bm-relmov-entrada { border-left: 3px solid #16a34a; }
.bm-relmov-saida { border-left: 3px solid #e5484d; }
.bm-relmov-pos { color: #16a34a; font-weight: 600; }
.bm-relmov-neg { color: #e5484d; font-weight: 600; }
.bm-relmov-table { margin-top: 6px; }
.badge-warning { background: #fef3c7; color: #92400e; }
.theme-dark .badge-warning { background: #3a2e0c; color: #fcd34d; }

/* ===================== Timeline (corrige reuso das classes de auditoria) ===================== */
.bm-act-tl .bm-audit-hist-de { text-decoration: none; opacity: 1; color: var(--bm-muted, #64748b); }
.bm-act-tl .bm-audit-hist-de.bm-de-alt { text-decoration: line-through; opacity: .7; }
.bm-act-tl .bm-audit-hist-para { color: var(--bm-text, #1e293b); font-weight: 600; }
.bm-act-tl .bm-audit-hist-detalhe { color: var(--bm-text, #1e293b); }
.bm-act-tl .bm-audit-hist-campo .pi { font-size: 12px; margin-right: 4px; color: var(--bm-muted, #64748b); }

/* ===================== Seguir registro ===================== */
.bm-seguir-btn.bm-seguir-on .pi,
.bm-seguir-btn.bm-seguir-on .ui-button-icon { color: var(--bm-blue, #4650D4) !important; }

/* ===================== Favoritos ===================== */
.bm-fav-btn.bm-fav-on .pi,
.bm-fav-btn.bm-fav-on .ui-button-icon { color: #f5b301 !important; }
.sidebar-favoritos .sidebar-recentes-titulo .pi { color: #f5b301; font-size: 11px; margin-right: 4px; }

/* ===================== Toast leve (ações de ficha) ===================== */
.bm-mini-toast {
	position: fixed;
	bottom: 28px;
	left: 50%;
	transform: translateX(-50%) translateY(12px);
	background: var(--bm-text, #1e293b);
	color: #fff;
	padding: 10px 18px;
	border-radius: 9px;
	font-size: 14px;
	box-shadow: 0 8px 24px rgba(2, 6, 23, .35);
	z-index: 100001;
	opacity: 0;
	transition: opacity .25s, transform .25s;
	pointer-events: none;
}
.bm-mini-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ===================== Banner de rascunho (autosave) ===================== */
.bm-draft-banner {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	padding: 10px 14px;
	border: 1px solid #f5c97a;
	background: #fff8ec;
	border-radius: 9px;
	font-size: 13.5px;
	color: #8a5a00;
}
.theme-dark .bm-draft-banner { background: #2c2410; border-color: #5c4a1d; color: #f1c97a; }
.bm-draft-banner > span:first-child { flex: 1; }
.bm-draft-banner .pi { margin-right: 6px; }
.bm-draft-banner button {
	border: none;
	border-radius: 7px;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.bm-draft-banner .bm-draft-rec { background: var(--bm-blue, #4650D4); color: #fff; }
.bm-draft-banner .bm-draft-dis { background: transparent; color: inherit; text-decoration: underline; }

/* ===================== Impressão da ficha do registro (#16) ===================== */
@media print {
	body * { visibility: hidden !important; }
	.form-shell, .form-shell * { visibility: visible !important; }
	.form-shell {
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		box-shadow: none !important;
		border: none !important;
	}
	/* esconde cromo e ações que não fazem sentido no papel */
	.sidebar, aside, .topbar, .form-header-actions, .bm-overflow-btn,
	.form-navigation-bar, .bm-header-search, .bm-draft-banner, .quick-ticket-fab,
	.bm-cmdk, .ui-growl, .ui-messages, .bm-status-toggle .ui-button:not(.ui-state-active) {
		display: none !important;
	}
	.bm-tabview .ui-tabs-nav { display: none !important; }
	.bm-tabview .ui-tabs-panel { display: block !important; padding: 0 !important; }
	.form-header { border: none !important; }
	/* papel branco na impressão (a classe de densidade fica no próprio body, então "body" cobre os dois casos) */
	body { background: #fff !important; }
}

/* ===================== Densidade compacta ===================== */
.bm-density-compact .bm-tabview .ui-tabs-panel { padding: 10px 14px !important; }
.bm-density-compact .form-grid-modern { gap: 4px 10px; }
.bm-density-compact .form-grid-modern .ui-inputfield,
.bm-density-compact .form-grid-modern .ui-selectonemenu,
.bm-density-compact .form-grid-modern input[type="text"] { padding-top: 5px; padding-bottom: 5px; }
.bm-density-compact .bm-datatable .ui-datatable-data > tr > td { padding-top: 5px !important; padding-bottom: 5px !important; }
.bm-density-compact .bm-datatable .ui-datatable-header,
.bm-density-compact .bm-datatable thead th { padding-top: 6px !important; padding-bottom: 6px !important; }
.bm-density-compact .form-header { padding-top: 10px; padding-bottom: 10px; }
.bm-density-compact .bm-table-card,
.bm-density-compact .bm-filter-card { padding: 10px 12px; }

/* ===================== Importação de cadastro ===================== */
.bm-import-actions { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin: 6px 0 14px; }
.bm-import-actions .bm-import-upload { flex: 1 1 320px; }
.bm-import-resumo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 6px 0 10px; }
.bm-import-resumo .bm-import-arquivo { margin-left: auto; color: #64748b; font-size: .85rem; }
.bm-import-resumo .bm-import-arquivo i { margin-right: 4px; }
.bm-import-table .bm-import-motivo { display: block; color: #94a3b8; font-size: .78rem; margin-top: 2px; }

/* ===================== Copiloto de IA ===================== */
.bm-copiloto-btn .ui-button-icon,
.bm-copiloto-btn.ui-button { color: #7c3aed; }
/* Ancorado acima do FAB (estilo widget de chat), não em cima do botão "+". */
.ui-dialog.bm-copiloto-dialog { position: fixed !important; right: 24px !important; left: auto !important;
	top: auto !important; bottom: 160px !important; max-width: calc(100vw - 48px);
	/* o diálogo cresce PARA CIMA a partir de bottom:160px → o max-height precisa descontar esse
	   offset (160px) + uma folga de topo (24px), senão o topo estoura a tela do notebook e corta */
	max-height: calc(100vh - 184px); }
/* Em telas estreitas/baixas o copiloto ocupa quase toda a área e o input nunca sai da tela */
@media (max-width: 640px) {
	.ui-dialog.bm-copiloto-dialog { right: 8px !important; left: 8px !important; bottom: 8px !important;
		width: auto !important; max-width: none; max-height: calc(100vh - 16px); }
	.bm-copiloto-dialog .ui-dialog-content { padding: 12px 14px 14px; }
	.bm-copiloto-body { max-height: calc(100vh - 320px); }
	.bm-copiloto-modos { flex-wrap: wrap; }
}
.bm-copiloto-dialog .ui-dialog-content { padding: 16px 18px 18px; }
/* Cabeçalho do diálogo visível: barra violeta com título e X em branco (antes sumia no fundo). */
.bm-copiloto-dialog .ui-dialog-titlebar {
	background: linear-gradient(135deg,#8b5cf6,#6d28d9) !important;
	border: none !important; border-radius: 12px 12px 0 0 !important; padding: 10px 14px !important;
}
.bm-copiloto-dialog .ui-dialog-title { color: #fff !important; font-weight: 700; font-size: .95rem; }
.bm-copiloto-dialog .ui-dialog-titlebar-icon,
.bm-copiloto-dialog .ui-dialog-titlebar-icon .ui-icon,
.bm-copiloto-dialog .ui-dialog-titlebar-close .ui-icon { color: #fff !important; }
.bm-copiloto-dialog .ui-dialog-titlebar-icon { opacity: .9; border-radius: 6px; }
.bm-copiloto-dialog .ui-dialog-titlebar-icon:hover { opacity: 1; background: rgba(255,255,255,.22) !important; }
.bm-copiloto-head { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; }
/* Botão X de fechar do copiloto: visível e óbvio (hover vermelho). */
.bm-cop-close { width: 26px; height: 26px; border: 1px solid var(--bm-border); border-radius: 8px; background: transparent; color: var(--bm-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.bm-cop-close:hover { background: color-mix(in srgb, #ef4444 12%, transparent); border-color: #ef4444; color: #ef4444; }
.bm-cop-close .pi { font-size: 13px; }
.bm-copiloto-spark { color: #7c3aed; font-size: 1.2rem; margin-top: 2px; }
.bm-copiloto-sub { color: #64748b; font-size: .85rem; line-height: 1.35; }
.bm-copiloto-cota { margin-bottom: 12px; }
.bm-copiloto-cota-bar { height: 6px; border-radius: 4px; background: #ede9fe; overflow: hidden; }
.bm-copiloto-cota-bar span { display: block; height: 100%; background: linear-gradient(90deg,#8b5cf6,#6d28d9); }
.bm-copiloto-cota small { color: #94a3b8; font-size: .76rem; }
.bm-copiloto-body { min-height: 120px; max-height: min(360px, calc(100vh - 430px)); overflow-y: auto; margin-bottom: 12px;
	display: flex; flex-direction: column; gap: 12px; }
/* Bolhas do chat (histórico de pergunta/resposta) */
.bm-cop-turno { display: flex; flex-direction: column; gap: 6px; }
.bm-cop-q { align-self: flex-end; max-width: 85%; background: #ede9fe; color: #4c1d95;
	padding: 7px 11px; border-radius: 12px 12px 2px 12px; font-size: .86rem; line-height: 1.4; white-space: pre-wrap; }
.bm-cop-a { align-self: flex-start; max-width: 92%; display: flex; gap: 8px; background: #f1f5f9; color: #1e293b;
	padding: 8px 11px; border-radius: 12px 12px 12px 2px; }
.bm-cop-a > .pi-bolt { color: #7c3aed; margin-top: 2px; }
.bm-cop-a-txt { white-space: pre-wrap; font-size: .88rem; line-height: 1.45; overflow-wrap: anywhere; word-break: break-word; }
.bm-copiloto-resposta { display: flex; gap: 10px; background: #f5f3ff; border: 1px solid #ddd6fe; border-radius: 10px; padding: 12px 14px; }
.bm-copiloto-resposta i { color: #7c3aed; margin-top: 2px; }
.bm-copiloto-resposta-txt { white-space: pre-wrap; color: #1e293b; font-size: .9rem; line-height: 1.45; }
.bm-copiloto-aviso { background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412; border-radius: 10px; padding: 10px 12px; font-size: .86rem; }
.bm-copiloto-aviso i { margin-right: 6px; }
.bm-copiloto-input { display: flex; gap: 8px; align-items: flex-end; }
.bm-copiloto-ta { flex: 1 1 auto; resize: none; }
.bm-copiloto-send { white-space: nowrap; }
/* Botão de enviar só com ícone (envio via Ctrl+Enter ou clique) */
.bm-copiloto-send-icon.ui-button { width: 42px; height: 42px; padding: 0; border-radius: 10px; flex: 0 0 auto; }
.bm-copiloto-send-icon .ui-button-icon { margin: 0; font-size: 1.05rem; }
/* Markdown renderizado nas respostas */
.bm-cop-a-txt code { background: #e2e8f0; border-radius: 4px; padding: 1px 5px; font-size: .85em; }
.bm-cop-a-txt strong { font-weight: 700; }
.bm-cop-a-txt ul { margin: 4px 0; padding-left: 18px; }
.bm-cop-a-txt li { margin: 2px 0; }

/* ===================== Lista (template de referência) ===================== */
/* (regra órfã .bm-list-toolbar{align-items:flex-end} removida — conflitava com o
   align-items:center !important da fonte única .bm-filter-card.bm-list-toolbar acima) */
.bm-list-status-group .bm-list-status { min-width: 130px; }
/* Resumo + ações em lote acima da tabela */
.bm-list-summary { display: flex; align-items: center; justify-content: space-between;
	gap: 12px; padding: 2px 2px 12px; flex-wrap: wrap; min-height: 30px; }
.bm-list-count { color: #64748b; font-size: .85rem; display: inline-flex; align-items: center; gap: 7px; }
.bm-list-count i { color: #94a3b8; }
.bm-list-count strong { color: #1e293b; font-size: 1.02rem; }
.bm-list-totais { display: inline-flex; gap: 16px; flex-wrap: wrap; align-items: center; }
.bm-list-total { color: #64748b; font-size: .82rem; }
.bm-list-total strong { color: #1e293b; margin-left: 3px; }
.bm-col-right, .bm-col-right .ui-column-title { text-align: right; }
.bm-col-total { font-weight: 700; color: #1e293b; display: block; text-align: right; }
.bm-list-table .ui-datatable-footer { background: #f8fafc; }
.bm-list-table tfoot td { padding: 8px 10px; border-top: 2px solid #e2e8f0; }
.bm-list-bulk { display: inline-flex; align-items: center; gap: 10px; background: #eef2ff;
	border: 1px solid #c7d2fe; border-radius: 10px; padding: 4px 8px 4px 12px; }
.bm-list-bulk-count { color: #4338ca; font-size: .82rem; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.bm-bulk-btn.ui-button { padding: 5px 12px; }
/* Linhas: hover + nome clicável */
.bm-list-table .ui-datatable-data > tr { transition: background .12s; }
.bm-list-table .ui-datatable-data > tr:hover { background: #f8fafc; }
.bm-list-link { color: inherit; text-decoration: none; }
.bm-list-link strong { cursor: pointer; }
.bm-list-link:hover strong { color: var(--bm-blue, #4650D4); text-decoration: underline; }
.bm-list-checkcol { width: 44px; text-align: center; }
/* Ações no início (após o checkbox): ícones inline leves, revelados no hover da linha */
.bm-list-acoes { white-space: nowrap; }
.bm-row-actions { display: inline-flex; gap: 2px; opacity: .35; transition: opacity .12s; }
.bm-list-table tr:hover .bm-row-actions,
.bm-row-actions:focus-within { opacity: 1; }
.bm-act-ico.ui-button { width: 30px; height: 30px; padding: 0; border-radius: 6px; }
.bm-act-ico .ui-button-icon { margin: 0; }
/* Empty state rico */
.bm-list-empty { display: flex; flex-direction: column; align-items: center; gap: 14px;
	padding: 72px 16px; min-height: 220px; justify-content: center; color: #94a3b8; }
.bm-list-empty i { font-size: 2.4rem; opacity: .55; }
.bm-list-empty-txt { font-size: .95rem; }

/* ===================== Catálogo de Dados (explorador tabela → campos) ===================== */
.bm-catalogo { display: flex; gap: 16px; align-items: flex-start; }
/* ===== Diálogo de configuração de campo (dicionário v2) ===== */
.bm-cat-cfg-head { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid #e2e8f0; }
.bm-cat-cfg-head strong { font-size: 1.05rem; }
.bm-cat-cfg-head code { background: #f1f5f9; padding: 2px 8px; border-radius: 6px; font-size: 12px; color: #475569; }
.bm-cat-cfg-grid { max-height: 62vh; overflow-y: auto; overflow-x: hidden; padding-right: 6px; }
.bm-cat-cfg-sec { font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: #4650D4; margin: 18px 0 10px; display: flex; align-items: center; gap: 6px; }
.bm-cat-cfg-sec:first-child { margin-top: 2px; }
/* campos em 2 colunas, RÓTULO ACIMA do controle (padrão do sistema) — sem overflow lateral */
.bm-cat-cfg-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; margin-bottom: 4px; }
.bm-cat-fld { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.bm-cat-fld > label { font-size: 12px; font-weight: 600; color: #475569; }
.bm-cat-fld .ui-inputfield, .bm-cat-fld .ui-selectonemenu,
.bm-cat-fld input[type="text"], .bm-cat-fld textarea { width: 100% !important; box-sizing: border-box; }
.bm-cat-fld-full { grid-column: 1 / -1; }
.bm-cat-cfg-2 { display: flex; gap: 8px; }
.bm-cat-cfg-2 .ui-inputfield, .bm-cat-cfg-2 input { width: 100%; box-sizing: border-box; }
/* checkbox: caixa em tamanho NORMAL + rótulo ao lado (não o quadradão azul) */
.bm-cat-fld.bm-cat-chk { flex-direction: row; align-items: center; gap: 8px; padding-top: 4px; }
.bm-cat-fld.bm-cat-chk > label { font-weight: 500; color: #334155; }
.bm-cat-fld.bm-cat-chk input[type="checkbox"] { width: 16px; height: 16px; flex: 0 0 auto; }
.bm-cat-cfg-footer { display: flex; justify-content: flex-end; gap: 8px; padding-top: 12px; margin-top: 8px; border-top: 1px solid #e2e8f0; }
.bm-cat-addopt { margin-top: 8px; }
@media (max-width: 768px) { /* breakpoint canônico: era 720px */ .bm-cat-cfg-fields { grid-template-columns: 1fr; } }
.bm-cat-tabelas { flex: 0 0 280px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
	overflow: hidden; max-height: calc(100vh - 160px); display: flex; flex-direction: column; }
.bm-cat-head { padding: 12px 14px; font-weight: 700; color: #1e293b; border-bottom: 1px solid #eef2f7;
	display: flex; align-items: center; gap: 8px; }
.bm-cat-head i { color: #7c3aed; }
.bm-cat-filtro { margin: 10px 12px; }
.bm-cat-list { overflow-y: auto; padding: 0 6px 8px; }
.bm-cat-item { display: flex; align-items: center; justify-content: space-between; gap: 8px;
	padding: 8px 10px; border-radius: 8px; color: #334155; text-decoration: none; cursor: pointer;
	font-size: .85rem; transition: background .12s; }
.bm-cat-item:hover { background: #f1f5f9; }
.bm-cat-item-sel { background: #ede9fe; color: #4c1d95; font-weight: 600; }
.bm-cat-item-nome { font-family: monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-cat-item-meta { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.bm-cat-badge { background: #e2e8f0; color: #475569; border-radius: 10px; padding: 1px 8px; font-size: .72rem; }
.bm-cat-vinc i { color: #16a34a; font-size: .8rem; }
/* painel direito */
.bm-cat-detalhe { flex: 1 1 auto; min-width: 0; background: #fff; border: 1px solid #e2e8f0;
	border-radius: 12px; padding: 18px 20px; }
.bm-cat-empty { display: flex; align-items: center; gap: 10px; color: #94a3b8; padding: 40px 12px; justify-content: center; }
.bm-cat-detalhe-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 6px; }
.bm-cat-detalhe-head h2 { margin: 0; font-size: 1.2rem; display: inline-flex; align-items: center; gap: 8px; }
.bm-cat-detalhe-head h2 i { color: #7c3aed; }
.bm-cat-tela { font-size: .8rem; display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 20px; }
.bm-cat-tela-ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.bm-cat-tela-no { background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.bm-cat-section { display: flex; align-items: center; justify-content: space-between; gap: 10px;
	margin: 18px 0 10px; font-weight: 700; color: #334155; border-bottom: 1px solid #eef2f7; padding-bottom: 6px; }
.bm-cat-section > span { display: inline-flex; align-items: center; gap: 8px; }
.bm-cat-section i { color: #94a3b8; }
.bm-cat-section-actions { display: inline-flex; gap: 8px; }
.bm-cat-section-fis { margin-top: 22px; }
.bm-cat-chk .ui-chkbox { margin: 0 auto; }
/* campos/selects nativos (leves) da grade do dicionário */
.bm-cat-inp, .bm-cat-sel { width: 100%; border: 1px solid #cbd5e1; border-radius: 6px;
	padding: 4px 8px; font-size: .82rem; background: #fff; color: #1e293b; box-sizing: border-box; }
.bm-cat-inp:focus, .bm-cat-sel:focus { outline: none; border-color: #7c3aed; box-shadow: 0 0 0 2px rgba(124,58,237,.15); }
.bm-cat-ord { max-width: 70px; }
.bm-cat-chk input[type="checkbox"] { width: 16px; height: 16px; display: block; margin: 0 auto; }
.bm-cat-hint { display: block; color: #94a3b8; font-size: .76rem; margin-top: 6px; }
.bm-cat-tipo { font-family: monospace; font-size: .8rem; color: #475569; }
.bm-copiloto-load { color: #7c3aed; font-size: .82rem; margin-top: 8px; }
.bm-copiloto-load i { margin-right: 6px; }
.bm-copiloto-actions2 { margin-top: 8px; }
.bm-copiloto-sugestoes { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px 12px; margin-top: 6px; }
.bm-copiloto-sug-title { font-size: .82rem; font-weight: 700; color: #475569; margin-bottom: 8px; }
.bm-copiloto-sug-title i { color: #7c3aed; margin-right: 6px; }
.bm-copiloto-sug-item { display: flex; align-items: center; gap: 8px; padding: 4px 0; font-size: .86rem; border-top: 1px dashed #e2e8f0; }
.bm-copiloto-sug-item:first-of-type { border-top: none; }
.bm-copiloto-sug-item .bm-sug-label { font-weight: 600; color: #334155; min-width: 110px; }
.bm-copiloto-sug-item .bm-sug-val { color: #64748b; }
.bm-copiloto-sug-item .bm-sug-val i { font-size: .7rem; margin: 0 4px; }
.bm-copiloto-sug-item .bm-sug-val strong { color: #166534; }
.bm-copiloto-aplicar { margin-top: 10px; }

/* Botão flutuante do copiloto (acima do FAB "+") */
.bm-copiloto-fab {
	position: fixed; right: 24px; bottom: 24px; z-index: 9999;
	width: 56px; height: 56px; border-radius: 50%;
	background: linear-gradient(135deg,var(--bm-copiloto,#8b5cf6),var(--bm-copiloto-2,#6d28d9)); color: #fff;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 14px rgba(109,40,217,.45); cursor: pointer;
	transition: transform .2s, box-shadow .2s; font-size: 22px;
}
.bm-copiloto-fab:hover { transform: scale(1.08); box-shadow: 0 6px 20px rgba(109,40,217,.55); }
/* Estados do FAB: processando (spinner) e resposta pronta (ponto pulsante). */
.bm-cop-fab-spin { display: none; }
.bm-copiloto-fab.bm-cop-fab-busy .bm-cop-fab-ico { display: none; }
.bm-copiloto-fab.bm-cop-fab-busy .bm-cop-fab-spin { display: inline-block; }
.bm-copiloto-fab.bm-cop-fab-busy { box-shadow: 0 0 0 0 rgba(139,92,246,.6); animation: bmCopPulse 1.4s infinite; }
.bm-cop-fab-dot {
	position: absolute; top: 6px; right: 6px; width: 12px; height: 12px; border-radius: 50%;
	background: #22c55e; border: 2px solid #fff; display: none; box-shadow: 0 0 0 0 rgba(34,197,94,.7);
}
.bm-copiloto-fab.bm-cop-fab-ready .bm-cop-fab-dot { display: block; animation: bmCopReadyPulse 1.6s infinite; }
@keyframes bmCopPulse {
	0% { box-shadow: 0 0 0 0 rgba(139,92,246,.5); }
	70% { box-shadow: 0 0 0 14px rgba(139,92,246,0); }
	100% { box-shadow: 0 0 0 0 rgba(139,92,246,0); }
}
@keyframes bmCopReadyPulse {
	0% { box-shadow: 0 0 0 0 rgba(34,197,94,.7); }
	70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
	100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}
/* Botão minimizar no cabeçalho do copiloto. */
.bm-cop-min {
	background: none; border: none; cursor: pointer; color: #94a3b8; padding: 4px 6px;
	border-radius: 6px; font-size: .95rem; line-height: 1; transition: color .15s, background .15s;
}
.bm-cop-min:hover { color: #475569; background: rgba(148,163,184,.16); }
/* Seletor de foco: discreto, em linha (default Automático; demais por opção). */
.bm-copiloto-modos { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.bm-copiloto-modo-lbl { color: #64748b; font-size: .76rem; font-weight: 600; }
.bm-copiloto-modo-sel.ui-selectonemenu { min-width: 150px; font-size: .78rem; }
.bm-copiloto-modo-sel .ui-selectonemenu-label { padding: 4px 8px; }
.bm-copiloto-modo-hint { color: #94a3b8; font-size: .74rem; font-style: italic; }

/* Resultado do "Testar conexão" no Plano de IA. */
.bm-ia-teste { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: 8px;
	font-size: .85rem; margin-bottom: 14px; line-height: 1.35; }
.bm-ia-teste i { margin-top: 1px; }
.bm-ia-teste-ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.bm-ia-teste-erro { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.bm-ia-teste-load { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }
.bm-ia-teste-det { margin-top: 4px; font-size: .76rem; opacity: .75; font-family: monospace; word-break: break-word; }

/* ===================== Tour guiado (coach marks) ===================== */
.bm-tour-backdrop { position: fixed; inset: 0; background: rgba(15,23,42,.55); z-index: 100000; }
.bm-tour-active { position: relative; z-index: 100001 !important; box-shadow: 0 0 0 3px #7c3aed, 0 0 0 9px rgba(124,58,237,.25); border-radius: 8px; transition: box-shadow .15s; }
.bm-tour-pop { position: absolute; z-index: 100002; width: 320px; background: #fff; border-radius: 12px;
	box-shadow: 0 14px 40px rgba(0,0,0,.28); padding: 14px 16px; }
.bm-tour-pop .bm-tour-x { position: absolute; top: 8px; right: 10px; border: none; background: none; font-size: 1.1rem; cursor: pointer; color: #94a3b8; }
.bm-tour-title { font-weight: 700; color: #1e293b; margin-bottom: 6px; padding-right: 18px; }
.bm-tour-text { color: #475569; font-size: .88rem; line-height: 1.4; }
.bm-tour-btns { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.bm-tour-btns .bm-tour-count { color: #94a3b8; font-size: .78rem; margin-left: auto; }
.bm-tour-btns button { border: none; border-radius: 7px; padding: 6px 12px; cursor: pointer; font-size: .82rem; }
.bm-tour-btns .bm-tour-next { background: #7c3aed; color: #fff; }
.bm-tour-btns .bm-tour-prev { background: #eef2ff; color: #4338ca; }

/* ===================== Densidade — diferença perceptível ===================== */
/* Confortável (padrão): respira um pouco mais. */
.form-grid-modern { gap: 12px 18px; }
.bm-datatable .ui-datatable-data > tr > td { padding-top: 11px !important; padding-bottom: 11px !important; }

/* Compacto: nitidamente mais denso (fonte, alturas, paddings, avatares). */
.bm-density-compact { font-size: 13px; line-height: 1.35; }
.bm-density-compact .form-grid-modern { gap: 2px 10px !important; }
.bm-density-compact .bm-tabview .ui-tabs-panel { padding: 8px 12px !important; }
.bm-density-compact .form-grid-modern .ui-inputfield,
.bm-density-compact .form-grid-modern .ui-selectonemenu,
.bm-density-compact .form-grid-modern input[type="text"] { padding-top: 3px !important; padding-bottom: 3px !important; min-height: 30px !important; }
.bm-density-compact .ui-outputlabel,
.bm-density-compact .bm-label-cell label { font-size: 12px !important; }
.bm-density-compact .bm-datatable .ui-datatable-data > tr > td { padding-top: 3px !important; padding-bottom: 3px !important; font-size: 12.5px; }
.bm-density-compact .bm-datatable thead th { padding-top: 5px !important; padding-bottom: 5px !important; font-size: 12px; }
.bm-density-compact .bm-avatar-sm { width: 26px !important; height: 26px !important; font-size: 11px !important; }
.bm-density-compact .cell-stack small { font-size: 11px; }
.bm-density-compact .bm-table-card,
.bm-density-compact .bm-filter-card { padding: 8px 10px !important; }
.bm-density-compact .form-header { padding-top: 8px !important; padding-bottom: 8px !important; }
.bm-density-compact .bm-activity-rail { font-size: 12.5px; }
.bm-density-compact .badge { padding: 1px 7px !important; font-size: 11px !important; }
/* Cards também mais densos no modo compacto (percepção clara da troca) */
.bm-density-compact .bm-card { padding: 10px 12px !important; gap: 8px; }
.bm-density-compact .dash-kpi-card { padding: 8px 10px !important; gap: 8px !important; }
.bm-density-compact .dash-kpi-value { font-size: 19px; }
.bm-density-toggle.bm-density-on { background: var(--bm-primary, #2B2F6E); color: #fff; }

/* Toast de feedback ao alternar densidade */
.bm-density-toast {
	position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(12px);
	background: #1e293b; color: #fff; padding: 9px 16px; border-radius: 9px; font-size: .85rem;
	box-shadow: 0 8px 24px rgba(0,0,0,.22); opacity: 0; transition: opacity .22s, transform .22s; z-index: 99999;
}
.bm-density-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.bm-density-toast i { margin-right: 6px; }

/* ===================== Seções do formulário (agrupamento de campos) ===================== */
.bm-form-section-title {
	display: flex; align-items: center; gap: 8px; margin: 18px 2px 10px;
	font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #64748b;
	padding-bottom: 6px; border-bottom: 1px solid #eef1f6;
}
.bm-form-section-title i { color: var(--bm-primary, #2B2F6E); font-size: .95rem; }
.bm-field-full { margin-top: 6px; }
.bm-field-full .bm-field-full-label { display: block; margin-bottom: 6px; font-weight: 600; color: #334155; }

/* ===== Ajustes UX (ref. conta bancária) ===== */

/* (1) Cabeçalho do agrupador com faixa de fundo tênue — destaca a seção (ex.: "Identificação"). */
.bm-form-section { padding-top: 0 !important; overflow: hidden; }
.bm-form-section-title {
	margin: 0 -18px 16px !important;
	padding: 11px 18px !important;
	background: linear-gradient(90deg, rgba(79,107,255,.10), rgba(79,107,255,.02));
	border-bottom: 1px solid #e8ecf7 !important;
	color: #3b4a8c !important;
}
.bm-form-section-title::before { display: none !important; }
.theme-dark .bm-form-section-title {
	background: linear-gradient(90deg, rgba(99,128,255,.16), rgba(99,128,255,.04));
	border-bottom-color: #1e293b !important; color: #aab6ff !important;
}

/* (2) selectOneMenu de relação (banco): ocupa a largura e o painel filtrável tem boa altura */
.bm-dyn-input .ui-selectonemenu { width: 100% !important; }
.bm-rel-panel .ui-selectonemenu-items-wrapper { max-height: 280px; }
.bm-rel-panel .ui-selectonemenu-filter-container { padding: 6px; }

/* (4) Botão "painel de atividade": preenchido quando visível, contorno quando oculto */
.bm-rail-toggle {
	background: var(--bm-action) !important; color: #fff !important;
	border-color: var(--bm-action) !important;
}
.bm-rail-toggle .ui-button-icon { color: #fff !important; }
body.bm-rail-hidden .bm-rail-toggle {
	background: transparent !important; color: var(--bm-action) !important;
	border: 1px solid var(--bm-border, #cbd5e1) !important;
}
body.bm-rail-hidden .bm-rail-toggle .ui-button-icon { color: var(--bm-action) !important; }

/* (5) Copiloto — empty-state intuitivo (estilo assistente), chips e aviso de IA */
.bm-cop-welcome { text-align: center; padding: 18px 10px 6px; }
.bm-cop-welcome-icon {
	width: 46px; height: 46px; margin: 0 auto 10px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; font-size: 22px; color: #fff;
	background: linear-gradient(135deg, #4650D4, #7c5cff); box-shadow: 0 6px 16px rgba(79,107,255,.35);
}
.bm-cop-welcome-title { font-size: 16px; font-weight: 700; color: #1e293b; }
.bm-cop-welcome-sub { font-size: 12.5px; color: #64748b; margin: 4px 0 14px; line-height: 1.45; }
.bm-cop-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.bm-cop-chip {
	display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
	background: #f5f7ff; border: 1px solid #e2e8f7; color: #3b4a8c;
	border-radius: 999px; padding: 7px 13px; font-size: 12.5px; font-weight: 600;
	transition: background .15s, border-color .15s, transform .1s;
}
.bm-cop-chip:hover { background: #eaeeff; border-color: #c7d0f5; transform: translateY(-1px); }
/* ações rápidas pós-resposta (estilo ChatGPT) */
.bm-cop-quick { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.bm-cop-chip-sm { font-size: 11.5px; padding: 4px 10px; }
/* revelação suave da resposta (streaming-like, sem SSE) */
.bm-cop-a { animation: bmCopReveal .35s ease; }
@keyframes bmCopReveal { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.bm-cop-chip i { font-size: 12px; color: #4650D4; }
.bm-cop-disclaimer {
	display: flex; align-items: center; gap: 6px; justify-content: center;
	font-size: 11px; color: #94a3b8; padding: 8px 10px 2px; line-height: 1.4; text-align: center;
}
.bm-cop-disclaimer i { font-size: 11px; }
.bm-cop-disclaimer { flex-wrap: wrap; }
.bm-cop-modelo { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; white-space: nowrap;
	background: #eef2ff; color: #4650D4; border-radius: 999px; padding: 1px 8px; font-weight: 600; font-size: 10.5px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.theme-dark .bm-cop-modelo { background: #111a2e; color: #aab6ff; }
.theme-dark .bm-cop-welcome-title { color: #e2e8f0; }
.theme-dark .bm-cop-chip { background: #111a2e; border-color: #1e293b; color: #aab6ff; }
.theme-dark .bm-cop-chip:hover { background: #16203a; }

/* (2a) Cabeçalho REALMENTE congelado: opaco (sem blur translúcido que deixa o conteúdo
   vazar por baixo) e colado no topo, cobrindo o padding lateral do .content. */
.content { padding-top: 0 !important; }
.content > .topbar {
	top: 0 !important;
	z-index: 60 !important;
	background: var(--bm-surface, #fff) !important;
	-webkit-backdrop-filter: none !important; backdrop-filter: none !important;
	/* alinhado com os cards do conteúdo (form-shell / cards da lista) — sem full-bleed */
	margin: 0 0 20px 0 !important;
	border-radius: 16px !important;
	box-shadow: 0 4px 14px rgba(15, 23, 42, .06) !important;
}
.theme-dark .content > .topbar { background: #0f172a !important; }
/* rail de filtros (quando expandido) gruda ABAIXO do cabeçalho congelado (header ~104px) */
.bm-filter-rail { top: 116px !important; }

/* (2b) Combo em densidade compacta: centraliza o label e zera bordas internas
   (eliminava a "linha sobreposta" causada pelo padding do container vs. do label) */
.bm-density-compact .ui-selectonemenu {
	display: flex !important; align-items: center !important;
	min-height: 32px !important; padding: 0 0 0 10px !important;
}
.bm-density-compact .ui-selectonemenu .ui-selectonemenu-label {
	padding-top: 0 !important; padding-bottom: 0 !important;
	line-height: 30px !important; border: 0 !important;
}
.bm-density-compact .ui-selectonemenu .ui-selectonemenu-trigger {
	border: 0 !important; background: transparent !important;
}

/* (3) Botão "Filtros avançados" — estado ativo (quando os filtros estão visíveis) */
.bm-rail-toggle-btn.bm-rail-toggle-on {
	background: var(--bm-primary, #2B2F6E) !important; color: #fff !important;
	border-color: var(--bm-primary, #2B2F6E) !important;
}
.bm-rail-toggle-btn.bm-rail-toggle-on i { color: #fff !important; }

/* (3) Botão "Abrir / editar" do peek: sem negrito (era herdado do estilo do visualizar) */
.bm-peek-edit { font-weight: 500 !important; }
/* célula Banco: classes que substituíram <strong>/<small> por componentes JSF (exportáveis em PDF) */
.bm-list-link-strong { font-weight: 700; }
.bm-cell-sub { font-size: 12px; color: #64748b; display: block; }

/* (5) Coluna de seleção: centraliza o checkbox (cabeçalho "selecionar todos" + linhas) */
.bm-list-table th.ui-selection-column, .bm-list-table td.ui-selection-column,
.bm-list-table .bm-list-checkcol { text-align: center !important; vertical-align: middle !important; }
.bm-list-table .ui-selection-column .ui-chkbox,
.bm-list-table .bm-list-checkcol .ui-chkbox { margin: 0 auto !important; float: none !important; display: inline-block !important; }

/* (6) Exclusão em VERMELHO: botão em lote sólido + ícone de linha vermelho ("enviar para lixeira") */
.bm-btn-danger.ui-button, .bm-bulk-btn.ui-button-danger {
	background: #dc2626 !important; border-color: #dc2626 !important; color: #fff !important;
}
.bm-btn-danger.ui-button .ui-button-text, .bm-btn-danger.ui-button .ui-icon,
.bm-bulk-btn.ui-button-danger .ui-button-text, .bm-bulk-btn.ui-button-danger .ui-icon { color: #fff !important; }
.bm-act-trash.ui-button-danger .ui-icon, .bm-act-trash.ui-button-danger .pi { color: #dc2626 !important; }
.bm-act-trash.ui-button-danger:hover { background: rgba(220, 38, 38, .10) !important; }

/* Copiloto: botão "Limpar conversa" no cabeçalho (controle do histórico efêmero) */
.bm-copiloto-head { display: flex; align-items: center; gap: 8px; }
/* "Limpar conversa": ícone claramente visível (antes era flat cinza-claro = quase invisível). */
.bm-cop-clear.ui-button { margin-left: auto !important; width: 30px; height: 30px; border-radius: 6px;
	background: rgba(148,163,184,.14) !important; }
.bm-cop-clear.ui-button .ui-icon, .bm-cop-clear.ui-button .ui-button-icon-left { color: #64748b !important; }
.bm-cop-clear.ui-button:hover { background: rgba(220,38,38,.12) !important; }
.bm-cop-clear.ui-button:hover .ui-icon, .bm-cop-clear.ui-button:hover .ui-button-icon-left { color: #dc2626 !important; }
.bm-cop-clear.ui-state-disabled { opacity: .4; }

/* Sinal de rascunho não salvo: ponto âmbar no badge do Nº (lugar distinto dos ícones) */
.bm-numero-badge.bm-has-draft { position: relative; }
.bm-numero-badge.bm-has-draft::after {
	content: ""; position: absolute; top: -3px; right: -3px;
	width: 8px; height: 8px; border-radius: 50%; background: #f59e0b; border: 2px solid #fff;
}
.theme-dark .bm-numero-badge.bm-has-draft::after { border-color: #0f172a; }

.bm-cell-sub { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
/* Nº fixo à esquerda + ícones (pequenos) logo ao lado, sem quebrar de linha */
.bm-num-cell { display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; white-space: nowrap; }
.bm-num-cell .bm-numero-badge { flex: 0 0 auto; }
.bm-row-flags { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.bm-row-flags .bm-flag { display: inline-flex; align-items: center; }
.bm-row-flags .bm-flag i { font-size: 10px; color: #94a3b8; }
.bm-row-flags .bm-flag-fav i { color: #f59e0b !important; }
/* favorito sobe ao topo + leve destaque na linha */
.bm-list-table tr.bm-row-fav > td { background: #fffbeb; }
.theme-dark .bm-list-table tr.bm-row-fav > td { background: #1e1707; }

/* (4) Botões um pouco menores (Aplicar filtros/Limpar e demais) — menos agressivos */
.bm-rail-actions .ui-button { padding: 7px 12px !important; font-size: 12.5px !important; }
.list-filter-actions .ui-button { padding: 7px 12px !important; }
.ui-button .ui-button-text { font-size: 13px; }

/* (6) Leve destaque nos cabeçalhos das seções do registro (Anexos/Anotações/Linha do tempo) */
.bm-coment-title, .bm-act-hist .bm-coment-title {
	font-size: 12px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: #3b4a8c;
}
.bm-coment-title i, .bm-audit-hist-title { color: #4650D4; }
.bm-audit-hist-title { font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; }

/* Visão ativa no overlay + opção limpar + destaque do item aplicado */
.bm-views-active { display: flex; align-items: center; justify-content: space-between; gap: 8px;
	background: #eef2ff; border: 1px solid #dbe3ff; border-radius: 8px; padding: 6px 10px; margin-bottom: 8px;
	font-size: 12px; font-weight: 600; color: #3b4a8c; }
.bm-views-active i { color: #4650D4; }
.bm-views-clear { font-size: 12px; color: #dc2626 !important; font-weight: 600; }
.bm-views-item-on { background: #f5f7ff; border-radius: 6px; }
.bm-views-filtros { display: flex; flex-direction: column; gap: 3px; margin: 0 0 8px; padding: 0 2px 8px; border-bottom: 1px solid #eef2f7; }
.bm-views-filtro { font-size: 11.5px; color: #475569; }
.bm-views-filtro i { font-size: 10px; color: #94a3b8; margin-right: 3px; }
.bm-views-filtro strong { color: #1e293b; }
.bm-views-upd { color: #94a3b8; }
.bm-views-upd:hover { color: #4650D4; }

/* Peek: cabeçalho FIXO + ações (Editar IA / abrir) à direita; X da sidebar + Esc fecham */
.bm-peek-head { position: sticky; top: 0; z-index: 3; background: var(--bm-surface, #fff); padding-top: 4px; padding-right: 30px; }
.bm-peek-title { flex: 1; min-width: 0; }
.bm-peek-headacts { display: inline-flex; gap: 4px; flex: 0 0 auto; }
.bm-peek-headedit { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 6px; color: #64748b; }
.bm-peek-headedit:hover { background: #eef2ff; color: #4650D4; }
.theme-dark .bm-peek-head { background: #0f172a; }
/* Peek: o editor "Editar com IA" aparece logo ABAIXO do cabeçalho (não no fim das seções).
   Reordena via flex sem precisar mover o bloco no markup. */
.bm-peek-body { display: flex; flex-direction: column; }
.bm-peek-body .bm-peek-head { order: -2; }
.bm-peek-body .bm-peek-ia { order: -1; }

/* Edição em massa: rodapé numa linha só */
.bm-bulk-dialog .bm-colunas-footer { flex-wrap: nowrap; }

/* Enviar ficha por e-mail */
.bm-email-form { display: flex; flex-direction: column; gap: 6px; }
.bm-email-lbl { font-size: 12px; font-weight: 600; color: #475569; margin-top: 6px; }
.theme-dark .bm-views-active { background: #111a2e; border-color: #1e293b; color: #aab6ff; }

/* (2) Botão "Visões" ativo (há uma visão aplicada) */
.bm-views-btn.bm-views-on {
	background: var(--bm-primary, #2B2F6E) !important; color: #fff !important; border-color: var(--bm-primary, #2B2F6E) !important;
}
.bm-views-btn.bm-views-on .ui-button-text, .bm-views-btn.bm-views-on .ui-icon { color: #fff !important; }

/* (3) Tabela se adapta ao conteúdo; se exceder, rola na horizontal */
.bm-list-table .ui-datatable-tablewrapper { overflow-x: auto; }
.bm-list-table table { min-width: 100%; }

/* Editar com IA no peek */
.bm-peek-ia-input { margin-bottom: 8px; width: 100% !important; box-sizing: border-box; }
/* Sinal SUTIL de campo alterado pela IA: leve acento violeta + faísca discreta no rótulo,
   com um realce que esvanece uma vez. "Imperceptível" de propósito — só um lembrete. */
.bm-dyn-field.bm-ia-touched .bm-dyn-input { box-shadow: inset 2px 0 0 rgba(139,92,246,.45); border-radius: 4px; animation: bmIaTouch 2.4s ease-out 1; }
.bm-dyn-field.bm-ia-touched .bm-dyn-label > .ui-outputlabel::after { content: " \2727"; color: #8b5cf6; font-size: 10px; opacity: .65; vertical-align: middle; }
@keyframes bmIaTouch { 0% { background: rgba(139,92,246,.12); } 100% { background: transparent; } }
.bm-peek-ia-acts { display: flex; gap: 8px; }
.bm-peek-sug { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.bm-peek-sug-item { display: flex; align-items: center; gap: 8px; font-size: 12.5px; }
.bm-peek-sug-label { font-weight: 600; color: #475569; }
.bm-peek-sug-val { color: #94a3b8; }
.bm-peek-sug-val strong { color: #1e293b; }
.bm-peek-sug-val .pi { font-size: 9px; margin: 0 2px; }
.bm-peek-ia-apply { margin-top: 4px; align-self: flex-start; }
.theme-dark .bm-peek-sug-val strong { color: #e2e8f0; }

/* "Seguindo" — sino destacado (o estado antes sumia por usar ícone inválido) */
.bm-seguir-btn.bm-seguir-on { background: var(--bm-primary, #2B2F6E) !important; border-color: var(--bm-primary, #2B2F6E) !important; }
.bm-seguir-btn.bm-seguir-on .ui-icon, .bm-seguir-btn.bm-seguir-on .pi { color: #fff !important; }

/* Colunas só-para-export (xlsx/pdf): ocultas na tela, mas exportadas com texto limpo */
.bm-list-table th.bm-export-only, .bm-list-table td.bm-export-only { display: none !important; }

/* Toggle Lista/Cartões — destacado quando em cartões */
/* Botão "ver como cartões/lista" só com ícone (texto vira tooltip que muda por visão). */
.bm-viewtoggle-icon.ui-button { width: 36px; padding-left: 0 !important; padding-right: 0 !important; }
.bm-viewtoggle-icon.ui-button .ui-button-text { display: none !important; }
.bm-viewtoggle-icon.ui-button .ui-icon, .bm-viewtoggle-icon.ui-button .ui-button-icon-left { margin: 0 !important; left: auto !important; position: static !important; }
/* Visão de cartões ativa: ícone destacado em azul (sem fundo cheio). */
.bm-viewtoggle-on.ui-button { background: rgba(39,55,127,.10) !important; border-color: var(--bm-primary, #2B2F6E) !important; }
.bm-viewtoggle-on.ui-button .ui-button-text, .bm-viewtoggle-on.ui-button .ui-icon, .bm-viewtoggle-on.ui-button .ui-button-icon-left { color: var(--bm-primary, #2B2F6E) !important; }

/* ===== Modo CARTÕES (dataGrid lazy) ===== */
.bm-cardgrid .ui-datagrid-content { background: transparent !important; border: 0 !important; padding: 0 !important; }
/* neutraliza paddings/larguras herdados do grid do PrimeFaces (deixa o card mandar) */
.bm-cardgrid [class*="ui-grid-col"], .bm-cardgrid [class*="ui-g-"] { padding: 7px !important; }
.bm-card {
	background: #fff; border: 1px solid #eef2f7; border-radius: 14px; padding: 14px 16px;
	display: flex; flex-direction: column; gap: 10px; box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
	height: 100%; box-sizing: border-box;
}
.bm-card-fav { border-color: #fde68a; background: #fffdf5; }
.bm-card-top { display: flex; align-items: flex-start; gap: 10px; }
.bm-card-titlewrap { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bm-card-sub { font-size: 12px; color: #64748b; }
.bm-card-top .bm-row-flags { flex: 0 0 auto; }
.bm-card-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
.bm-card-field { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.bm-card-flabel { font-size: 10px; text-transform: uppercase; letter-spacing: .03em; color: #94a3b8; }
.bm-card-fval { font-size: 13px; color: #1e293b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-card-actions { display: flex; gap: 4px; justify-content: flex-end; border-top: 1px solid #f1f5f9; padding-top: 8px; margin-top: 2px; }
.bm-card-edit { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 6px; color: #64748b; }
.bm-card-edit:hover { background: #eef2ff; color: #4650D4; }
.theme-dark .bm-card { background: #0f172a; border-color: #1e293b; }
.theme-dark .bm-card-fav { background: #1e1707; border-color: #5a470f; }
.theme-dark .bm-card-fval { color: #e2e8f0; }
@media (max-width: 640px) { .bm-card-fields { grid-template-columns: 1fr; } }

/* (#3) Botões em lote (lixeira/restaurar/excluir def.) no tamanho do "Novo" */
.bm-bulk-btn.ui-button { padding: 7px 13px !important; font-size: 13px !important; }
.bm-bulk-btn .ui-button-text { font-size: 13px !important; }

/* (#2) Peek: ações quebram linha e botões compactos — sem scroll horizontal */
.ui-sidebar.bm-peek { overflow-x: hidden !important; }
/* Peek um pouco mais largo: dá folga ao editor "Editar com IA" (textarea w-full). */
.ui-sidebar-right.bm-peek, .ui-sidebar.bm-peek { width: 460px !important; max-width: 94vw !important; }
.bm-peek-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.bm-peek-actions .ui-button, .bm-peek-actions .bm-peek-edit {
	padding: 7px 12px !important; font-size: 12.5px !important;
}
.bm-peek-edit { font-size: 12.5px !important; }

/* (#1) Diálogo "Colunas": um pouco maior + rodapé compacto que não quebra */
.bm-colunas-dialog.ui-dialog { width: 520px !important; max-width: 96vw !important; }
.bm-colunas-footer { flex-wrap: wrap; }
.bm-colunas-footer .ui-button { padding: 7px 12px !important; font-size: 12.5px !important; }
.bm-colunas-footer .ui-button .ui-button-text { font-size: 12.5px !important; }
.bm-colunas-acts .ui-button { width: 26px; height: 26px; padding: 0 !important; }

/* Editar em massa: ícone no cabeçalho da coluna (sutil; destaca no hover) */
.bm-col-head { display: inline-flex; align-items: center; gap: 6px; }
/* Lápis de "editar em massa": só aparece quando há linha selecionada (.bm-has-sel ligado por JS). */
.bm-col-bulk-btn { display: none !important; color: #cbd5e1 !important; opacity: .5; border-radius: 6px; padding: 3px 5px; transition: opacity .15s, color .15s, background .15s; }
.bm-list-table.bm-has-sel .bm-col-bulk-btn { display: inline-flex !important; }
/* durante o tour guiado, revela os lápis mesmo sem seleção (só p/ o passo de edição em massa). */
.bm-list-table.bm-tour-bulk .bm-col-bulk-btn { display: inline-flex !important; }
.bm-list-table.bm-has-sel thead th:hover .bm-col-bulk-btn { opacity: 1; }
.bm-col-bulk-btn:hover { color: var(--bm-primary, #4650D4) !important; background: rgba(100,116,139,.14) !important; }
.bm-col-bulk-btn i { font-size: 11px; }
.bm-bulk-field { margin: 12px 0; }

/* Diálogo "Colunas da listagem" (preferência do usuário) */
.bm-colunas-hint { font-size: 12px; color: #64748b; margin-bottom: 10px; }
.bm-colunas-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
/* Um único scroll para todo o conteúdo de preferências (colunas + cards + gráficos); footer fica fora. */
.bm-colunas-scroll { max-height: 58vh; overflow-y: auto; overflow-x: hidden; padding-right: 6px; }
.bm-colunas-item { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border: 1px solid #eef2f7; border-radius: 8px; background: #fff; }
.bm-colunas-item:hover { background: #f8fafc; }
.bm-colunas-nome { flex: 1; min-width: 0; font-size: 13px; color: #1e293b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-colunas-acts { display: inline-flex; gap: 2px; }
.bm-colunas-footer { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #eef2f7; }
.bm-colunas-spacer { flex: 1; }
.theme-dark .bm-colunas-item { background: #0f172a; border-color: #1e293b; }
.theme-dark .bm-colunas-nome { color: #e2e8f0; }

/* Histórico de alterações no peek: campo + de → para, com meta abaixo */
.bm-peek-hist li { flex-direction: column; align-items: flex-start; gap: 2px; }
.bm-peek-hist .bm-peek-mini-main { white-space: normal; }
.bm-peek-hist-de { color: #94a3b8; }
.bm-peek-hist-para { color: #1e293b; font-weight: 600; }
.bm-peek-hist .pi-arrow-right { font-size: 9px; color: #94a3b8; margin: 0 2px; }
.theme-dark .bm-peek-hist-para { color: #e2e8f0; }

/* Peek rola na vertical (antes ocultava as seções de baixo: movimentações/anexos/alterações) */
.ui-sidebar.bm-peek { overflow-y: auto !important; }
.ui-sidebar.bm-peek .ui-sidebar-content { overflow-y: auto; }
#mainForm\:peekPanel { padding-bottom: 28px; }

/* Seções do peek (visualizar): movimentações, anexos, anotações */
.bm-peek-sec { margin-top: 16px; border-top: 1px solid #eef2f7; padding-top: 12px; }
.bm-peek-sec-title { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .03em; color: #475569; margin-bottom: 8px; }
.bm-peek-sec-title i { color: #4650D4; }
.bm-peek-sec-count { background: #eef2ff; color: #4650D4; border-radius: 999px; padding: 0 7px; font-size: 11px; }
.bm-peek-sec-extra { margin-left: auto; font-weight: 600; text-transform: none; letter-spacing: 0; color: #334155; font-size: 11.5px; }
.bm-peek-mini-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.bm-peek-mini-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12.5px; }
.bm-peek-mini-main { color: #1e293b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-peek-mini-main i { color: #64748b; margin-right: 4px; }
.bm-peek-mini-meta { color: #94a3b8; font-size: 11px; white-space: nowrap; }
.bm-peek-mini-more { color: #94a3b8; font-size: 11.5px; margin-top: 6px; }
.theme-dark .bm-peek-sec { border-top-color: #1e293b; }
.theme-dark .bm-peek-mini-main { color: #e2e8f0; }
.bm-density-compact .bm-form-section-title { margin: 10px 2px 6px; padding-bottom: 3px; }

/* ===================== Refinamento da casca: topbar consolidado + menu recolhível ===================== */
/* Copiloto no topbar (acento violeta). */
/* Copiloto no topbar: ícone branco como os demais botões do header (sem violeta sobre o azul). */
.bm-topbar-cop.ui-button {
	background: linear-gradient(135deg, var(--bm-copiloto, #8b5cf6), var(--bm-copiloto-2, #6d28d9)) !important;
	border-color: var(--bm-copiloto-2, #6d28d9) !important;
}
.bm-topbar-cop.ui-button:hover { filter: brightness(1.06); }
.bm-topbar-cop.ui-button, .bm-topbar-cop.ui-button .ui-button-icon-left { color: #ffffff !important; }

/* Gatilho do menu de conta (avatar ▾). */
.bm-user-wrapper { position: relative; }
.bm-user-trigger { display: inline-flex; align-items: center; gap: 10px; background: none; border: none; cursor: pointer; padding: 4px 8px; border-radius: 12px; transition: background .15s; }
.bm-user-trigger:hover { background: rgba(148,163,184,.14); }
.bm-user-trigger-info { text-align: left; line-height: 1.1; }
.bm-user-trigger-info strong { display: block; color: var(--bm-text, #1e293b); font-size: 13.5px; font-weight: 800; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-user-trigger-info span { display: block; color: var(--bm-muted, #64748b); font-size: 11.5px; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-user-caret { color: var(--bm-muted, #94a3b8); font-size: 12px; }

/* Painel do menu de conta. */
.bm-user-menu.ui-overlaypanel { width: 280px; padding: 0; border-radius: 14px; }
.bm-user-menu .ui-overlaypanel-content { padding: 0 !important; max-height: 85vh; overflow-y: auto; overflow-x: hidden; }
.bm-user-menu-head { display: flex; align-items: center; gap: 12px; padding: 16px; border-bottom: 1px solid var(--bm-border, #eef2f7); }
.bm-user-menu-avatar { width: 44px; height: 44px; flex: 0 0 auto; }
.bm-user-menu-id { min-width: 0; }
.bm-user-menu-id strong { display: block; color: var(--bm-text, #1e293b); font-size: 14px; font-weight: 800; }
.bm-user-menu-empresa { display: block; color: var(--bm-primary, #4650D4); font-size: 12px; font-weight: 600; }
.bm-user-menu-email { display: block; color: var(--bm-muted, #94a3b8); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-user-menu-empresarow { display: flex; align-items: center; gap: 8px; padding: 10px 16px; color: var(--bm-muted, #64748b); }
.bm-user-menu-empresasel { flex: 1; }
.bm-user-menu-sep { height: 1px; background: var(--bm-border, #eef2f7); margin: 4px 0; }
.bm-user-menu-grouptitle { padding: 6px 16px 2px; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--bm-muted, #94a3b8); }
/* Item do menu: botão/link/commandButton uniformes. */
.bm-user-menu-item, .bm-user-menu-item.ui-button {
	display: flex !important; align-items: center; gap: 10px; width: 100%; box-sizing: border-box;
	padding: 10px 16px !important; background: none !important; border: none !important; box-shadow: none !important;
	color: var(--bm-text, #334155) !important; font-size: 13.5px !important; font-weight: 600 !important;
	text-align: left; justify-content: flex-start !important; cursor: pointer; border-radius: 0 !important;
}
.bm-user-menu-item:hover, .bm-user-menu-item.ui-button:hover { background: rgba(148,163,184,.14) !important; }
.bm-user-menu-item .ui-button-text { font-weight: 600 !important; padding: 0 !important; }
.bm-user-menu-item i, .bm-user-menu-item .ui-button-icon-left { color: var(--bm-muted, #64748b) !important; font-size: 14px; }
/* p:commandButton posiciona o ícone como absolute (tema PF) — força flex p/ alinhar com os <button> nativos */
.bm-user-menu-item .ui-button-icon-left { position: static !important; left: auto !important; top: auto !important; margin: 0 !important; }
.bm-user-menu-item i, .bm-user-menu-item .ui-button-icon-left { width: 16px; text-align: center; flex: 0 0 16px; }
.bm-user-menu-logout, .bm-user-menu-logout.ui-button { color: #dc2626 !important; }
.bm-user-menu-logout i, .bm-user-menu-logout .ui-button-icon-left { color: #dc2626 !important; }
.theme-dark .bm-user-menu-head, .theme-dark .bm-user-menu-sep { border-color: #1e293b; }

/* Menu lateral: seções de módulo recolhíveis. */
button.sidebar-section-title { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: none; cursor: pointer; text-align: left; }
.sidebar-sec-caret { font-size: 11px; transition: transform .18s; opacity: .7; }
.sidebar-section.collapsed .sidebar-sec-caret { transform: rotate(-90deg); }
.sidebar-section.collapsed .sidebar-section-body { display: none; }
/* linha-guia vertical do submódulo aberto (alinhamento estilo Asaas) — só no menu expandido */
body:not(.sidebar-collapsed) .sidebar-section-body { border-left: 2px solid var(--bm-border); margin-left: 20px; padding-left: 4px; }
.sidebar-maisusadas .sidebar-recentes-titulo .pi { color: #7c3aed; font-size: 11px; margin-right: 4px; }

/* ===================== Polish: Notificações (fundo sólido + gradiente + dark) ===================== */
.bm-notif-panel.ui-overlaypanel {
	width: 380px !important; max-height: 470px; overflow: hidden !important;
	background: var(--bm-surface, #fff) !important; border-radius: 16px !important;
	border: 1px solid var(--bm-border, #e2e8f0) !important; box-shadow: 0 16px 48px rgba(15,23,42,.22) !important; padding: 0 !important;
}
/* remove a seta/caret padrão do PrimeFaces (origem do "quebrado") */
.bm-notif-panel.ui-overlaypanel:before, .bm-notif-panel.ui-overlaypanel:after { display: none !important; }
.bm-notif-panel .ui-overlaypanel-content { padding: 0 !important; max-height: 470px; overflow-y: auto; }
.bm-notif-header {
	background: linear-gradient(135deg, var(--bm-primary, #4650D4), #6d28d9) !important;
	border: none !important; border-radius: 16px 16px 0 0 !important; padding: 14px 18px !important;
	position: sticky; top: 0; z-index: 2;
}
.bm-notif-header strong { color: #fff !important; font-weight: 800; display: inline-flex; align-items: center; gap: 8px; }
.bm-notif-header strong .pi { font-size: 15px; }
.bm-notif-mark-all { color: #fff !important; opacity: .92; }
.bm-notif-mark-all:hover { opacity: 1; }
.bm-notif-item { gap: 12px; padding: 13px 18px; align-items: center; }
.bm-notif-item:hover { background: rgba(79,107,255,.07); }
/* o "dot" virou bolha de ícone */
.bm-notif-item-dot {
	width: 36px; height: 36px; min-width: 36px; border-radius: 11px; margin: 0; background: none;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, rgba(79,107,255,.16), rgba(109,40,217,.16));
}
.bm-notif-item-dot .pi { color: var(--bm-primary, #4650D4); font-size: 15px; }
.bm-notif-item-text { font-weight: 600; }
.bm-notif-item-dismiss { opacity: 0; }
.bm-notif-item-dismiss:hover { color: #fff !important; background: var(--bm-success, #22c55e) !important; }
.theme-dark .bm-notif-panel.ui-overlaypanel { background: #0f172a !important; border-color: #1e293b !important; }
.theme-dark .bm-notif-item { border-color: #1e293b !important; }
.theme-dark .bm-notif-item:hover { background: rgba(124,58,237,.14); }
.theme-dark .bm-notif-item-text { color: #e2e8f0 !important; }

/* ===================== Polish: Meu Plano (card gradiente + barras) ===================== */
.plan-current-card {
	background: linear-gradient(135deg, rgba(79,107,255,.10), rgba(109,40,217,.08)) !important;
	border: 1px solid rgba(109,40,217,.22) !important; border-left: 4px solid var(--bm-primary, #6d28d9) !important;
	border-radius: 14px !important; padding: 18px 20px !important;
}
.plan-current-icon { color: #6d28d9 !important; }
.plan-current-name { font-weight: 850; }
.usage-bar-track { height: 9px !important; border-radius: 6px !important; background: rgba(148,163,184,.25) !important; }
.usage-bar-fill { background: linear-gradient(90deg, var(--bm-primary, #4650D4), #6d28d9) !important; border-radius: 6px !important; transition: width .5s ease; }
.usage-bar-value { font-weight: 700; font-size: 12px; }
.plan-feature-list li.feature-yes i { color: #22c55e; }
.plan-feature-list li.feature-no i { color: #cbd5e1; }
.theme-dark .plan-current-card { background: linear-gradient(135deg, rgba(79,107,255,.16), rgba(109,40,217,.14)) !important; border-color: #3b2a6b !important; }

/* DatePicker (campo de data) no tema escuro: o input não pode ficar branco. */
.theme-dark .ui-datepicker-input,
.theme-dark .ui-datepicker .ui-inputtext,
.theme-dark .ui-datepicker.ui-inputwrapper input,
.theme-dark span.ui-datepicker > input {
	background: #0f172a !important; color: #e2e8f0 !important; border-color: #1e293b !important;
}
.theme-dark .ui-datepicker.ui-inputwrapper { background: transparent !important; }

/* Diálogo "Alterar senha" */
.bm-senha-body .field-group { margin-bottom: 14px; display: flex; flex-direction: column; gap: 6px; }
.bm-senha-body .ui-password, .bm-senha-body .ui-password input { width: 100% !important; }
.bm-senha-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 8px; }

/* "Próximas ações" na coluna estreita do bottom grid: empilha vertical (não desperdiça linha). */
.dash-actions-grid-stack { grid-template-columns: 1fr !important; gap: 8px; }

/* Host do badge de notificações: sempre renderizado (p/ AJAX limpar quando zera), sem ocupar caixa. */
.bm-notif-badge-host { display: contents; }

/* ===== Rodapé global da plataforma ===== */
.bm-appfooter { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
	margin-top: 28px; padding: 14px 4px 6px; border-top: 1px solid var(--bm-border, #eef2f7); }
.bm-appfooter-brand { display: flex; align-items: center; gap: 10px; }
.bm-appfooter-logo { height: 18px; width: auto; opacity: .85; }
.bm-appfooter-copy { color: var(--bm-muted, #94a3b8); font-size: 12px; }
.bm-appfooter-links { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.bm-appfooter-link { display: inline-flex; align-items: center; gap: 6px; background: none; border: none; cursor: pointer;
	color: var(--bm-muted, #64748b); font-size: 12.5px; font-weight: 600; padding: 6px 10px; border-radius: 8px;
	text-decoration: none; transition: background .15s, color .15s; }
.bm-appfooter-link:hover { background: rgba(148,163,184,.14); color: var(--bm-primary, #4650D4); }
.bm-appfooter-ver { background: var(--bm-primary, #4650D4); color: #fff; font-size: 10.5px; font-weight: 800;
	padding: 1px 7px; border-radius: 999px; letter-spacing: .02em; }
.theme-dark .bm-appfooter { border-color: #1e293b; }

/* ===== Diálogo "Novidades da plataforma" ===== */
.bm-novidades-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: var(--bm-muted, #64748b); font-size: .9rem; }
.bm-novidades-ver { background: linear-gradient(135deg,#4650D4,#6d28d9); color: #fff; font-weight: 800; font-size: .8rem;
	padding: 4px 12px; border-radius: 999px; flex: 0 0 auto; }
.bm-novidades-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.bm-novidades-list li { display: flex; gap: 10px; align-items: flex-start; }
.bm-novidades-list li > i { color: #16a34a; margin-top: 2px; font-size: 1rem; }
.bm-novidades-list li div { display: flex; flex-direction: column; }
.bm-novidades-list li strong { color: var(--bm-text, #1e293b); font-size: .92rem; }
.bm-novidades-list li span { color: var(--bm-muted, #64748b); font-size: .83rem; line-height: 1.35; }
.bm-novidades-foot { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--bm-border, #eef2f7);
	display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.bm-novidades-foot > span { color: var(--bm-muted, #64748b); font-size: .82rem; display: flex; align-items: center; gap: 6px; }
.bm-novidades-cta { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; padding: 8px 14px; border-radius: 10px; white-space: nowrap; }
.theme-dark .bm-novidades-foot { border-color: #1e293b; }
.theme-dark .bm-novidades-list li strong { color: #e2e8f0; }
.bm-feedback-intro { display: flex; align-items: flex-start; gap: 8px; margin: 0 0 14px; padding: 10px 12px;
	background: rgba(79,107,255,.08); border-radius: 10px; color: var(--bm-muted, #64748b); font-size: .85rem; line-height: 1.4; }
.bm-feedback-intro i { color: var(--bm-primary, #4650D4); margin-top: 2px; }

/* "Ver todas" no painel de atividade recente do dashboard */
.dash-vertodas { display: inline-flex; align-items: center; gap: 6px; margin: 8px 16px 14px; padding: 6px 10px;
	font-size: .82rem; font-weight: 700; color: var(--bm-primary, #4650D4); text-decoration: none; border-radius: 8px; }
.dash-vertodas:hover { background: rgba(79,107,255,.10); }
.theme-dark .dash-vertodas:hover { background: rgba(79,107,255,.18); }
/* hover dos KPIs perceptível também no tema escuro (a sombra clara some no escuro) */
.theme-dark .dash-kpi-link .dash-kpi-card:hover { box-shadow: 0 10px 28px rgba(0,0,0,.45); border-color: #334155; }
/* Badge "Duplicado — revise e salve" no cabeçalho do form (após acionar Duplicar) */
.bm-dup-badge { display: inline-block; margin-left: 10px; padding: 2px 10px; font-size: .72rem;
	font-weight: 700; letter-spacing: .02em; text-transform: uppercase; vertical-align: middle;
	color: #92400e; background: #fef3c7; border: 1px solid #fcd34d; border-radius: 999px; }
.theme-dark .bm-dup-badge { color: #fde68a; background: rgba(180,120,10,.18); border-color: #b45309; }

/* Preferências: seção das tabelas-detalhe (campos agrupados do mestre-detalhe) */
.bm-prefs-detail { border-top: 1px dashed var(--bm-border, #e2e8f0); margin-top: 12px; padding-top: 10px; }
.bm-prefs-detail-head { display: flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700;
	text-transform: uppercase; letter-spacing: .03em; color: var(--bm-primary, #4650D4); margin-bottom: 8px; }
.theme-dark .bm-prefs-detail { border-top-color: #334155; }

/* Marcador de tela já migrada para o template novo (acompanhamento visual no menu) */
.menu-migrada-badge { display: none; margin-left: auto; font-size: .72rem; color: #16a34a; flex: 0 0 auto; }
.menu-link.menu-migrada .menu-migrada-badge { display: inline-flex; }
.menu-link.menu-migrada .menu-text { font-weight: 600; }
.theme-dark .menu-migrada-badge { color: #4ade80; }

/* Botão de fechar (X) padrão dos painéis de análise de IA (canto superior direito). */
.bm-ia-close.ui-button { background: transparent !important; border: none !important; color: #94a3b8 !important; width: 28px !important; height: 28px !important; min-width: 28px !important; padding: 0 !important; box-shadow: none !important; border-radius: 8px !important; flex: 0 0 auto; }
.bm-ia-close.ui-button:hover { background: rgba(100,116,139,.14) !important; color: #475569 !important; }
.bm-ia-close .ui-button-text { display: none !important; }

/* === Ações da linha (lista): alinhar o link <a> de editar com os botões (ui-button) === */
.bm-list-table .bm-row-actions { align-items: center; }
.bm-list-table .bm-row-actions .bm-act-ico,
.bm-list-table .bm-row-actions a.bm-act-ico {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; padding: 0; border-radius: 6px;
	color: var(--bm-text-soft, #64748b); text-decoration: none; box-sizing: border-box;
}
.bm-list-table .bm-row-actions a.bm-act-ico:hover { background: rgba(100,116,139,.14); color: var(--bm-primary, #4650D4); }
.bm-list-table .bm-row-actions .bm-act-ico .ui-button-icon,
.bm-list-table .bm-row-actions a.bm-act-ico > .pi { margin: 0; font-size: 14px; }
.bm-card-actions .bm-act-ico, .bm-card-actions a.bm-act-ico {
	display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px;
	border-radius: 6px; text-decoration: none; color: var(--bm-text-soft, #64748b); }

/* === Editar com IA no peek: destaque visual do bloco === */
.bm-peek-sec.bm-peek-ia {
	background: linear-gradient(135deg, rgba(139,92,246,.10), rgba(79,107,255,.06));
	border: 1px solid rgba(139,92,246,.30); border-radius: 12px; padding: 14px;
}
.bm-peek-sec.bm-peek-ia .bm-peek-sec-title { color: #7c3aed; }
.theme-dark .bm-peek-sec.bm-peek-ia {
	background: linear-gradient(135deg, rgba(139,92,246,.18), rgba(79,107,255,.10));
	border-color: rgba(167,139,250,.40);
}
.theme-dark .bm-peek-sec.bm-peek-ia .bm-peek-sec-title { color: #c4b5fd; }

/* === #4 Preferência de colunas do form: força o nº de colunas pela classe (robusto) === */
.bm-dyn-grid.bm-cols-1 { grid-template-columns: minmax(0,1fr) !important; }
.bm-dyn-grid.bm-cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
.bm-dyn-grid.bm-cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
@media (max-width: 820px) {
	.bm-dyn-grid.bm-cols-1, .bm-dyn-grid.bm-cols-2, .bm-dyn-grid.bm-cols-3 { grid-template-columns: 1fr !important; }
}

/* === #1 Ações da linha: neutras por padrão, cor só no hover (azul/vermelho não "gritam") === */
.bm-list-table .bm-row-actions .ui-button,
.bm-list-table .bm-row-actions a.bm-act-ico {
	background: transparent !important; border: none !important; box-shadow: none !important;
	color: var(--bm-text-soft, #64748b) !important;
}
.bm-list-table .bm-row-actions .ui-button:hover,
.bm-list-table .bm-row-actions a.bm-act-ico:hover { background: rgba(100,116,139,.12) !important; }
.bm-list-table .bm-row-actions .ui-button:not(.bm-act-trash):hover,
.bm-list-table .bm-row-actions a.bm-act-ico:hover { color: var(--bm-primary, #4650D4) !important; }
.bm-list-table .bm-row-actions .bm-act-trash:hover { color: #e5484d !important; background: rgba(229,72,77,.10) !important; }

/* === #2 Peek: botões do cabeçalho alinhados (editar-com-IA, abrir/editar) === */
.bm-peek-headacts { display: inline-flex; gap: 6px; align-items: center; }
.bm-peek-headacts .ui-button, .bm-peek-headacts a.bm-act-ico {
	display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
	border-radius: 8px; color: var(--bm-text-soft, #64748b); text-decoration: none; background: transparent; border: none; box-shadow: none;
}
.bm-peek-headacts .ui-button:hover, .bm-peek-headacts a.bm-act-ico:hover { background: rgba(100,116,139,.12); color: var(--bm-primary, #4650D4); }

/* Toolbar do cabeçalho da grade de detalhe (tour + novo) */
.bm-child-toolbar { display: inline-flex; align-items: center; gap: 6px; }

/* #11 — Painel "Preencher com IA" dentro do diálogo do detalhe */
.bm-dlg-ia { margin-bottom: 14px; padding: 12px 14px; border-radius: 10px;
    background: linear-gradient(135deg, rgba(124,58,237,.08), rgba(37,99,235,.06));
    border: 1px solid rgba(124,58,237,.22); }
.bm-dlg-ia .bm-peek-ia-title { display: flex; align-items: center; gap: 6px; font-weight: 600;
    font-size: .82rem; color: #6d28d9; margin-bottom: 8px; }
.bm-dlg-ia .bm-dlg-ia-txt { width: 100%; }
.bm-dlg-ia .bm-dlg-ia-acts { display: flex; justify-content: flex-end; margin-top: 8px; }

/* Detalhe: barra de ações em lote (aparece com seleção) */
.bm-child-bulk { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    margin: 8px 0 10px; padding: 8px 12px; border-radius: 10px;
    background: rgba(79,107,255,.08); border: 1px solid rgba(79,107,255,.22); }
.bm-child-bulk-count { font-size: .85rem; color: #334155; }
.bm-child-bulk-acts { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.bm-child-grid .bm-child-sel { text-align: center; }

/* Menu "..." (overflow) do form: com muitas opções, não estourar a tela — rola dentro do painel */
.ui-menu.ui-menu-dynamic { max-height: 72vh; overflow-y: auto; overflow-x: hidden; }
.bm-overflow-btn + .ui-menu-dynamic,
.ui-menubutton .ui-menu-dynamic { max-height: 72vh; overflow-y: auto; }

/* Menu "..." (overflow) do form: um pouco mais largo + itens em linha única (não quebrar) */
.ui-menu.ui-menu-dynamic { min-width: 260px; }
.ui-menu.ui-menu-dynamic .ui-menuitem-link { white-space: nowrap; }
.ui-menu.ui-menu-dynamic .ui-menuitem-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Lixeira com registros pendentes: item do menu "..." em destaque (âmbar) */
.ui-menu.ui-menu-dynamic .bm-menuitem-lixeira-cheia .ui-menuitem-link { font-weight: 600; }
.ui-menu.ui-menu-dynamic .bm-menuitem-lixeira-cheia .ui-menuitem-text,
.ui-menu.ui-menu-dynamic .bm-menuitem-lixeira-cheia .ui-menuitem-icon { color: #b45309 !important; }

/* Detalhe: busca + export no cabeçalho da grade (padrão do list do mestre) */
.bm-child-search { display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; height: 34px;
    border: 1px solid var(--bm-border, #e2e8f0); border-radius: 8px; background: #fff; }
.bm-child-search > .pi { color: #94a3b8; font-size: 13px; }
.bm-child-search-input.ui-inputfield { border: none !important; box-shadow: none !important; padding: 0 !important; width: 160px; height: 30px; }
.bm-child-export.ui-button { height: 34px; }

/* Chip indicando a VISÃO aplicada (abaixo da toolbar, junto dos filtros) */
.bm-chip.bm-chip-view { background: rgba(124,58,237,.10); border-color: rgba(124,58,237,.30); color: #6d28d9; font-weight: 600; }
.bm-chip.bm-chip-view .pi-bookmark-fill { color: #7c3aed; }

/* Detalhe no padrão do mestre: título (com explicação) acima + toolbar em UMA linha */
.detail-tab-title { margin: 2px 0 10px; }
.detail-tab-title h3 { margin: 0; font-size: 1.05rem; font-weight: 700; color: var(--bm-text, #1e293b); }
.detail-tab-title .detail-tab-sub { font-weight: 400; font-size: .85rem; color: var(--bm-text-soft, #64748b); }
.bm-child-toolbar { display: flex !important; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.bm-child-toolbar-spacer { flex: 1 1 auto; }

/* Busca do detalhe maior (estava estreita) */
.bm-child-search { flex: 0 1 340px; min-width: 240px; height: 38px; }
.bm-child-search-input.ui-inputfield { width: 100% !important; flex: 1 1 auto; }

/* Detalhe: lápis de edição em massa no cabeçalho da coluna (revelado no hover, igual ao mestre) */
.bm-child-grid thead th .bm-col-bulk-btn { opacity: 0; margin-left: 6px; border-radius: 6px; padding: 3px 5px; transition: opacity .12s, background .15s, color .15s; color: #64748b; }
.bm-child-grid thead th:hover .bm-col-bulk-btn { opacity: 1; }
.bm-child-grid thead th .bm-col-bulk-btn:hover { color: var(--bm-primary, #4650D4); background: rgba(100,116,139,.14); }
.bm-lote-campofixo { font-weight: 600; color: #1e293b; }

/* ===== Base tipográfica UNIFICADA — leve redução p/ um visual coeso em todo o sistema
   (menu, header, footer, list, form, dashboard, relatórios). Títulos/labels com px próprio
   mantêm a hierarquia; este é só o tamanho-base herdado pelos componentes. ===== */
body, body .ui-widget { font-size: 13px; }
body .ui-inputfield, body .ui-selectonemenu, body .ui-button .ui-button-text,
body .ui-datatable, body .ui-panel, body .ui-dialog .ui-dialog-content { font-size: 13px; }

/* ===== Filtros personalizados + Visões salvas das abas de DETALHE ===== */
.bm-detalhe-filtros-pop { max-width: 360px; }
.bm-detalhe-filtros { min-width: 300px; max-height: 60vh; overflow-y: auto; padding: 4px 2px; }
.bm-detalhe-filtro-row { margin-bottom: 8px; }
.bm-detalhe-filtro-lbl { display: block; font-size: 12px; color: #64748b; margin-bottom: 3px; font-weight: 600; }
.bm-views-saved .bm-view-row { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.bm-views-saved .bm-view-row > .ui-commandlink:first-child { flex: 1; font-weight: 600; color: var(--bm-primary, #4650D4); cursor: pointer; }
.bm-view-qtd { font-size: 11px; background: rgba(100,116,139,.14); color: #475569; border-radius: 10px; padding: 1px 7px; }
.bm-view-del { color: #94a3b8; }
.bm-view-del:hover { color: #ef4444; }
.bm-views-saveline { display: flex; gap: 6px; align-items: center; margin: 10px 0 4px; }
.bm-detalhe-filtros .bm-prefs-grupo { margin: 6px 0 4px; font-size: 12px; font-weight: 700; color: #334155; }

/* ===== Timeline da auditoria agrupada por DATA ===== */
.bm-audit-hist-daygroup { list-style: none; margin: 0 0 6px; padding: 0; }
.bm-audit-hist-day {
    display: flex; align-items: center; justify-content: space-between;
    position: sticky; top: 0; z-index: 1;
    font-size: 11px; font-weight: 700; color: #475569; text-transform: uppercase; letter-spacing: .03em;
    background: linear-gradient(180deg, var(--bm-bg, #fff), rgba(255,255,255,.7));
    padding: 5px 2px 4px; margin-top: 4px;
    border-bottom: 1px solid rgba(100,116,139,.16);
}
.bm-audit-hist-daycount {
    font-size: 10px; font-weight: 700; color: #64748b;
    background: rgba(100,116,139,.14); border-radius: 10px; padding: 0 7px;
}
.bm-audit-hist-sublist { list-style: none; margin: 4px 0 0; padding: 0; }

/* ===== Filtros das abas de detalhe: rail SIDEBAR à esquerda + tabela à direita (igual ao list) ===== */
.bm-child-shell { display: flex; align-items: flex-start; }
.bm-child-rail-slot { display: none; flex: 0 0 auto; }                       /* oculto por padrão (igual ao list colapsado) */
.bm-child-shell.bm-child-rail-open .bm-child-rail-slot { display: block; }   /* "Exibir filtros" → sidebar à esquerda */
.bm-child-main { flex: 1 1 auto; min-width: 0; } /* a tabela ocupa o resto, na MESMA linha */
.bm-child-filter-rail { width: 240px; margin-right: 14px; background: #fff; border: 1px solid #eef2f7; border-radius: 12px; padding: 14px; position: sticky; top: 12px; }
.theme-dark .bm-child-filter-rail { background: #0f172a; border-color: #1e293b; }
.bm-child-filter-rail .bm-rail-head { display: flex; align-items: center; justify-content: space-between; font-weight: 700; color: #334155; font-size: 13px; margin-bottom: 12px; }
.bm-child-filter-rail .bm-rail-collapse { color: #94a3b8; cursor: pointer; }
.bm-child-filter-fields { display: flex; flex-direction: column; gap: 10px; }
.bm-child-filter-fields .bm-rail-field label { display: block; font-size: 12px; font-weight: 600; color: #64748b; margin-bottom: 3px; }
.bm-child-filter-rail .bm-rail-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
@media (max-width: 900px) { .bm-child-shell { flex-direction: column; } .bm-child-filter-rail { width: 100%; margin: 0 0 10px; position: static; } }

/* ===== Criar item do detalhe por IA, direto do peek ===== */
.bm-peek-iadet .bm-peek-sec-title { color: #6d28d9; }
.bm-peek-iadet-row { display: flex; gap: 6px; align-items: center; margin: 4px 0 10px; }
.bm-peek-iadet-row .ui-inputtext { flex: 1; }

/* ===== Linha da listagem com RASCUNHO não salvo (âmbar) ===== */
.bm-list-table tbody tr.bm-row-draft > td { background: rgba(245,158,11,.10) !important; }
.bm-list-table tbody tr.bm-row-draft > td:first-child { box-shadow: inset 3px 0 0 #f59e0b; }
.theme-dark .bm-list-table tbody tr.bm-row-draft > td { background: rgba(245,158,11,.16) !important; }

/* Filtro do detalhe está dentro do .form-shell, que aplica outline de foco nos inputs.
   Nos combos do rail isso somava ao foco próprio do PrimeFaces (parecia DOIS realces).
   O PF já indica o foco → removemos só o outline extra do form-shell aqui (igual ao list). */
.bm-child-filter-rail .ui-inputfield:focus-visible,
.bm-child-filter-rail .ui-selectonemenu:focus-visible,
.bm-child-filter-rail .ui-selectonemenu-label:focus-visible,
.bm-child-filter-rail .ui-autocomplete-input:focus-visible { outline: none !important; outline-offset: 0 !important; }

/* ===== MFA / 2FA (TOTP) ===== */
.bm-mfa-body { padding: 4px 2px; }
.bm-mfa-body p { color: #475569; font-size: 13px; margin: 6px 0; }
.bm-mfa-status { color: #16a34a !important; font-weight: 600; }
.bm-mfa-key { font-family: "Consolas", "Courier New", monospace; font-size: 20px; font-weight: 700;
    letter-spacing: 2px; background: rgba(100,116,139,.12); border-radius: 8px; padding: 10px 12px;
    text-align: center; user-select: all; margin: 6px 0 10px; color: #172554; }
.bm-mfa-uri { font-size: 11px !important; color: #94a3b8 !important; word-break: break-all; }
.theme-dark .bm-mfa-key { background: rgba(148,163,184,.16); color: #e2e8f0; }

/* Documentos legais renderizados (markdown → HTML): leitura confortável de termos/privacidade/DPA */
.bm-legal-doc { font-size: 13.5px; line-height: 1.6; color: #1e293b; }
.bm-legal-doc h1 { font-size: 20px; font-weight: 700; margin: 4px 0 12px; color: #0f172a; }
.bm-legal-doc h2 { font-size: 16px; font-weight: 700; margin: 16px 0 6px; color: #172554; }
.bm-legal-doc h3 { font-size: 14px; font-weight: 600; margin: 12px 0 4px; color: #334155; }
.bm-legal-doc h4, .bm-legal-doc h5, .bm-legal-doc h6 { font-size: 13px; font-weight: 600; margin: 10px 0 4px; }
.bm-legal-doc p { margin: 6px 0; }
.bm-legal-doc ul { margin: 6px 0 6px 4px; padding-left: 20px; }
.bm-legal-doc li { margin: 3px 0; }
.bm-legal-doc blockquote { border-left: 3px solid #cbd5e1; margin: 8px 0; padding: 2px 12px; color: #475569; background: rgba(148,163,184,.08); }
.bm-legal-doc strong { font-weight: 700; }
.theme-dark .bm-legal-doc { color: #e2e8f0; }
.theme-dark .bm-legal-doc h1, .theme-dark .bm-legal-doc h2, .theme-dark .bm-legal-doc h3 { color: #f1f5f9; }

/* ===== Correções de bugs reportados (devs) ===== */
/* Botão de lixeira: sem regra própria herdava o azul do .ui-button primário (Clientes, cards). */
.btn-icon-danger.ui-button { background: transparent !important; border-color: var(--bm-border, #e2e8f0) !important; box-shadow: none !important; }
.btn-icon-danger.ui-button .ui-icon, .btn-icon-danger.ui-button .pi { color: #dc2626 !important; }
.btn-icon-danger.ui-button:hover { background: rgba(220,38,38,.10) !important; border-color: #dc2626 !important; }

/* p:fileUpload avançado no tema escuro: a barra de botões (Choose/Upload/Cancel) e o painel ficavam claros. */
.theme-dark .ui-fileupload-buttonbar,
.theme-dark .ui-fileupload .ui-widget-header { background: var(--bm-surface-strong, #1e293b) !important; border-color: var(--bm-border, #334155) !important; color: var(--bm-text, #f8fafc) !important; }
.theme-dark .ui-fileupload-content,
.theme-dark .ui-fileupload .ui-widget-content { background: var(--bm-surface, #0f172a) !important; color: var(--bm-text, #f8fafc) !important; }

/* Header opaco/fixo já é tratado no bloco (2a) acima (.content > .topbar, com !important).
   Aqui fica só o offset de rolagem p/ âncora/validação não parar atrás do cabeçalho (agora ~104px). */
.content { scroll-padding-top: 120px !important; }

