/* ===== User Menu Popover ===== */
.ivatex-usermenu-header {
	padding: 1.25rem 1rem 0.75rem;
	border-bottom: 1px solid var(--sapGroup_ContentBorderColor, #e5e5e5);
	background-color: var(--sapList_HeaderBackground, #f7f7f7);
}

.ivatex-usermenu-email.sapMText {
	font-size: 0.75rem;
	color: var(--sapContent_LabelColor, #6a6d70);
}

.ivatex-usermenu-logout-list {
	border-top: 1px solid var(--sapGroup_ContentBorderColor, #e5e5e5);
}

.ivatex-usermenu-logout-item .sapMSLITitle {
	color: var(--sapNegativeColor, #bb0000) !important;
}

.ivatex-usermenu-logout-item .sapUiIcon {
	color: var(--sapNegativeColor, #bb0000) !important;
}

/* ===== Login Screen ===== */
.ivatex-login-bg {
	background-color: #1c2a3a;
	background-image:
		radial-gradient(ellipse at 20% 50%, rgba(0, 100, 217, 0.15) 0%, transparent 60%),
		radial-gradient(ellipse at 80% 20%, rgba(0, 100, 217, 0.10) 0%, transparent 50%);
}

.ivatex-login-card {
	background-color: var(--sapGroup_ContentBackground, #ffffff);
	border-radius: 0.25rem;
	width: 400px;
	box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.35);
	overflow: hidden;
}

.ivatex-login-header {
	padding: 1.25rem 1.75rem;
}

.ivatex-login-divider {
	height: 1px;
	background-color: var(--sapGroup_ContentBorderColor, #e5e5e5);
	width: 100%;
}

.ivatex-login-body {
	padding: 1.75rem 1.75rem 2rem;
}

.ivatex-login-title.sapMTitle {
	font-size: 1.375rem !important;
	font-weight: 600 !important;
	color: var(--sapTextColor, #1c2a3a) !important;
}

.ivatex-login-subtitle.sapMText {
	color: var(--sapContent_LabelColor, #6a6d70);
	font-size: 0.875rem;
	line-height: 1.4;
}

.ivatex-login-label.sapMLabelBase {
	font-size: 0.8125rem;
	color: var(--sapContent_LabelColor, #32363a);
	margin-bottom: 0.25rem;
	display: block;
}

.ivatex-login-footer.sapMText {
	color: var(--sapContent_LabelColor, #8c98a4);
	font-size: 0.75rem;
	text-align: center;
}

/* Remove margens e paddings para ToolHeader ficar completo */
.noMarginPadding {
	margin: 0 !important;
	padding: 0 !important;
}

/* Wrapper do conteúdo principal: largura máxima 1200px, centralizado */
.ivatex-page-wrap {
	max-width: 1200px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box !important;
}

/* Garante que o viewport seja coberto completamente pelo App */
html {
	height: 100%;
	overflow: hidden;
}

.sapUiBody {
	margin: 0 !important;
	padding: 0 !important;
	height: 100%;
	overflow: hidden;
	/* Horizon Morning define o body com a cor do shell (azul-acinzentado).
	   Em modo standalone sobrescrevemos para a cor padrão da aplicação */
	background-color: var(--sapBackgroundColor) !important;
}

/* O div que hospeda o componente precisa preencher o body completamente */
[data-sap-ui-component] {
	display: block;
	width: 100%;
	height: 100%;
}

/* Remove border-radius e box-shadow que o tema Horizon aplica ao App
   quando usado dentro de um FLP shell — desnecessário em modo standalone */
.sapMApp {
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* Garante que a View não tenha margens */
.sapUiView {
	margin: 0 !important;
	padding: 0 !important;
}

/* Previne re-renderizações do DynamicPage content */
.f-DynamicPage-content {
	overflow: visible !important;
}

/* Garante que o DynamicPage não corte o conteúdo */
.f-DynamicPage-content > .sapMScrollCont {
	overflow: visible !important;
}

.f-DynamicPage-content > .sapMScrollCont > .sapMScrollContScroll {
	overflow: visible !important;
}

/* Conteúdo do scroll: todos os blocos com a mesma largura e alinhamento.
   NÃO forçar width: 100% aqui — em VBox (flex column) os filhos já esticam
   para a largura disponível por padrão (align-items: stretch). Forçar width
   100% entra em conflito com margens horizontais (ex.: sapUiSmallMarginBeginEnd),
   pois border-box inclui padding mas NÃO inclui margin — gerando overflow à direita. */
.ivatex-scroll-content > .sapMFlexItem {
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* Padding-right no conteúdo do scroll — reserva espaço para a barra de rolagem
   e garante que o conteúdo não cole na borda direita em nenhuma página. */
.ivatex-scroll-content {
	padding-right: 1rem !important;
}

/* Painel Filtros: não estoura a largura e alinha com os cards abaixo */
.ivatex-filter-panel.sapMPanel {
	max-width: 100% !important;
	min-width: 0 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
.ivatex-filter-panel .sapMPanelContent {
	max-width: 100% !important;
	overflow-x: auto !important;
	box-sizing: border-box !important;
}
.sapUiMdcFilterBar {
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* Garante que os campos do FilterBar ocupem toda a largura disponível */
#__component0---main--filterbar .sapUiMdcFieldBase {
	width: 100% !important;
	min-width: 0 !important;
	flex: 1 1 auto !important;
	max-width: 100% !important;
}

#__component0---main--filterbar .sapUiMdcFieldBase .sapMInputBase,
#__component0---main--filterbar .sapUiMdcFieldBase .sapMSelect {
	width: 100% !important;
	max-width: 100% !important;
}

/* Garante que o FilterBar layout use toda a largura e não quebre */
.sapUiMdcFilterBar .sapUiFormLayout {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
}

.sapUiMdcFilterBar .sapUiFormLayout .sapUiFormElement {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	flex: 1 1 auto !important;
}

/* Específico para o campo de Empresa */
#__field0 {
	width: 100% !important;
	flex: 1 1 auto !important;
}

#__field0 .sapMSelect {
	width: 100% !important;
	max-width: 100% !important;
}

/* ScrollContainer: min-height 0 permite que o flex filho role corretamente (evita corte no final) */
.ivatex-scroll-container {
	min-height: 0;
	overflow-y: auto !important;
	overflow-x: hidden !important;
}

.ivatex-scroll-container .sapMScrollContScroll {
	overflow: visible !important;
	padding-bottom: 0 !important;
}

/* Margem inferior no conteúdo rolável - evita cards cortados no final */
.ivatex-scroll-content {
	padding-bottom: 2rem !important;
	margin-bottom: 1rem !important;
	box-sizing: border-box;
	min-height: fit-content !important;
}

/* Último bloco do scroll */
.ivatex-scroll-content > .sapMHBox:last-child {
	margin-bottom: 1rem !important;
	padding-bottom: 0.5rem !important;
}

/* Valor "Mil" nos cards de Dados Gerenciais e Controle de Créditos (menor, verde) */
.ivatex-value-mil {
	font-size: 0.875rem;
	color: var(--sapPositiveTextColor, #107e3e);
}

/* Tiles autoajustáveis na largura (preenchem o espaço disponível) */
.tileLayout {
	width: 100%;
	min-width: 0;
}

/* Remove altura fixa dos GenericTiles compactos (dashboard Main) - exclui tiles do Launchpad e de análise */
.sapMGT:not(.ivatex-tile-analise-divergencia):not(.ivatex-tile-launchpad),
.sapMGT:not(.ivatex-tile-analise-divergencia):not(.ivatex-tile-launchpad) .sapMGTHdrContent,
.sapMGT:not(.ivatex-tile-analise-divergencia):not(.ivatex-tile-launchpad) .sapMTileCnt,
.sapMGT:not(.ivatex-tile-analise-divergencia):not(.ivatex-tile-launchpad) .sapMTileCntContent,
.sapMGT:not(.ivatex-tile-analise-divergencia):not(.ivatex-tile-launchpad) .sapMGTContent {
	min-height: 0 !important;
	height: auto !important;
}

/* Análise de divergência: mantém altura como antes (tile padrão) */
.ivatex-tile-analise-divergencia.sapMGT {
	min-height: 11.25rem !important;
	height: auto !important;
}

.ivatex-tile-analise-divergencia .sapMGTHdrContent {
	min-height: 3rem !important;
}

.ivatex-tile-analise-divergencia .sapMTileCnt,
.ivatex-tile-analise-divergencia .sapMGTContent {
	min-height: 5rem !important;
}

/* Remove borda inferior das tabelas */
.sapMListTblRow,
.sapMListTblRow > td,
.sapMListTblCell {
	border-bottom: none !important;
}

.sapMListTbl tbody tr {
	border-bottom: none !important;
}

.sapMListTbl tbody tr td {
	border-bottom: none !important;
}

/* Garante que os tiles fiquem lado a lado no HBox */
.sapMHBox.sapMFlexBoxWrapNoWrap > .sapMFlexItem {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	max-width: 100% !important;
}

/* Linhas de árvore (Apuração Fiscal Resumo): spacer / botão / icon em tamanho
   natural, e apenas o último item (texto da descrição) cresce para ocupar o
   espaço restante. Evita que os elementos sejam distribuídos pelo meio da célula. */
.ivatex-tree-row.sapMHBox > .sapMFlexItem {
	flex: 0 0 auto !important;
}
.ivatex-tree-row.sapMHBox > .sapMFlexItem:last-child {
	flex: 1 1 auto !important;
	min-width: 0 !important;
}

.sapMHBox.sapMFlexBoxWrapNoWrap > .sapMFlexItem > .sapMVBox {
	width: 100% !important;
	min-width: 0 !important;
}

/* Painéis (CBS, IBS, Base Interna, Base Fisco) e tabelas em 100% da largura */
.sapMHBox.sapMFlexBoxWrapNoWrap > .sapMFlexItem > .sapMPanel,
.ivatex-scroll-content .sapMPanel {
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

.ivatex-scroll-content .sapMPanel .sapMList,
.ivatex-scroll-content .sapMPanel .sapMListTbl {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* CBS e IBS: forçar 100% no HBox de apuração (classes específicas) */
.ivatex-apuracao-tables > * {
	flex: 1 1 0% !important;
	min-width: 0 !important;
	max-width: none !important;
	box-sizing: border-box !important;
}

.ivatex-table-panel {
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.ivatex-table-panel .sapMPanelContent,
.ivatex-table-panel .sapMList,
.ivatex-table-panel .sapMListTbl,
.ivatex-table-panel table,
.ivatex-table-panel [id*="list"] {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}

/* Apenas tiles com classe tileLayout (Custo CBS, IBS, etc.) ocupam 100% */
.sapMHBox.sapMFlexBoxWrapNoWrap .sapMGT.tileLayout {
	width: 100% !important;
	max-width: 100% !important;
}

/* Análise de divergência, Gestão de Eventos, Fila: largura padrão do componente */
.sapMHBox.sapMFlexBoxWrapNoWrap .sapMGT:not(.tileLayout) {
	width: auto !important;
	max-width: none !important;
	align-self: flex-start !important;
}

/* ScrollContainer interno */
#__container2-scroll {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	padding-bottom: 1rem !important;
}

#__container2-scroll .sapMVBox:last-child {
	padding-bottom: 1.5rem !important;
}

/* Relatórios: dois tiles lado a lado, sem distância (HBox não estica os itens) */
.ivatex-relatorios-tiles.sapMHBox > .sapMFlexItem {
	flex: 0 0 auto !important;
	max-width: none !important;
}
.ivatex-relatorios-tiles {
	width: max-content !important;
	max-width: 100%;
}

/* Página Resultado Atualizado: remove todo o espaçamento superior da área de conteúdo */
section[id$="-resultadoAtualizadoPage-cont"] {
	padding-top: 0 !important;
	margin-top: 0 !important;
	min-height: 0 !important;
}
section[id$="-resultadoAtualizadoPage-cont"] .sapMScrollCont {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* ObjectPageLayout wrapper: garante que o ObjectPage receba altura correta dentro de VBox flex.
   VBox gera um div.sapMFlexItem intermediário — precisamos posicionar ambos. */
.ivatex-objpage-wrapper {
	position: relative !important;
	flex: 1 1 auto !important;
	min-height: 0 !important;
}

.ivatex-objpage-wrapper > .sapMFlexItem {
	position: relative !important;
	flex: 1 1 auto !important;
	min-height: 0 !important;
	height: 100% !important;
}

.ivatex-objpage-wrapper .sapUxAPObjectPageLayout {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
}

/* Panels: previne scroll horizontal no conteúdo — grids responsivos com auto-fit já tratam overflow */
.sapMPanelContent {
	overflow-x: hidden !important;
}

/* Wizard: esconde o botão nativo "Etapa N" — usamos botões customizados dentro de cada step */
.sapMWizardNextButton {
	display: none !important;
}

/* ===== Assistente IA — destaque de inputs preenchidos automaticamente ===== */
.ivatax-input-highlighted {
	box-shadow: 0 0 0 2px var(--sapInformativeColor, #0070f2) !important;
	border-radius: 4px;
	animation: ivatax-pulse 0.6s ease-in-out;
}

@keyframes ivatax-pulse {
	0%   { box-shadow: 0 0 0 0 var(--sapInformativeColor, #0070f2); }
	50%  { box-shadow: 0 0 0 6px var(--sapInformativeColor, #0070f2); }
	100% { box-shadow: 0 0 0 2px var(--sapInformativeColor, #0070f2); }
}

/* ============================================================
   Assistente IA — chat estilo LLM no midColumn da FlexibleColumnLayout.
   A raiz do fragment vira página do NavContainer (.sapMNavItem →
   position:absolute) — por isso o conteúdo real fica num wrapper interno
   (.ivatex-assistente-chat) que ocupa 100% e usa CSS Grid determinístico:
   header (auto) + thread rolável (1fr, encolhe até 0) + composer (auto).
   ============================================================ */
.ivatex-assistente-chat-page {
	position: relative;
}

.ivatex-assistente-chat {
	display: grid !important;
	grid-template-rows: auto minmax(0, 1fr) auto !important;
	height: 100%;
	min-height: 0;
	background-color: var(--sapList_Background, #fff);
}

.ivatex-assistente-chat-header.sapMHBox {
	flex: 0 0 auto;
	padding: 0.625rem 0.5rem 0.625rem 0.875rem;
	border-bottom: 1px solid var(--sapGroup_ContentBorderColor);
	background-color: var(--sapObjectHeader_Background, #fff);
}

.ivatex-assistente-chat-header-left.sapMHBox {
	flex: 1 1 auto;
	min-width: 0;
}

.ivatex-assistente-chat-header-icon {
	color: var(--sapContent_IconColor, #0070f2);
	font-size: 1.375rem;
}

.ivatex-assistente-chat-header-text.sapMVBox {
	min-width: 0;
}

.ivatex-assistente-chat-header-title.sapMTitle {
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	line-height: 1.2;
}

.ivatex-assistente-chat-header-ctx.sapMText {
	font-size: 0.75rem;
	color: var(--sapNeutralTextColor, #6a6d70);
	margin-top: 0.0625rem;
}

/* Thread: ocupa o residual e rola; vence o style="height:100%" inline
   do atributo height do ScrollContainer (mesmo truque do .ivatex-chat-shell) */
.ivatex-assistente-chat > .ivatex-assistente-chat-scroll.sapMScrollCont {
	height: auto !important;
	min-height: 0 !important;
	max-height: 100% !important;
	overflow-y: auto !important;
}

/* Shell FCL — garante altura total nas colunas */
.sapFFCL,
.sapFFCL .sapFColumn {
	height: 100% !important;
}

/* ============================================================
   Chat de Relatórios Inteligentes — input fixo embaixo,
   conversa rolando acima (estilo LLM).
   Exceção justificada ao padrão flush-header normal.
   ============================================================ */
/* Shell usa CSS Grid 2x2: sidebar (col 1, atravessa as 2 linhas) +
   scroll (1fr, encolhe ate min 0) + composer (auto) na col 2.
   Grid eh deterministico aqui — diferente de flex, nao tem dependencias
   ambiguas sobre flex-basis vs height. */
.ivatex-chat-shell {
	display: grid !important;
	grid-template-rows: minmax(0, 1fr) auto !important;
	grid-template-columns: auto minmax(0, 1fr) !important;
	grid-template-areas:
		"sidebar scroll"
		"sidebar composer" !important;
	height: 100%;
	min-height: 0;
	background-color: var(--sapBackgroundColor);
}

.ivatex-chat-shell > .ivatex-chat-sidebar { grid-area: sidebar; }
.ivatex-chat-shell > .ivatex-chat-scroll { grid-area: scroll; }
.ivatex-chat-shell > .ivatex-chat-composer { grid-area: composer; }

/* Forca o shell a consumir residual dentro do root VBox (flex column).
   O <VBox height="100%"> do shell renderiza com style="height:100%"
   inline; como o root tem ShellBar (auto) + shell empilhados, sem
   override o shell excede o viewport e empurra o composer para fora. */
.sapMVBox.noMarginPadding > .ivatex-chat-shell {
	flex: 1 1 0 !important;
	height: auto !important;
	min-height: 0 !important;
}

/* Scroll preenche a linha 1 do grid; vence o style="height:100%"
   inline injetado pelo atributo height do ScrollContainer */
.ivatex-chat-shell > .ivatex-chat-scroll.sapMScrollCont {
	height: auto !important;
	min-height: 0 !important;
	max-height: 100% !important;
	overflow-y: auto !important;
}

.ivatex-chat-thread {
	padding: 1.5rem 1rem 2rem;
}

/* Lista interna não deve ter borda — quem se desenha é o bubble */
.ivatex-chat-thread .sapMList,
.ivatex-chat-thread .sapMListUl,
.ivatex-chat-thread .sapMListItems,
.ivatex-chat-thread .sapMLIB,
.ivatex-chat-thread .sapMCustomListItem {
	background: transparent !important;
	border: none !important;
}
.ivatex-chat-thread .sapMLIB {
	padding: 0.25rem 0 !important;
}

/* Composer ancorado embaixo (linha 2 do grid do shell) */
.ivatex-chat-composer {
	flex: 0 0 auto;
	align-self: end;
	border-top: 1px solid var(--sapGroup_ContentBorderColor);
	background-color: var(--sapObjectHeader_Background, #fff);
	padding: 1rem 1.5rem 1.25rem;
	box-shadow: 0 -2px 12px rgba(0,0,0,0.03);
}
.ivatex-chat-composer-inner {
	width: 100%;
}

/* === Linha de sugestões com label === */
.ivatex-chat-sugestoes-row.sapMHBox {
	row-gap: 0.375rem;
	margin-bottom: 0.625rem;
}

.ivatex-chat-sugestoes-label.sapMLabel {
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sapNeutralTextColor, #6a6d70);
	margin-right: 0.75rem;
	flex-shrink: 0;
}

.ivatex-chat-chip.sapMBtn {
	margin-right: 0.5rem;
	margin-bottom: 0.125rem;
}

.ivatex-chat-chip.sapMBtn > .sapMBtnInner {
	border-radius: 999px !important;
	background-color: var(--sapButton_Lite_Background, #f5f6f7) !important;
	border: 1px solid var(--sapGroup_ContentBorderColor) !important;
	padding-left: 0.875rem !important;
	padding-right: 0.875rem !important;
	height: 1.875rem !important;
	min-height: 1.875rem !important;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.ivatex-chat-chip.sapMBtn > .sapMBtnInner > .sapMBtnContent,
.ivatex-chat-chip.sapMBtn > .sapMBtnInner .sapMBtnDefault {
	color: var(--sapTextColor) !important;
	font-weight: 500;
}

.ivatex-chat-chip.sapMBtn:hover > .sapMBtnInner,
.ivatex-chat-chip.sapMBtn:focus > .sapMBtnInner {
	background-color: var(--sapButton_Lite_Hover_Background, #ebf5fe) !important;
	border-color: var(--sapInformativeColor, #0070f2) !important;
}

.ivatex-chat-chip.sapMBtn:hover > .sapMBtnInner > .sapMBtnContent {
	color: var(--sapInformativeColor, #0070f2) !important;
}

/* === Input card: textarea + Gerar visualmente unificados === */
.ivatex-chat-input-card.sapMHBox {
	background-color: var(--sapField_Background, #fff);
	border: 1px solid var(--sapField_BorderColor, #bcc3ca);
	border-radius: 0.75rem;
	padding: 0.5rem 0.5rem 0.5rem 0.875rem;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
	box-shadow: 0 1px 2px rgba(0,0,0,0.02);
}

.ivatex-chat-input-card.sapMHBox:focus-within {
	border-color: var(--sapInformativeColor, #0070f2);
	box-shadow: 0 0 0 3px rgba(0, 112, 242, 0.12);
}

.ivatex-chat-input.sapMTextArea {
	flex: 1 1 auto;
	min-width: 0;
	margin-right: 0.5rem;
	background: transparent;
}

.ivatex-chat-input.sapMTextArea .sapMTextAreaInner,
.ivatex-chat-input.sapMTextArea textarea {
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	padding: 0.375rem 0 !important;
	resize: none !important;
}

.ivatex-chat-input.sapMTextArea .sapMTextAreaInner:focus,
.ivatex-chat-input.sapMTextArea textarea:focus {
	border: none !important;
	box-shadow: none !important;
	outline: none !important;
}

.ivatex-chat-gerar-btn.sapMBtn {
	flex-shrink: 0;
	margin-bottom: 0.125rem;
}

.ivatex-chat-gerar-btn.sapMBtn > .sapMBtnInner {
	border-radius: 0.5rem !important;
}

/* Mensagem do usuario (Panel a direita) — fundo info-azul,
   max-width sutil para nao ocupar largura inteira, sombra leve.
   margin-left:auto empurra o panel para a direita dentro do wrapper
   sapMFlexItem (que tem display:block, ignorando o justifyContent
   do HBox pai). */
.ivatex-chat-msg-user {
	background-color: var(--sapInfobar_Background, #ebf8ff);
	border-radius: 0.75rem;
	max-width: 70%;
	margin-left: auto;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	overflow: hidden;
}
.ivatex-chat-msg-user .sapMPanelContent,
.ivatex-chat-msg-user .sapMPanelHdr {
	background-color: transparent !important;
}
.ivatex-chat-msg-user .sapMText {
	white-space: pre-wrap;
}

/* Mensagem do assistente (Panel full-width) — borda leve, sombra sutil,
   fundo branco do tema */
.ivatex-chat-msg-assistant {
	border-radius: 0.75rem;
	border: 1px solid var(--sapGroup_ContentBorderColor);
	background-color: var(--sapList_Background, #fff);
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	overflow: hidden;
}

/* Texto longo de markdown: limita largura de leitura para conforto visual.
   Charts e timeline mantem full-width (max-width nao se aplica a eles). */
.ivatex-chat-msg-assistant .sapMFT,
.ivatex-chat-msg-assistant .sapMFT > * {
	max-width: 70ch;
}

.ivatex-chat-msg-time.sapMText {
	font-size: 0.75rem;
	color: var(--sapNeutralTextColor, #6a6d70);
}

/* Typing indicator: 3 bolinhas pulsando enquanto a IA "pensa" */
.ivatex-chat-typing.sapMHBox {
	padding: 0.625rem 1rem;
	margin-bottom: 0.75rem;
}
.ivatex-chat-typing-dots {
	display: inline-flex;
	gap: 0.375rem;
	padding: 0.625rem 1rem;
	background-color: var(--sapList_Background, #fff);
	border: 1px solid var(--sapGroup_ContentBorderColor);
	border-radius: 1rem;
}
.ivatex-chat-typing-dots span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: var(--sapNeutralTextColor, #6a6d70);
	animation: ivatex-typing-pulse 1.4s ease-in-out infinite;
	display: inline-block;
}
.ivatex-chat-typing-dots span:nth-child(2) { animation-delay: 0.16s; }
.ivatex-chat-typing-dots span:nth-child(3) { animation-delay: 0.32s; }
@keyframes ivatex-typing-pulse {
	0%, 60%, 100% { opacity: 0.3; transform: scale(0.85); }
	30% { opacity: 1; transform: scale(1.1); }
}

/* Sugestoes em modo compacto (apos primeira conversa) */
.ivatex-chat-sugestoes-row--compact {
	margin-bottom: 0.375rem !important;
}
.ivatex-chat-sugestoes-row--compact .ivatex-chat-sugestoes-label.sapMLabel {
	display: none !important;
}
.ivatex-chat-sugestoes-row--compact .ivatex-chat-chip > .sapMBtnInner {
	height: 1.5rem !important;
	min-height: 1.5rem !important;
	font-size: 0.75rem !important;
	padding-left: 0.625rem !important;
	padding-right: 0.625rem !important;
}

/* Group header da sidebar (Hoje, Ontem, Esta semana, Mais antigas) */
.ivatex-chat-sidebar-list .sapMGHLI {
	background-color: transparent !important;
	border: none !important;
	padding: 0.625rem 0.875rem 0.25rem !important;
	min-height: 0 !important;
}
.ivatex-chat-sidebar-list .sapMGHLI .sapMSLITitle,
.ivatex-chat-sidebar-list .sapMGHLITitle {
	font-size: 0.6875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sapNeutralTextColor, #6a6d70) !important;
}

/* Panel separado "Exportar PDF" — abaixo da ultima resposta */
.ivatex-chat-export-panel.sapMPanel {
	border-radius: 0.75rem;
	border: 1px solid var(--sapGroup_ContentBorderColor);
	background-color: var(--sapList_Background, #fff);
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
	overflow: hidden;
	margin-top: 0.75rem;
}

.ivatex-chat-export-panel .sapMPanelContent {
	padding: 0.5rem 0.75rem !important;
	background: transparent !important;
}

.ivatex-chat-export-btn.sapMBtn > .sapMBtnInner {
	border-radius: 999px !important;
	border: 1px solid var(--sapGroup_ContentBorderColor) !important;
	background-color: var(--sapButton_Lite_Background, #f5f6f7) !important;
}
.ivatex-chat-export-btn.sapMBtn:hover > .sapMBtnInner {
	background-color: var(--sapButton_Lite_Hover_Background, #ebf5fe) !important;
	border-color: var(--sapInformativeColor, #0070f2) !important;
}

/* HBox da linha do botao Exportar: nao esticar o filho para justifyContent funcionar */
.ivatex-chat-export-row.sapMHBox > .sapMFlexItem {
	flex: 0 0 auto !important;
	max-width: none !important;
}

/* ============================================================
   Sidebar de historico de conversas (estilo ChatGPT)
   ============================================================ */
.ivatex-chat-sidebar {
	width: 280px;
	border-right: 1px solid var(--sapGroup_ContentBorderColor);
	background-color: var(--sapList_GroupHeaderBackground, #f7f8fa);
	display: flex;
	flex-direction: column;
	transition: width 0.18s ease;
	overflow: hidden;
	min-width: 0;
}

.ivatex-chat-sidebar--collapsed {
	width: 56px;
}

.ivatex-chat-sidebar--collapsed .ivatex-chat-sidebar-title,
.ivatex-chat-sidebar--collapsed .ivatex-chat-sidebar-tabs,
.ivatex-chat-sidebar--collapsed .ivatex-chat-sidebar-list,
.ivatex-chat-sidebar--collapsed .ivatex-chat-sidebar-empty {
	display: none !important;
}

/* Lista de relatórios reutilizáveis — ícone de tipo (cor adaptável ao tema) */
.ivatex-chat-report-icon {
	color: var(--sapContent_NonInteractiveIconColor, #6a6d70);
	font-size: 1rem;
	flex-shrink: 0;
}

/* ============================================================
   Catálogo de Relatórios — galeria de cards (porta de entrada).
   Só tokens de tema SAP (adapta claro/escuro/alto contraste).
   ============================================================ */
.ivatex-relcat-hero-title.sapMTitle {
	font-size: 1.5rem !important;
	font-weight: 700 !important;
}
.ivatex-relcat-hero-sub.sapMText {
	color: var(--sapContent_LabelColor);
	font-size: 0.9375rem;
	line-height: 1.4;
}
.ivatex-relcat-ask {
	max-width: 46rem;
}
.ivatex-relcat-section.sapMTitle {
	font-size: 1.0625rem !important;
	font-weight: 600 !important;
}
.ivatex-relcat-card.sapFCard {
	height: 100%;
	cursor: pointer;
	transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.ivatex-relcat-card.sapFCard:hover {
	border-color: var(--sapHighlightColor);
	box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}
.ivatex-relcat-card-desc.sapMText {
	color: var(--sapContent_LabelColor);
	font-size: 0.875rem;
	line-height: 1.4;
}
.ivatex-relcat-empty.sapMText {
	color: var(--sapNeutralTextColor);
	font-style: italic;
}

.ivatex-chat-sidebar--collapsed .ivatex-chat-sidebar-header {
	flex-direction: column;
	padding: 0.5rem 0.25rem;
	gap: 0.25rem;
}

.ivatex-chat-sidebar-header.sapMHBox {
	padding: 0.5rem 0.5rem 0.5rem 0.75rem;
	border-bottom: 1px solid var(--sapGroup_ContentBorderColor);
	flex-shrink: 0;
	background-color: var(--sapObjectHeader_Background, #fff);
}

.ivatex-chat-sidebar-title.sapMTitle {
	font-size: 0.875rem !important;
	font-weight: 600 !important;
}

.ivatex-chat-sidebar-scroll.sapMScrollCont {
	flex: 1 1 auto;
	min-height: 0;
}

.ivatex-chat-sidebar-list .sapMList,
.ivatex-chat-sidebar-list .sapMListUl,
.ivatex-chat-sidebar-list .sapMLIB {
	background: transparent !important;
	border: none !important;
}

.ivatex-chat-sidebar-list .sapMLIB {
	padding: 0 !important;
	min-height: 0 !important;
}

.ivatex-chat-sidebar-item.sapMCustomListItem {
	border-radius: 0.5rem;
	margin: 0.125rem 0.375rem;
	background-color: transparent;
	transition: background-color 0.12s ease;
	cursor: pointer;
}

.ivatex-chat-sidebar-item.sapMCustomListItem:hover {
	background-color: var(--sapList_Hover_Background, #ebf5fe) !important;
}

.ivatex-chat-sidebar-item-row.sapMHBox {
	padding: 0.5rem 0.5rem 0.5rem 0.625rem;
	width: 100%;
	min-width: 0;
}

.ivatex-chat-sidebar-item-text.sapMVBox {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
}

.ivatex-chat-sidebar-item-title.sapMText {
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--sapTextColor);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.ivatex-chat-sidebar-item-meta.sapMText {
	font-size: 0.6875rem;
	color: var(--sapNeutralTextColor, #6a6d70);
	margin-top: 0.125rem;
}

.ivatex-chat-sidebar-item-del.sapMBtn {
	flex-shrink: 0;
	opacity: 0;
	transition: opacity 0.12s ease;
}

.ivatex-chat-sidebar-item.sapMCustomListItem:hover .ivatex-chat-sidebar-item-del.sapMBtn {
	opacity: 1;
}

.ivatex-chat-sidebar-empty.sapMText {
	display: block;
	padding: 1.25rem 1rem;
	text-align: center;
	font-style: italic;
	color: var(--sapNeutralTextColor, #6a6d70);
	font-size: 0.75rem;
}

/* Conversa ativa: destaque azul */
.ivatex-chat-sidebar-list .ivatex-chat-sidebar-item--active.sapMCustomListItem,
.ivatex-chat-sidebar-list .ivatex-chat-sidebar-item--active.sapMCustomListItem:hover {
	background-color: var(--sapInfobar_Background, #ebf8ff) !important;
}

.ivatex-chat-sidebar-list .ivatex-chat-sidebar-item--active .ivatex-chat-sidebar-item-title.sapMText {
	color: var(--sapInformativeColor, #0070f2) !important;
	font-weight: 600 !important;
}

.ivatex-chat-sidebar-list .ivatex-chat-sidebar-item--active .ivatex-chat-sidebar-item-del.sapMBtn {
	opacity: 1;
}

/* ═══════════════════════════════════════════════════════════════════
 * Launchpad 2 — Painel Executivo (estilo novo SAP Ariba)
 * ═══════════════════════════════════════════════════════════════════ */

.ivatex-lp2-main {
	padding: 1.5rem 2rem 2rem 2rem;
	background-color: var(--sapBackgroundColor, #f5f6f7);
	min-height: 100%;
}

.ivatex-lp2-greeting.sapMTitle {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--sapTextColor, #1c2a3a);
	margin-bottom: 0.5rem;
}

/* Search bar — fundo branco com borda AI (gradiente cônico animado) */
@property --ivatex-ai-angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}

.ivatex-lp2-search-wrap {
	border-radius: 999px;
	padding: 0.375rem 0.5rem;
	margin: 0.5rem 0 1rem 0;
	width: 100%;
	max-width: 720px;
	border: 2px solid transparent;
	background:
		linear-gradient(#ffffff, #ffffff) padding-box,
		conic-gradient(from var(--ivatex-ai-angle),
			#7d2f9c 0%,
			#0a6ed1 25%,
			#c66a85 50%,
			#df6e0c 75%,
			#7d2f9c 100%) border-box;
	box-shadow: 0 4px 18px rgba(91, 42, 114, 0.15);
	animation: ivatex-ai-border-rotate 6s linear infinite;
}

@keyframes ivatex-ai-border-rotate {
	to { --ivatex-ai-angle: 360deg; }
}

/* Fallback para navegadores sem @property (Firefox antigo etc.) */
@supports not (background: paint(something)) {
	.ivatex-lp2-search-wrap {
		background:
			linear-gradient(#ffffff, #ffffff) padding-box,
			linear-gradient(90deg, #7d2f9c, #0a6ed1, #c66a85, #df6e0c, #7d2f9c) border-box;
		animation: none;
	}
}

.ivatex-lp2-search-wrap .sapMSF {
	background: transparent;
	border: none;
	width: 100%;
}

.ivatex-lp2-search-wrap .sapMSFF {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

.ivatex-lp2-search-wrap .sapMSFF input,
.ivatex-lp2-search-wrap input.sapMSFI {
	color: var(--sapField_TextColor, #32363a) !important;
	background: transparent !important;
	border: none !important;
}

.ivatex-lp2-search-wrap input.sapMSFI::placeholder,
.ivatex-lp2-search-wrap input.sapMSFI::-webkit-input-placeholder {
	color: var(--sapField_PlaceholderTextColor, #6a6d70) !important;
	font-style: italic;
}

.ivatex-lp2-search-wrap .sapMSFB,
.ivatex-lp2-search-wrap .sapMSFR {
	color: #7d2f9c !important;
	background: transparent !important;
}

/* Versão dark: roxo de marca em violeta claro para contraste no campo escuro */
html.sapUiTheme-sap_horizon_dark .ivatex-lp2-search-wrap .sapMSFB,
html.sapUiTheme-sap_horizon_dark .ivatex-lp2-search-wrap .sapMSFR {
	color: #d1a3e8 !important;
}

/* ──────────────────────────────────────────────────────────────────
 * Launchpad 2 — Banner promocional (estilo SAP Sapphire)
 * ──────────────────────────────────────────────────────────────── */

.ivatex-lp2-promo-banner {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	padding: 0.875rem 1.25rem;
	margin: 0.5rem 0 1rem 0;
	background: linear-gradient(105deg,
		#3d1356 0%,
		#5a1f8e 25%,
		#7d2f9c 50%,
		#5a1f8e 75%,
		#3d1356 100%);
	box-shadow: 0 4px 14px rgba(91, 42, 114, 0.35);
}

.ivatex-lp2-promo-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(
		115deg,
		transparent 0,
		transparent 56px,
		rgba(255, 255, 255, 0.07) 56px,
		rgba(255, 255, 255, 0.07) 58px,
		transparent 58px,
		transparent 110px,
		rgba(255, 255, 255, 0.04) 110px,
		rgba(255, 255, 255, 0.04) 113px
	);
	pointer-events: none;
}

.ivatex-lp2-promo-banner::after {
	content: "";
	position: absolute;
	top: -10%;
	right: -15%;
	width: 55%;
	height: 130%;
	background: linear-gradient(100deg,
		transparent 0%,
		rgba(255, 255, 255, 0.10) 38%,
		rgba(255, 255, 255, 0.18) 50%,
		rgba(255, 255, 255, 0.06) 62%,
		transparent 100%);
	transform: skewX(-15deg);
	pointer-events: none;
}

.ivatex-lp2-promo-banner > * {
	position: relative;
	z-index: 1;
}

.ivatex-lp2-promo-banner-left {
	flex: 1 1 auto;
	min-width: 0;
}

.ivatex-lp2-promo-banner-right {
	flex: 0 0 auto;
}

.ivatex-lp2-promo-banner-brand.sapMTitle {
	color: var(--sapContent_ContrastTextColor, #ffffff);
	font-weight: 800;
	font-size: 1.25rem;
	letter-spacing: 0.4px;
	line-height: 1.2;
}

.ivatex-lp2-promo-banner-text.sapMText {
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.9375rem;
	line-height: 1.35;
}

.ivatex-lp2-promo-banner-icon {
	color: var(--sapContent_ContrastTextColor, #ffffff);
	font-size: 1.125rem;
}

.ivatex-lp2-promo-banner-cta.sapMLnk {
	color: var(--sapContent_ContrastTextColor, #ffffff) !important;
	font-weight: 600;
	text-decoration: none;
}

.ivatex-lp2-promo-banner-cta.sapMLnk:hover {
	text-decoration: underline;
}

.ivatex-lp2-promo-banner-close.sapMBtn,
.ivatex-lp2-promo-banner-close .sapMBtnInner {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

.ivatex-lp2-promo-banner-close .sapMBtnIcon {
	color: rgba(255, 255, 255, 0.85) !important;
}

.ivatex-lp2-promo-banner-close.sapMBtn:hover .sapMBtnIcon {
	color: var(--sapContent_ContrastTextColor, #ffffff) !important;
}

/* Layout colunas */
.ivatex-lp2-col-insights {
	flex: 2 1 480px;
	min-width: 0;
	padding-right: 1rem;
}

.ivatex-lp2-col-side {
	flex: 1 1 280px;
	min-width: 280px;
}

/* Banner lateral (imagem) */
.ivatex-lp2-side-banner {
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
	display: block;
}

.ivatex-lp2-side-banner img {
	width: 100%;
	height: auto;
	border-radius: 12px;
	display: block;
}

/* Card padrão dos painéis */
.ivatex-lp2-card.sapMPanel {
	background: var(--sapTile_Background, #ffffff);
	border-radius: 0.5rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	border: 1px solid var(--sapGroup_ContentBorderColor, #eceff1);
	margin: 0;
	min-height: 230px;
}

.ivatex-lp2-card .sapMPanelHdr {
	border-bottom: 1px solid var(--sapGroup_ContentBorderColor, #eceff1);
	padding: 0.75rem 1rem;
	background: transparent;
}

.ivatex-lp2-card .sapMPanelContent,
.ivatex-lp2-card .sapMPanelExpanded > .sapMPanelContent {
	background: transparent;
	padding: 0.25rem 0.75rem 0.75rem 0.75rem;
}

/* sap.f.Card nativo — alinhar com o estilo dos cards Panel do grid */
.ivatex-lp2-card.sapFCard {
	background: var(--sapTile_Background, #ffffff);
	border-radius: 0.5rem;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	border: 1px solid var(--sapGroup_ContentBorderColor, #eceff1);
	margin: 0;
	min-height: 230px;
}

.ivatex-lp2-card .sapFCardHeader {
	border-bottom: 1px solid var(--sapGroup_ContentBorderColor, #eceff1);
	padding: 0.75rem 1rem;
	background: transparent;
}

.ivatex-lp2-card .sapFCardContent {
	background: transparent;
	padding: 0.25rem 0.5rem 0.5rem 0.5rem;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: stretch;
	min-height: 0;
}

.ivatex-lp2-card .sapFCardContent > .sapMComparisonMicroChart,
.ivatex-lp2-card .sapFCardContent > .sapVizFrame,
.ivatex-lp2-card .sapFCardContent > .sapVizContainer {
	flex: 1 1 auto;
	width: 100% !important;
	height: 100% !important;
	min-height: 0;
}

.ivatex-lp2-card-wide {
	grid-column: 1 / -1;
}

.ivatex-lp2-card-count.sapMText {
	color: var(--sapContent_LabelColor, #6a6d70);
	font-size: 0.8125rem;
}

/* Card News e Alertas — itens com borda lateral colorida */
.ivatex-lp2-news-item {
	border-left: 4px solid transparent;
	margin-bottom: 0.25rem;
	background: transparent;
}

.ivatex-lp2-news-item-Error {
	border-left-color: var(--sapNegativeColor, #bb0000);
}

.ivatex-lp2-news-item-Warning {
	border-left-color: var(--sapCriticalColor, #df6e0c);
}

.ivatex-lp2-news-item-None {
	border-left-color: var(--sapList_BorderColor, #d5d8dc);
}

.ivatex-lp2-news-title.sapMText {
	font-weight: 600;
	color: var(--sapTextColor, #1c2a3a);
}

.ivatex-lp2-news-meta.sapMText {
	font-size: 0.75rem;
	color: var(--sapContent_LabelColor, #6a6d70);
}

.ivatex-lp2-news-priority-Error.sapMText {
	color: var(--sapNegativeColor, #bb0000);
	font-weight: 600;
	font-size: 0.75rem;
}

.ivatex-lp2-news-priority-Warning.sapMText {
	color: var(--sapCriticalColor, #df6e0c);
	font-weight: 600;
	font-size: 0.75rem;
}


/* ChartContainer dentro dos cards do Launchpad2 — esconder header/toolbar internos
   (o Panel ja exibe o titulo do card) */
.ivatex-lp2-chart-container .sapSuiteUiCommonsChartContainerToolBar,
.ivatex-lp2-chart-container .sapSuiteUiCommonsChartContainerHeader,
.ivatex-lp2-chart-container .sapSuiteCcChartContainerToolBar {
	display: none !important;
}

.ivatex-lp2-chart-container,
.ivatex-lp2-chart-container .sapSuiteUiCommonsChartContainer {
	background: transparent;
	border: none;
	box-shadow: none;
}

/* Card To Dos — itens */
.ivatex-lp2-todo-item {
	border-left: 4px solid var(--sapInformativeColor, #0a6ed1);
	padding: 0.75rem 0.875rem;
	background: var(--sapList_AlternatingBackground, #fafbfc);
	margin: 0.375rem 0.25rem;
	border-radius: 0.25rem;
}

.ivatex-lp2-todo-item-Error {
	border-left-color: var(--sapNegativeColor, #bb0000);
}

.ivatex-lp2-todo-item-Warning {
	border-left-color: var(--sapCriticalColor, #df6e0c);
}

.ivatex-lp2-todo-item-Information {
	border-left-color: var(--sapInformativeColor, #0a6ed1);
}

.ivatex-lp2-todo-title.sapMText {
	font-weight: 600;
	color: var(--sapTextColor, #1c2a3a);
	font-size: 0.875rem;
}

.ivatex-lp2-todo-author.sapMText {
	color: var(--sapInformativeColor, #0a6ed1);
	font-size: 0.75rem;
}

.ivatex-lp2-todo-desc.sapMText {
	font-size: 0.8125rem;
	color: var(--sapNeutralTextColor, #515559);
}

.ivatex-lp2-todo-btn {
	align-self: flex-start;
}

.ivatex-lp2-quicklink-item {
	background: transparent;
}

.ivatex-lp2-quicklink-item:hover {
	background: rgba(10, 110, 209, 0.04);
}

/* Responsividade — empilhar colunas em telas pequenas */
@media (max-width: 1024px) {
	.ivatex-lp2-col-insights {
		flex: 1 1 100%;
		padding-right: 0;
	}
	.ivatex-lp2-col-side {
		flex: 1 1 100%;
		margin-top: 1rem;
	}
}

/* Dialog de detalhe da notícia */
.ivatex-lp2-news-dialog .sapMDialogScroll {
	padding: 0;
}

.ivatex-lp2-news-body.sapMText {
	white-space: pre-wrap;
	line-height: 1.5;
	color: var(--sapTextColor, #1c2a3a);
	font-size: 0.9375rem;
}

/* ===== Assistente IA - lista de detalhes técnicos (dentro do balão de plano) ===== */
.ivatex-assistente-preview-list {
	background-color: transparent;
	border: none !important;
}

.ivatex-assistente-preview-list .sapMListItems {
	background-color: transparent;
}

.ivatex-assistente-preview-item.sapMLIB {
	background-color: transparent !important;
	padding: 0 !important;
	min-height: 0 !important;
}

.ivatex-assistente-preview-row {
	padding: 0.625rem 0.875rem;
}

.ivatex-assistente-preview-label.sapMLabel {
	font-size: 0.6875rem !important;
	color: var(--sapContent_LabelColor, #6a6d70);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-weight: 600;
	margin-bottom: 0.1875rem;
	line-height: 1.2;
}

.ivatex-assistente-preview-value.sapMText {
	color: var(--sapTextColor, #1c2a3a);
	font-size: 0.9375rem;
	line-height: 1.4;
	word-break: break-word;
}

.ivatex-assistente-preview-itemslist {
	margin-top: 0.125rem;
	gap: 0.1875rem;
}

.ivatex-assistente-preview-subitem.sapMText {
	color: var(--sapTextColor, #1c2a3a);
	font-size: 0.875rem;
	line-height: 1.4;
	padding: 0.1875rem 0.5rem 0.1875rem 0.625rem;
	border-left: 2px solid var(--sapList_BorderColor, #c6e6c8);
	background-color: var(--sapList_AlternatingBackground, #fafdfa);
	border-radius: 0 0.1875rem 0.1875rem 0;
	word-break: break-word;
	margin-bottom: 0.1875rem;
}

.ivatex-assistente-plano-resumo-box {
	padding: 0.625rem 0.875rem 0.25rem;
}

.ivatex-assistente-plano-passos-box {
	padding: 0.5rem 0.875rem 0.75rem;
}

.ivatex-assistente-plano-section-label.sapMLabel {
	font-size: 0.6875rem !important;
	color: var(--sapContent_LabelColor, #6a6d70);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 700;
	margin-bottom: 0.375rem;
	line-height: 1.2;
}

.ivatex-assistente-plano-resumo.sapMText {
	color: var(--sapTextColor, #1c2a3a);
	font-size: 0.9375rem;
	line-height: 1.5;
	word-break: break-word;
}

.ivatex-assistente-plano-passos-list {
	gap: 0.375rem;
}

.ivatex-assistente-plano-passo {
	gap: 0.625rem;
	padding: 0.1875rem 0;
}

.ivatex-assistente-plano-passo-num.sapMText {
	color: var(--sapPositiveTextColor, #107e3e);
	font-size: 0.9375rem;
	font-weight: 700;
	font-family: "SFMono-Regular", "Consolas", "Menlo", monospace;
	min-width: 1.25rem;
	flex-shrink: 0;
	line-height: 1.5;
}

.ivatex-assistente-plano-passo-texto.sapMText {
	color: var(--sapTextColor, #1c2a3a);
	font-size: 0.875rem;
	line-height: 1.5;
	word-break: break-word;
}

.ivatex-assistente-detalhes-panel.sapMPanel {
	background-color: var(--sapList_AlternatingBackground, #fafafa);
	border: none !important;
	border-top: 1px solid var(--sapGroup_ContentBorderColor, #ececec) !important;
	border-radius: 0 !important;
	margin: 0;
}

.ivatex-assistente-detalhes-panel > .sapMPanelHdr {
	background-color: transparent !important;
	border: none !important;
	padding: 0.375rem 0.875rem !important;
	min-height: 0 !important;
}

.ivatex-assistente-detalhes-panel .sapMPanelHdrToolbarTitleExpandable,
.ivatex-assistente-detalhes-panel .sapMPanelHdrItems .sapMTitle {
	font-size: 0.6875rem !important;
	color: var(--sapContent_LabelColor, #6a6d70) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
}

/* ============================================================
   Botão Assistente IA — destaque no header (ShellBar / Launchpad)
   Reaproveita a paleta e animação de .ivatex-lp2-search-wrap.
   ============================================================ */

.ivatex-btn-ai-assistente.sapMBtn {
	margin: 0 0.125rem;
}

.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner {
	position: relative;
	border: none !important;
	background: transparent !important;
	border-radius: 999px !important;
	padding: 0 0.875rem !important;
	height: 2rem !important;
	min-height: 2rem !important;
	box-shadow: 0 0 8px rgba(125, 47, 156, 0.22);
	transition: box-shadow 0.2s ease, transform 0.18s ease, background-color 0.18s ease;
	overflow: visible;
}

/* Borda gradiente via mask — agnóstica à cor de fundo do header */
.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 999px;
	padding: 1.5px;
	background: conic-gradient(from var(--ivatex-ai-angle),
		#7d2f9c 0%,
		#0a6ed1 25%,
		#c66a85 50%,
		#df6e0c 75%,
		#7d2f9c 100%);
	-webkit-mask:
		linear-gradient(#000 0 0) content-box,
		linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	animation: ivatex-ai-border-rotate 6s linear infinite;
	pointer-events: none;
}

/* Ícone + texto: tom roxo IA (alinhado ao primeiro stop do gradiente) */
.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner > .sapMBtnIcon,
.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner .sapMBtnIcon {
	color: #7d2f9c !important;
}

.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner > .sapMBtnContent,
.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner .sapMBtnDefault {
	color: #7d2f9c !important;
	font-weight: 600;
	letter-spacing: 0.01em;
}

/* Hover/focus: glow intensifica + lift sutil + leve fundo violeta */
.ivatex-btn-ai-assistente.sapMBtn:hover > .sapMBtnInner,
.ivatex-btn-ai-assistente.sapMBtn:focus > .sapMBtnInner {
	box-shadow:
		0 0 14px rgba(125, 47, 156, 0.45),
		0 0 4px rgba(10, 110, 209, 0.25) !important;
	transform: translateY(-0.5px);
	background-color: rgba(125, 47, 156, 0.06) !important;
}

/* Fallback para navegadores sem @property (Firefox antigo) — borda estática */
@supports not (background: paint(something)) {
	.ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner::before {
		background: linear-gradient(90deg, #7d2f9c, #0a6ed1, #c66a85, #df6e0c, #7d2f9c);
		animation: none;
	}
}

/* Versão dark: ícone/texto em violeta claro para contraste no header escuro
   (o roxo #7d2f9c do tema claro fica ilegível sobre o shell #12171c).
   A borda em gradiente e o glow já funcionam no escuro. */
html.sapUiTheme-sap_horizon_dark .ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner > .sapMBtnIcon,
html.sapUiTheme-sap_horizon_dark .ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner .sapMBtnIcon,
html.sapUiTheme-sap_horizon_dark .ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner > .sapMBtnContent,
html.sapUiTheme-sap_horizon_dark .ivatex-btn-ai-assistente.sapMBtn > .sapMBtnInner .sapMBtnDefault {
	color: #d1a3e8 !important;
}

html.sapUiTheme-sap_horizon_dark .ivatex-btn-ai-assistente.sapMBtn:hover > .sapMBtnInner,
html.sapUiTheme-sap_horizon_dark .ivatex-btn-ai-assistente.sapMBtn:focus > .sapMBtnInner {
	background-color: rgba(209, 163, 232, 0.12) !important;
}
