/* Transações: trilhas estáveis, tokens φ e movimento que explica atualização. */
.fi-resource-transactions { --txn-step: 42ms; }
.fi-resource-transactions .gf-transactions-enter { animation: gf-transactions-in .34s both; animation-delay: calc(min(var(--i, 4), 10) * var(--txn-step)); }
/* A tabela contém modais fixed: transformar seu ancestral prende o overlay ao painel. */
.fi-resource-transactions .gf-transactions-section .fi-ta-header { animation: gf-transactions-header-in .34s backwards; animation-delay: calc(min(var(--i, 4), 10) * var(--txn-step)); }
@keyframes gf-transactions-header-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes gf-transactions-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.fi-resource-transactions .gf-transaction-workspace { position: relative; }
.fi-resource-transactions .gf-transaction-workspace.is-loading > section,
.fi-resource-transactions:has(.gf-transaction-workspace.is-loading) .gf-workflow-view-grid,
.fi-resource-transactions:has(.gf-transaction-workspace.is-loading) .gf-transactions-section .fi-ta-content-ctn { pointer-events: none; }
/* Carregamento não altera opacidade de superfícies. Cabeçalho/filtros ficam fora
   da trava das linhas para permitir digitação nas buscas remotas dos selects. */
.fi-resource-transactions .gf-workspace-loading { position: absolute; top: 100%; right: 13px; z-index: 2; font-size: .75rem; pointer-events: none; }
.fi-resource-transactions .gf-household-control { display: flex; align-items: center; gap: 8px; }
.fi-resource-transactions .gf-household-control > span { font-size: .75rem; color: var(--gf-text-muted); }
.fi-resource-transactions :is(.gf-household-control select,.gf-universe-toggle button) { height: 36px; min-height: 36px; }
.fi-resource-transactions .gf-workflow-view-grid { position: relative; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 8px; }
.fi-resource-transactions .gf-workflow-indicator { position: absolute; top: 0; left: 0; border: 2px solid var(--gf-accent-open); border-radius: var(--gf-radius-lg); pointer-events: none; z-index: 1; transition: transform .26s ease, width .26s ease, height .26s ease; }
.fi-resource-transactions .gf-workflow-view-card { position: relative; grid-template-columns: 34px minmax(0,1fr); min-height: 72px; padding: 8px 13px; gap: 8px; overflow: hidden; }
.fi-resource-transactions .gf-workflow-view-card.is-active { border-color: var(--view-accent); box-shadow: inset 0 -3px var(--view-accent); }
.fi-resource-transactions .gf-workflow-view-card.is-active .gf-workflow-view-copy strong { color: var(--gf-text); }
.fi-resource-transactions .gf-workflow-view-icon { width: 34px; height: 34px; border-radius: 8px; }
.fi-resource-transactions .gf-workflow-view-copy small { white-space: normal; line-height: 1.2; min-height: 2.4em; font-size: .76rem; }
.fi-resource-transactions .gf-workflow-view-copy strong { font-size: 1.3rem; }
.fi-resource-transactions .gf-workflow-view-card:is(.is-all,.is-neutral,.is-missing) { --view-accent: var(--gf-accent-neutral); --view-tint: color-mix(in srgb,var(--view-accent) 13%,transparent); }
.fi-resource-transactions .gf-workflow-view-card:is(.is-receivable,.is-payable) { --view-accent: var(--gf-accent-open); --view-tint: color-mix(in srgb,var(--view-accent) 13%,transparent); }
.fi-resource-transactions .gf-workflow-view-card.is-settled { --view-accent: var(--gf-accent-paid); --view-tint: color-mix(in srgb,var(--view-accent) 13%,transparent); }
.fi-resource-transactions .gf-workflow-view-card.is-overdue { --view-accent: var(--gf-accent-risk); --view-tint: color-mix(in srgb,var(--view-accent) 13%,transparent); }
.gf-count-up { display: inline-grid; position: relative; min-height: 1em; font-variant-numeric: tabular-nums; }
.fi-resource-transactions .gf-transaction-number, .fi-resource-transactions .gf-transaction-number > span { font: inherit !important; color: inherit !important; }
.gf-number-final { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gf-count-up > [aria-hidden="true"] { grid-area: 1 / 1; }
.gf-number-reserve { visibility: hidden; white-space: nowrap; }
.fi-resource-transactions .gf-workflow-view-card .gf-transaction-number.is-changed { animation: gf-number-change .45s ease-out; }
@keyframes gf-number-change { 45% { transform: scale(1.08); } }
.fi-resource-transactions .gf-live-progress { height: 8px; border-radius: 5px; background: color-mix(in srgb,var(--gf-text-muted) 18%,transparent); overflow: hidden; }
.fi-resource-transactions .gf-live-progress > span { display: block; width: 100%; height: 100%; background: var(--gf-accent-paid); transform-origin: left; transition: transform .65s cubic-bezier(.22,1,.36,1); }
.fi-resource-transactions .gf-progress-grid article:last-child .gf-live-progress > span { background: var(--gf-accent-open); }
.fi-resource-transactions .gf-attention-card { min-height: 112px; display: grid; grid-template-rows: minmax(2.4em,auto) auto 1fr; gap: 5px; }
.fi-resource-transactions .gf-attention-card > span { line-height: 1.2; }
.gf-attention-item { min-width: 0; display: flex; flex-direction: column; }
.gf-attention-item > .gf-attention-card { width: 100%; flex: 1; }
.gf-debit-import-action { padding: 8px 12px; color: var(--primary-500); font-size: .76rem; font-weight: 650; text-decoration: underline; border-radius: var(--gf-radius); }
.gf-attention-item.is-unbased .gf-attention-card small { color: var(--gf-accent-neutral); }
.gf-attention-card.is-neutral:not(.is-zero) strong { color: var(--gf-accent-neutral); }
.gf-account-risk { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gf-account-risk-badge { display: inline-flex; align-items: center; gap: 4px; border-radius: 6px; padding: 2px 6px; font-weight: 700; font-size: 12px; }
.gf-account-risk-badge.is-unbased { color: var(--gf-accent-neutral); background: color-mix(in srgb,var(--gf-accent-neutral) 12%,transparent); }
.gf-account-risk-badge.is-confirmed { color: var(--gf-accent-risk); background: color-mix(in srgb,var(--gf-accent-risk) 12%,transparent); }
.fi-resource-transactions .gf-table-identity-title:focus-visible { outline: 2px solid var(--gf-accent-open); outline-offset: 2px; border-radius: 3px; }
/* Um quadro comum na Descrição, inclusive marcas largas e ícones de categoria. */
.gf-txn-identity .gf-transaction-table-mark-shell { flex: 0 0 74px; width: 74px; height: 46px; }
.gf-txn-identity .gf-transaction-table-mark-shell > .gf-visual {
    --gf-visual-w: 46px !important; --gf-visual-h: 46px !important;
    width: 46px !important; height: 46px !important; padding: 3px;
    background: #fff; border: 1px solid #e6eaf0; border-radius: var(--gf-radius) !important; box-shadow: none;
}
.gf-txn-identity .gf-transaction-table-mark-shell > .gf-visual > img { width: 100% !important; height: 100% !important; object-fit: contain; padding: 0; filter: none; }
.gf-txn-identity .gf-transaction-table-mark-shell > .gf-visual-reimbursement {
    --gf-visual-w: 74px !important;
    width: 74px !important; padding: 0; background: transparent; border: 0;
}
.fi-resource-transactions .gf-debit-basis-warning { font-size: .7rem; color: var(--gf-text-muted); }
.fi-resource-transactions .gf-account-details-toggle { text-align: left; color: var(--gf-text-muted); font-size: .8rem; font-weight: 650; cursor: pointer; }
.fi-resource-transactions .gf-account-details-collapse { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .26s ease; }
.fi-resource-transactions .gf-account-details-collapse.is-expanded { grid-template-rows: 1fr; }
.fi-resource-transactions .gf-account-details-collapse > div { min-height: 0; overflow: hidden; display: grid; gap: 8px; }
.fi-resource-transactions .gf-account-details-collapse article { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px 13px; padding: 13px 0; }
.fi-resource-transactions .gf-account-details-collapse a { color: var(--gf-accent-open); }
.fi-resource-transactions .gf-payment-method-short { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: top; }
.fi-resource-transactions .gf-transactions-section .fi-ta-cell-status .gf-payment-status { width: 138px !important; min-width: 138px; max-width: 138px; height: 44px !important; min-height: 44px !important; box-sizing: border-box; }
.fi-resource-transactions .gf-payment-status-label { white-space: nowrap; text-overflow: ellipsis; }
@media (min-width: 1280px) {
    .fi-resource-transactions .fi-ta-cell-status { padding-inline: 8px !important; }
    .fi-resource-transactions .fi-ta-cell-status .fi-ta-text-item { padding-inline: 0; overflow: visible; }
}
.fi-resource-transactions .gf-txn-row-due-today { --txn-row-tone: var(--gf-accent-attention); }
.fi-resource-transactions .fi-ta-row.gf-txn-row-due-today { border-left-color: var(--gf-accent-attention) !important; box-shadow: inset 3px 0 var(--gf-accent-attention); }
.fi-resource-transactions .fi-ta-row { transition: background-color .18s ease, opacity .18s ease; }
.fi-resource-transactions .gf-value-comparison-compact { display: block; line-height: 1.3; min-height: 1.3em; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .7rem; color: var(--gf-text-muted); }
.fi-resource-transactions .fi-ta-cell-amount .fi-ta-text-description { width: 100%; max-width: 100%; min-width: 0; }
.fi-resource-transactions .gf-value-comparison-compact.is-favorable { color: var(--gf-accent-paid); }
.fi-resource-transactions .gf-value-comparison-compact.is-unfavorable { color: var(--gf-accent-risk); }
.fi-resource-transactions .gf-transaction-table-mark-shell { border-radius: 8px; }
.fi-resource-transactions .gf-transaction-table-mark-shell .gf-visual-card { --gf-visual-w: 63.4px !important; --gf-visual-h: 40px !important; }
.fi-resource-transactions .gf-transactions-section.is-settled { --i: 5; }
.fi-resource-transactions .fi-ta-empty-state { animation: gf-transactions-in .26s both; }
.fi-resource-transactions .gf-recently-settled { animation: gf-settled-flash 1.1s ease-out; }
@keyframes gf-settled-flash { from { background-color: color-mix(in srgb,var(--gf-accent-paid) 20%,transparent); } to { background-color: transparent; } }
.gf-row-departure { position: fixed; pointer-events: none; z-index: 20; border-radius: 8px; background: color-mix(in srgb,var(--gf-accent-paid) 18%,transparent); animation: gf-row-out .3s ease-out both; }
@keyframes gf-row-out { to { opacity: 0; transform: translateY(-5px); } }
@media (min-width: 1920px) { .fi-resource-transactions .gf-workflow-view-grid { grid-template-columns: repeat(10,minmax(0,1fr)); } }
@media (max-width: 767px) {
    .fi-resource-transactions .gf-workflow-view-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .fi-resource-transactions :is(.gf-household-control select,.gf-universe-toggle button) { height: 44px; min-height: 44px; }
    .fi-resource-transactions .gf-household-control { width: 100%; }
    .fi-resource-transactions .gf-household-control select { flex: 1; min-width: 0; }
    .fi-resource-transactions .gf-account-details-collapse article { grid-template-columns: 1fr; }
    .fi-resource-transactions .gf-cash-mobile-summary > .is-primary { grid-template-columns: 1fr; gap: 5px; }
    .fi-resource-transactions .gf-cash-mobile-summary > .is-primary strong { justify-self: end; white-space: nowrap; }
    .fi-resource-transactions .gf-cash-mobile-summary dl { grid-template-columns: 1fr; gap: 5px; }
    .fi-resource-transactions .gf-cash-mobile-summary dl > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 13px; }
    .fi-resource-transactions .gf-cash-mobile-summary dd { white-space: nowrap; text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
    .fi-resource-transactions.fi-page *, .fi-resource-transactions.fi-page *::before, .fi-resource-transactions.fi-page *::after { animation: none !important; transition: none !important; transition-duration: 0s !important; scroll-behavior: auto !important; }
}
