/* Template de linha de lançamento — card+table híbrido (mockup-v2) */

.lanc-list {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: .65rem;
  overflow: hidden;
}

.lanc-list-head {
  display: grid;
  grid-template-columns: 200px 1fr 90px 110px 150px 40px;
  gap: .75rem;
  padding: .45rem .85rem;
  background: var(--bg-2);
  border-bottom: 1px solid var(--border);
  font-size: .6rem;
  font-weight: 700;
  color: var(--text-dim);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.lanc-list-head > div:nth-child(3) { text-align: center }
.lanc-list-head > div:nth-child(4),
.lanc-list-head > div:nth-child(5) { text-align: right }

.lanc {
  display: grid;
  grid-template-columns: 200px 1fr 90px 110px 150px 40px;
  gap: .75rem;
  align-items: center;
  padding: .6rem .85rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  transition: background .12s;
}
.lanc:last-child { border-bottom: none }
.lanc:hover { background: var(--bg-2) }

.lanc-cc {
  display: flex; align-items: center; gap: .4rem;
  border-right: 1px dashed var(--border);
  padding-right: .75rem; height: 100%;
}
.lanc-cc-cod {
  font-family: ui-monospace, monospace;
  font-size: .65rem; font-weight: 700;
  color: var(--text); background: var(--border);
  padding: .1rem .4rem; border-radius: .25rem;
}
.lanc-cc-name {
  font-size: .72rem; color: var(--text); font-weight: 500;
  line-height: 1.15;
}

.lanc-desc { display: flex; flex-direction: column; gap: .2rem; min-width: 0 }
.lanc-desc-main {
  font-size: .82rem; font-weight: 600; color: var(--text);
  line-height: 1.2;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.lanc-desc-meta {
  display: flex; align-items: center; gap: .4rem; flex-wrap: wrap;
  font-size: .68rem; color: var(--text-dim);
}
.lanc-desc-orig {
  font-size: .64rem; color: var(--text-mut); line-height: 1.1;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  min-width: 0;
}

.lanc-cat-chip {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .1rem .5rem; border-radius: 9999px;
  font-size: .62rem; font-weight: 600;
  background: var(--bg-2); color: var(--text);
}
.lanc-cat-chip::before {
  content: ''; width: .45rem; height: .45rem; border-radius: 9999px;
  background: var(--cat-color, #94a3b8);
}
.lanc-evento-chip {
  display: inline-flex; align-items: center;
  padding: .1rem .5rem; border-radius: 9999px;
  font-size: .62rem; font-weight: 600;
  background: rgba(99,102,241,.15); color: #4f46e5;
}
.lanc-daysep {
  padding: .35rem .6rem .25rem;
  margin-top: .3rem;
  font-size: .62rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--text-dim);
  border-bottom: 1px solid var(--border);
}

/* Coluna Freq — único lugar pra parcela OU recorrência OU sugestão IA */
.lanc-freq {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .2rem; text-align: center;
}
.lanc-freq-empty { font-size: .65rem; color: var(--text-dim) }

.lanc-freq-parc {
  font-size: .7rem; font-weight: 700; color: var(--text);
  background: var(--bg-2); border: 1px solid var(--border);
  padding: .15rem .45rem; border-radius: .3rem;
  font-variant-numeric: tabular-nums;
}
.lanc-freq-bar {
  height: 3px; width: 55px; background: var(--border);
  border-radius: 9999px; overflow: hidden;
}
.lanc-freq-bar > div { height: 100%; background: #3b82f6; border-radius: 9999px }

.lanc-freq-recor {
  font-size: .62rem; font-weight: 700; color: #7c3aed;
  background: #f3e8ff; border: 1px solid #d8b4fe;
  padding: .15rem .5rem; border-radius: 9999px; cursor: pointer;
}
.lanc-freq-recor:hover { background: #e9d5ff; }

/* Extrato (mini-gráfico de barras dos últimos meses) */
.ext-stats { display: flex; justify-content: space-between; font-size: .72rem; color: var(--text-dim); margin-bottom: .6rem; }
.ext-stats b { color: var(--text); }
.ext-chart { display: flex; align-items: flex-end; gap: 4px; height: 130px; padding: .3rem 0 0; border-bottom: 1px solid var(--border); }
.ext-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; }
.ext-bar-fill { width: 70%; background: #a78bfa; border-radius: 3px 3px 0 0; min-height: 2px; transition: height .2s; }
.ext-bar:hover .ext-bar-fill { background: #7c3aed; }
.ext-bar-lbl { font-size: .5rem; color: var(--text-mut); margin-top: 3px; white-space: nowrap; }
.ext-list { margin-top: .7rem; max-height: 9rem; overflow-y: auto; }
.ext-row { display: flex; justify-content: space-between; font-size: .74rem; padding: .25rem .1rem; border-bottom: 1px solid var(--surface-2,#f1f5f9); font-variant-numeric: tabular-nums; }
.ext-empty { padding: 1.5rem; text-align: center; color: var(--text-mut); font-size: .85rem; }
.lanc-freq-sub {
  font-size: .55rem; color: var(--text-dim);
  text-transform: uppercase; letter-spacing: .04em;
}
/* dias da semana de uma recorrência semanal: [SEG][SEX] bem pequenos */
.lanc-freq-dows { display: inline-flex; gap: 2px; margin-top: .12rem; }
.lanc-freq-dows span {
  font-size: .5rem; font-weight: 700; letter-spacing: .02em;
  color: #6d28d9; background: #f3e8ff; border: 1px solid #e9d5ff;
  padding: 0 .25rem; border-radius: .25rem; line-height: 1.35;
}

/* Datas: stack vertical com label + valor */
.lanc-datas {
  display: flex; flex-direction: column; gap: .15rem; align-items: flex-end;
}
.lanc-data {
  display: flex; align-items: baseline; gap: .4rem;
  font-size: .72rem; font-variant-numeric: tabular-nums; line-height: 1.1;
}
.lanc-data-lbl {
  font-size: .55rem; color: var(--text-dim);
  font-weight: 600; text-transform: uppercase; letter-spacing: .04em;
  width: 48px; text-align: right;
}
.lanc-data-val { color: var(--text); font-weight: 500 }

/* Valor + status pago */
.lanc-money {
  display: flex; flex-direction: column; gap: .1rem;
  align-items: flex-end; text-align: right;
}
.lanc-valor {
  font-size: .95rem; font-weight: 700;
  font-variant-numeric: tabular-nums; line-height: 1.1;
}
.lanc-valor.pos { color: #059669 }
.lanc-valor.neg { color: #dc2626 }

/* seleção por clique + barra de edição em massa na lista de banco/cartão */
.lanc.sel { background: rgba(79,70,229,.10); }
.lanc-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .4rem .65rem; background: var(--bg-2); border-bottom: 1px solid var(--border); }
.lanc-bulk[hidden] { display: none; }   /* só aparece quando há seleção */
.lanc-bulk-count { font-size: .72rem; font-weight: 600; color: var(--text); }
.lanc-bulk select { font-size: .72rem; padding: .25rem .4rem; border: 1px solid var(--border); border-radius: .35rem; background: var(--surface); color: var(--text); max-width: 13rem; }
.lanc-bulk-apply { font-size: .72rem; font-weight: 600; padding: .28rem .7rem; background: #4338ca; color: #fff; border: none; border-radius: .35rem; cursor: pointer; }
.lanc-bulk-apply:disabled { opacity: .5; cursor: default; }
.lanc-bulk-clear { font-size: .72rem; padding: .28rem .55rem; background: transparent; border: 1px solid var(--border); border-radius: .35rem; cursor: pointer; color: var(--text-mut); }
.lanc-pago {
  font-size: .6rem;
  font-variant-numeric: tabular-nums; line-height: 1.1;
}
.lanc-pago.ok   { color: #059669 }
.lanc-pago.pend { color: #b45309; font-weight: 700; }
.lanc-pago.parc { color: #0369a1 }
.lanc-baixa-btn {
  margin-top: .15rem; font-size: .62rem; font-weight: 700; cursor: pointer;
  padding: .12rem .5rem; border-radius: .3rem;
  border: 1px solid #f59e0b; background: rgba(245,158,11,.12); color: #b45309;
}
.lanc-baixa-btn:hover { background: rgba(245,158,11,.25); }
.lanc-baixa-btn:disabled { opacity: .5; cursor: default; }
.lanc-baixa-btn.conciliar { border-color: #6366f1; background: rgba(99,102,241,.12); color: #4f46e5; }
.lanc-baixa-btn.conciliar:hover { background: rgba(99,102,241,.22); }
/* linha de ações da célula de valor: ícone de contexto + Conciliar lado a lado */
.lanc-money-actions { display: flex; align-items: stretch; gap: .3rem; margin-top: .15rem; }
.lanc-money-actions .lanc-baixa-btn { margin-top: 0; }
/* mesma altura do botão Conciliar: mesmo padding vertical + box-sizing; align-items:stretch
   iguala as alturas quando os dois aparecem juntos. */
.lanc-ctx-btn {
  display: inline-flex; align-items: center; justify-content: center; line-height: 0;
  box-sizing: border-box; padding: .12rem .4rem; border-radius: .3rem; cursor: pointer;
  border: 1px solid var(--border); background: transparent; color: var(--text-mut);
}
.lanc-ctx-btn svg { width: 12px; height: 12px; }
.lanc-ctx-btn:hover { border-color: #6366f1; color: #4f46e5; background: rgba(99,102,241,.10); }
/* toolbar de filtros + ordenação */
.lanc-toolbar { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; padding: .5rem .2rem; }
.lanc-toolbar input, .lanc-toolbar select { font-size: .75rem; padding: .35rem .5rem; border: 1px solid var(--border); border-radius: .4rem; background: var(--surface); color: var(--text); }
.lanc-tb-search { flex: 1; min-width: 140px; }
.lanc-tb-count { margin-left: auto; font-size: .68rem; color: var(--text-mut); font-variant-numeric: tabular-nums; }
.lanc-list-head .sortable { cursor: pointer; user-select: none; }
.lanc-list-head .sortable:hover { color: var(--text); }
.lanc-list-head .on { color: var(--accent, #4f46e5); font-weight: 700; }
.sort-ind { font-size: .7rem; }
.lanc-empty { padding: 1.2rem; text-align: center; color: var(--text-mut); font-size: .8rem; }

.lanc-menu-btn { cursor: pointer; background: transparent; border: none; color: var(--text-mut); font-size: 1.1rem; line-height: 1; padding: .2rem .4rem; border-radius: .35rem; }
.lanc-menu-btn:hover { background: var(--bg-2); color: var(--text); }

/* menu do kebab (⋯) */
.kebab-menu { position: fixed; z-index: 10000; background: var(--surface); border: 1px solid var(--border); border-radius: .5rem; box-shadow: 0 10px 30px rgba(0,0,0,.18); padding: .25rem; min-width: 150px; display: flex; flex-direction: column; }
.kebab-menu button { text-align: left; padding: .45rem .6rem; border: none; background: transparent; font-size: .78rem; color: var(--text); cursor: pointer; border-radius: .35rem; }
.kebab-menu button:hover { background: var(--bg-2); }
.kebab-menu button.danger { color: #dc2626; }
.kebab-menu button.danger:hover { background: rgba(220,38,38,.1); }

/* escopo (parcelas/recorrência) no editar/excluir */
.le-escopo { margin-top: .6rem; padding: .5rem .65rem; background: var(--bg-2); border-radius: .45rem; font-size: .78rem; display: flex; flex-direction: column; gap: .3rem; }
.le-escopo .imp-field-label { margin-bottom: .15rem; }
.le-escopo label { cursor: pointer; display: flex; align-items: center; gap: .4rem; }

.lanc-menu-btn {
  background: transparent; border: none; cursor: pointer;
  font-size: 1.1rem; color: var(--text-dim); padding: .25rem .4rem;
}
.lanc-menu-btn:hover { color: var(--text); background: var(--bg-2); border-radius: .3rem }

/* grupo de parcelas (competência) — linha-pai desdobrável */
.lanc-group { cursor: pointer; background: var(--bg-2); }
.lanc-group:hover { background: var(--border); }
.lanc-group-caret { display: inline-block; color: var(--text-dim); font-size: .72rem; transition: transform .15s; }
.lanc-group-wrap.open .lanc-group-caret { transform: rotate(90deg); }
.lanc-group-count { font-size: .62rem; color: var(--text-dim); font-weight: 600; }
.lanc-group-children { display: none; border-left: 3px solid #c4b5fd; background: var(--surface); }
.lanc-group-wrap.open .lanc-group-children { display: block; }
.lanc-group-children .lanc:last-child { border-bottom: none; }

/* fatura (ciclo de vencimento) — cabeçalho desdobrável no cartão */
.fatura-wrap { border-bottom: 1px solid var(--border); }
.fatura-wrap:last-child { border-bottom: none; }
.fatura-head {
  display: flex; align-items: center; gap: .6rem; cursor: pointer;
  padding: .6rem .85rem; background: var(--bg-2);
}
.fatura-head:hover { background: var(--border); }
.fatura-caret { color: var(--text-dim); font-size: .72rem; transition: transform .15s; }
.fatura-wrap.open .fatura-caret { transform: rotate(90deg); }
.fatura-tit { font-size: .82rem; color: var(--text); }
.fatura-tit b { font-weight: 700; text-transform: capitalize; }
.fatura-venc { font-size: .65rem; color: var(--text-dim); margin-left: .3rem; }
.fatura-n { font-size: .62rem; color: var(--text-mut); }
.fatura-status {
  font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
  padding: .1rem .45rem; border-radius: 9999px;
}
.fatura-status.st-aberta  { background: rgba(245,158,11,.14); color: #b45309; }
.fatura-status.st-paga    { background: rgba(5,150,105,.14);  color: #059669; }
.fatura-status.st-parcial { background: rgba(59,130,246,.14); color: #0369a1; }
.fatura-total { margin-left: auto; font-size: .9rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.fatura-total.neg { color: #dc2626; }
.fatura-total.pos { color: #059669; }
.fatura-pagar {
  font-size: .68rem; font-weight: 700; cursor: pointer;
  padding: .25rem .65rem; border-radius: .4rem;
  border: 1px solid #6366f1; background: #4f46e5; color: #fff;
}
.fatura-pagar:hover { background: #4338ca; }
.fatura-pago { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .35rem .75rem; font-size: .72rem; color: var(--text-mut); background: var(--bg-2); border-bottom: 1px solid var(--border); }
.fatura-pago b { color: var(--text); font-variant-numeric: tabular-nums; }
.fatura-saldo { font-weight: 700; font-variant-numeric: tabular-nums; }
.fatura-children { display: none; }
.fatura-wrap.open .fatura-children { display: block; }
.fatura-children .lanc:last-child { border-bottom: none; }

/* botão "Por centro" na toolbar */
.lanc-tb-group {
  font-size: .72rem; font-weight: 600; cursor: pointer; white-space: nowrap;
  padding: .35rem .6rem; border-radius: .4rem;
  border: 1px solid var(--border); background: var(--surface); color: var(--text-dim);
}
.lanc-tb-group:hover { background: var(--bg-2); color: var(--text); }
.lanc-tb-group.on { background: var(--text); color: var(--surface); border-color: var(--text); }

/* blocos por centro de custo (agrupamento "Por centro") */
.centro-wrap { border-bottom: 1px solid var(--border); }
.centro-wrap:last-child { border-bottom: none; }
.centro-head {
  display: flex; align-items: center; gap: .6rem; cursor: pointer;
  padding: .6rem .85rem; background: var(--bg-2);
}
.centro-head:hover { background: var(--border); }
.centro-caret { color: var(--text-dim); font-size: .72rem; transition: transform .15s; }
.centro-wrap.open .centro-caret { transform: rotate(90deg); }
.centro-tit { font-size: .82rem; color: var(--text); }
.centro-cod { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text-dim); margin-right: .15rem; }
.centro-count { font-size: .65rem; color: var(--text-mut); }
.centro-total { margin-left: auto; font-size: 1.15rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.centro-total.neg { color: #dc2626; }
.centro-total.pos { color: #059669; }
.centro-children { display: none; }
.centro-wrap.open .centro-children { display: block; }
.centro-children .lanc:last-child { border-bottom: none; }

/* aba Capturas (fila SMS/notificação a importar) */
.imp-tab-badge { font-size: .6rem; font-weight: 700; }
.imp-tab-badge.on { background: #dc2626; color: #fff; border-radius: 9999px; padding: 0 .35rem; margin-left: .25rem; }
.cap-vazio { font-size: .75rem; color: var(--text-mut); padding: 1rem .2rem; }
.cap-head { display: flex; align-items: center; justify-content: space-between; padding: .2rem 0 .5rem; }
.cap-count { font-size: .72rem; font-weight: 600; color: var(--text); }
.cap-list { display: flex; flex-direction: column; gap: .4rem; max-height: 50vh; overflow-y: auto; }
.cap-row { display: grid; grid-template-columns: 1fr 110px 130px auto auto; gap: .4rem; align-items: center; padding: .45rem .5rem; border: 1px solid var(--border); border-radius: .5rem; background: var(--surface); }
.cap-info { min-width: 0; }
.cap-desc { font-size: .8rem; font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cap-meta { font-size: .65rem; color: var(--text-dim); }
.cap-meta b { color: #dc2626; font-variant-numeric: tabular-nums; }
.cap-row select { font-size: .7rem; padding: .25rem .3rem; border: 1px solid var(--border); border-radius: .35rem; background: var(--surface); color: var(--text); }
.cap-imp { font-size: .68rem; font-weight: 700; cursor: pointer; padding: .3rem .55rem; border-radius: .4rem; border: 1px solid #6366f1; background: #4f46e5; color: #fff; }
.cap-imp:hover { background: #4338ca; }
.cap-del { font-size: .9rem; line-height: 1; cursor: pointer; padding: .2rem .45rem; border-radius: .4rem; border: 1px solid var(--border); background: var(--bg-2); color: var(--text-mut); }
.cap-del:hover { color: #dc2626; }

/* bloco de faturas de cartão a vencer (timeline do banco) */
.fat-strip { border: 1px dashed #c4b5fd; background: rgba(99,102,241,.04); border-radius: .6rem; margin-bottom: .7rem; overflow: hidden; }
.fat-strip-tit { font-size: .6rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #6d28d9; padding: .45rem .75rem; border-bottom: 1px dashed rgba(99,102,241,.3); }
.fat-strip-row { display: flex; align-items: center; gap: .6rem; width: 100%; text-align: left; background: transparent; border: none; border-bottom: 1px solid rgba(99,102,241,.12); padding: .5rem .75rem; cursor: pointer; font-size: .78rem; color: var(--text); }
.fat-strip-row:last-child { border-bottom: none; }
.fat-strip-row:hover { background: rgba(99,102,241,.08); }
.fat-strip-nome { font-weight: 600; }
.fat-strip-venc { font-size: .65rem; color: var(--text-dim); }
.fat-strip-val { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; color: #dc2626; }
.fat-strip-go { font-size: .68rem; color: #6366f1; font-weight: 600; }
.fat-chip { font-size: .56rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: .08rem .4rem; border-radius: 9999px; }
.fat-chip.paga { background: rgba(5,150,105,.14); color: #059669; }
.fat-chip.aberta { background: rgba(99,102,241,.14); color: #4f46e5; }
.fat-strip-row.paga { cursor: default; }
.fat-strip-row.paga:hover { background: transparent; }
.fat-strip-row.paga .fat-strip-val { color: #047857; }
.fat-pagar { font-size: .66rem; font-weight: 700; cursor: pointer; padding: .2rem .6rem; border-radius: .4rem; border: 1px solid #6366f1; background: #4f46e5; color: #fff; }
.fat-pagar:hover { background: #4338ca; }
/* fatura a pagar (importada, não quitada) */
.fat-chip.apagar { background: rgba(217,119,6,.16); color: #b45309; }
.fat-strip-row.apagar .fat-strip-val { color: #b45309; }
.fat-vincular { font-size: .66rem; font-weight: 700; cursor: pointer; padding: .2rem .6rem; border-radius: .4rem; border: 1px solid #059669; background: #059669; color: #fff; margin-right: .3rem; }
.fat-vincular:hover { background: #047857; }
.fat-desfazer { font-size: .62rem; font-weight: 600; cursor: pointer; padding: .18rem .5rem; border-radius: .4rem; border: 1px solid rgba(120,120,130,.4); background: transparent; color: var(--muted, #6b7280); }
.fat-desfazer:hover { background: rgba(120,120,130,.1); color: var(--text); }
/* candidatos do modal "Já paguei" */
.vf-cand { display: flex; align-items: center; justify-content: space-between; gap: .6rem; width: 100%; text-align: left; background: rgba(99,102,241,.05); border: 1px solid rgba(99,102,241,.18); border-radius: .5rem; padding: .55rem .7rem; margin-bottom: .4rem; cursor: pointer; color: var(--text); }
.vf-cand:hover { background: rgba(5,150,105,.1); border-color: #059669; }
.vf-cand:disabled { opacity: .5; cursor: default; }
.vf-cand-l { display: flex; flex-direction: column; gap: .12rem; }
.vf-cand-l b { font-size: .92rem; }
.vf-cand-d { font-size: .7rem; color: var(--muted, #6b7280); }
.vf-cand-diff { font-size: .66rem; font-weight: 700; color: #b45309; white-space: nowrap; }
.vf-cand-diff.zero { color: #059669; }
.vf-vazio { padding: 1.2rem .8rem; text-align: center; font-size: .82rem; line-height: 1.6; color: var(--text); }
/* relatório Conferir fatura */
.cf-tot { display: flex; gap: 1rem; flex-wrap: wrap; padding: .6rem .2rem; border-bottom: 1px solid rgba(99,102,241,.14); font-size: .8rem; }
.cf-tot b { font-size: .92rem; }
.cf-ok { color: #059669; }
.cf-warn { color: #b45309; }
.cf-body { padding: .5rem .2rem; max-height: 50vh; overflow: auto; }
.cf-line { font-size: .82rem; padding: .2rem 0; }
.cf-line b { font-size: .95rem; }
.cf-sec { margin-top: .7rem; }
.cf-sec-t { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; color: var(--muted, #6b7280); margin-bottom: .25rem; }
.cf-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-size: .78rem; padding: .28rem .2rem; border-bottom: 1px solid rgba(120,120,130,.1); }
.cf-row i { color: var(--muted, #6b7280); font-size: .7rem; }
.cf-alinhar { font-size: .64rem; font-weight: 700; cursor: pointer; padding: .15rem .5rem; border-radius: .35rem; border: 1px solid #6366f1; background: #4f46e5; color: #fff; white-space: nowrap; }
.cf-alinhar:hover { background: #4338ca; }
.cf-alinhar.cf-done { background: transparent; color: #059669; border-color: #059669; cursor: default; }

/* modal Pagar fatura */
.pf-overlay { position: fixed; inset: 0; z-index: 9000; background: rgba(15,23,42,.45); backdrop-filter: blur(2px); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.pf-modal { background: var(--surface); border: 1px solid var(--border); border-radius: .8rem; width: 100%; max-width: 560px; max-height: 88vh; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.pf-head { display: flex; align-items: flex-start; justify-content: space-between; padding: .85rem 1rem; border-bottom: 1px solid var(--border); }
.pf-title { font-size: .95rem; font-weight: 700; color: var(--text); text-transform: capitalize; }
.pf-sub { font-size: .68rem; color: var(--text-dim); margin-top: .15rem; }
.pf-x { background: transparent; border: none; color: var(--text-mut); cursor: pointer; font-size: .8rem; padding: .2rem .4rem; }
.pf-tools { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .55rem 1rem; flex-wrap: wrap; }
.pf-mini { font-size: .68rem; cursor: pointer; padding: .25rem .55rem; border: 1px solid var(--border); border-radius: .4rem; background: var(--bg-2); color: var(--text); }
.pf-mini:hover { background: var(--border); }
.pf-alvo { display: flex; align-items: center; gap: .35rem; font-size: .68rem; color: var(--text-dim); }
.pf-alvo-in { width: 100px; font-size: .72rem; padding: .25rem .4rem; border: 1px solid var(--border); border-radius: .4rem; background: var(--surface); color: var(--text); }
.pf-list { flex: 1; overflow-y: auto; padding: 0 1rem; }
.pf-row { display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: .5rem; padding: .4rem .25rem; border-bottom: 1px solid var(--border); cursor: pointer; font-size: .78rem; }
.pf-row:last-child { border-bottom: none; }
.pf-row.on { background: rgba(99,102,241,.06); }
.pf-row-desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.pf-row-val { font-variant-numeric: tabular-nums; font-weight: 600; color: #dc2626; }
.pf-foot { border-top: 1px solid var(--border); padding: .7rem 1rem; display: flex; flex-direction: column; gap: .55rem; }
.pf-resumo { font-size: .8rem; color: var(--text); }
.pf-resumo b { font-variant-numeric: tabular-nums; }
.pf-dim { color: var(--text-dim); font-size: .68rem; }
.pf-reemb { color: #059669; font-size: .68rem; font-weight: 600; }
.pf-acoes { display: flex; align-items: flex-end; gap: .6rem; flex-wrap: wrap; }
.pf-campo { display: flex; flex-direction: column; gap: .15rem; font-size: .62rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: .04em; }
.pf-campo select { font-size: .78rem; padding: .3rem .45rem; border: 1px solid var(--border); border-radius: .4rem; background: var(--surface); color: var(--text); }
.pf-acoes [data-pagar] { margin-left: auto; }

/* parcela futura (previsto) */
.lanc-previsto { background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(99,102,241,.03) 8px, rgba(99,102,241,.03) 16px); }
.lanc-previsto .lanc-desc-main { color: var(--text-mut); }
.lanc-previsto-chip {
  font-size: .58rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
  padding: .08rem .4rem; border-radius: .3rem;
  background: rgba(99,102,241,.12); color: #6366f1; border: 1px dashed rgba(99,102,241,.5);
}
/* saída do banco que pagou fatura de cartão */
.lanc-fatura-chip {
  font-size: .6rem; font-weight: 700; padding: .08rem .45rem; border-radius: .3rem;
  background: rgba(13,148,136,.14); color: #0f766e; border: 1px solid rgba(13,148,136,.35);
  white-space: nowrap;
}
