/* ══ O DECK DE CARDS — o CSS do motor (`deck_core.js`) e do card da casa ════
 *
 * ⚠️ Saiu do `app.css` em 16/09/2026, sem mudar uma regra, pela mesma razão do
 * `tabela_rica.css` e do `card_wizard.css`: o HUB passou a usar o baralho (a
 * fila do Suporte ganhou as três visualizações — Tabela · Cards · Deck) e não
 * carrega o `app.css`. Componente é JS, CSS e markup, e a camada que o usa
 * precisa dos três. Uma fonte, dois `<link>` — no `base.html` ele entra DEPOIS
 * do `app.css`, e nenhuma regra posterior de lá com a mesma especificidade mira
 * estas classes (conferido ao mover).
 */

/* ════════════ DECK DE CARDS COM ARRASTE (`fcdeck`) ═══════════════════════
   ⚠️ **ESTE É O MODELO DE CARD DA CASA.** Ele nasceu no Fluxo de Caixa
   (Recebimentos & Pagamentos), virou o deck do Fechamento e agora é o das
   Aprovações. Enquanto viveu num `<style>` dentro de
   `main/dashboard_fluxo_caixa.html`, quem quisesse o mesmo card precisava
   COPIAR — e foi assim que apareceu uma terceira variante, com outro desenho e
   outras regras. Mudou aqui, muda em todas.

   Movido do template em 29/08/2026 sem alterar uma regra: mesmos seletores,
   mesmos valores. O `dashboard_fluxo_caixa.html` continua funcionando porque o
   que ele tinha inline é exatamente o que está aqui.

   Anatomia (é o contrato de quem monta o card):
     .fcdeck-wrap  → .fcdeck-top (contador + setas) + .fcdeck (a pilha)
     .fcdeck-card  → .fcdeck-stamp × 2 (carimbos do arraste)
                     .fcdeck-head  → .fcdeck-head-l (venc/doc/status) + .fcdeck-valor
                     .fcdeck-cli   → quem recebe, em destaque
                     .fcdeck-grid  → .fcdeck-field × N (.fcdeck-lbl + .fcdeck-val),
                                     `.fcdeck-field-wide` ocupa a linha inteira
   ⚠️ As AÇÕES não moram dentro do card: vivem numa barra fixa
   (`.fcdeck-actions`) que age sobre o card ATIVO. Botão dentro do card compete
   com o arraste — o dedo que ia empurrar acaba clicando. */
/* ── Deck de cards (swipe/arraste) das listas Recebimentos & Pagamentos ── */
.fcdeck-wrap { width:100%; max-width:600px; margin:8px auto 0; min-width:0; box-sizing:border-box; }
.fcdeck-wrap[hidden] { display:none; }
.fcdeck-wrap:focus { outline:none; }
/* ⚠️ **`wrap` + `min-width:0`, senão a barra empurra a PÁGINA de lado.**
   São seis controles numa linha (Mesa · 3D · Ações ao lado · « ‹ › »): em
   390px isso mede 409px, estoura o card e leva a rolagem horizontal pro
   `<body>`. O sintoma não é a barra cortada — é a TELA INTEIRA deslocada, com
   o começo de cada frase comido ("sperando por você", "edidos de outras
   pessoas"), porque a página passa a rolar de lado. Regra da casa: conteúdo
   largo rola dentro do próprio container; o corpo nunca. */
.fcdeck-top { display:flex; justify-content:space-between; align-items:center;
    gap:8px; margin-bottom:8px; flex-wrap:wrap; min-width:0; }
.fcdeck-counter { font-size:0.85rem; font-weight:700; color:#334155; font-variant-numeric:tabular-nums; }
.fcdeck-topleft { display:flex; flex-direction:column; gap:1px; min-width:0; }
.fcdeck-total { font-size:0.76rem; font-weight:600; color:#0f766e; font-variant-numeric:tabular-nums; }
.fcdeck-nav { display:flex; gap:6px; }
.fcdeck-navbtn { border:1px solid #d1d9e0; background:#fff; color:#334155; border-radius:8px; width:34px; height:32px;
    font-size:1.1rem; line-height:1; cursor:pointer; }
.fcdeck-navbtn:hover { background:#f1f5f9; }
.fcdeck-navbtn:active { transform:scale(.94); }
.fcdeck-navbtn:disabled { opacity:.4; cursor:default; transform:none; }
.fcdeck-pgbtn { font-weight:700; }
.fcdeck { position:relative; min-height:200px; transition:height .25s ease; touch-action:pan-y; }
/* Faixa da barra de desenho (fora do card). Posicionada ACIMA dos cards no
   empilhamento (cards são position:absolute z-index<=30) pra receber os cliques:
   sem isso os cards deslocados por cima da faixa comiam o clique nas cores. */
.fcdeck-drawbar { position:relative; z-index:60; }
/* ⚠️ **`user-select:none` AQUI É O QUE FAZ O SWIPE FUNCIONAR NO CELULAR.**
   Sem ele o card era quase impossível de arrastar de primeira: ele andava um
   pouco e voltava, e só ia mesmo se a pessoa tocasse uma vez e arrastasse no
   toque seguinte. A causa é o iOS: o card é feito de TEXTO, e arrastar sobre
   texto inicia a seleção nativa (a mesma do toque duplo) — o navegador assume
   o gesto e dispara `pointercancel`, que o motor lê como "soltou" e devolve o
   card ao meio. O primeiro toque só servia pra dispensar essa seleção.

   ⚠️ Repare que o card ANDAVA antes de voltar: é a prova de que o problema não
   era `touch-action` (aí ele nem sairia do lugar), e sim um cancelamento no
   meio do arraste. Foi o que despistou por meses.

   ⚠️ Só no CARD. No modo Tabela o texto continua selecionável e copiável — é
   lá que alguém copia um valor, e é lá que não há gesto pra atrapalhar.
   `-webkit-touch-callout` mata o balão de "Copiar/Compartilhar" do toque
   longo, que rouba o gesto pelo mesmo caminho. */
.fcdeck-card { position:absolute; inset:0; background:#fff; border:1px solid #e2e8f0; border-radius:16px;
    box-shadow:0 8px 28px rgba(15,23,42,.12); padding:14px 16px; box-sizing:border-box; overflow:hidden;
    touch-action:pan-y; transition:transform .34s ease, opacity .34s ease;
    user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
/* ⚠️ **NÃO abra exceção pros campos de texto do card.** A tentação é liberar
   `.fcdeck-val`/`.fcdeck-clival` "pra poder copiar o valor" — e eles são a
   MAIOR PARTE da superfície do card, ou seja, é exatamente por cima deles que
   o dedo arrasta. Liberar ali traz o defeito de volta inteiro. Quem precisa
   copiar troca pro modo Tabela, que é um toque e continua selecionável. */
/* Conta APAGADA no Omie mas ainda no cache — carimbo p/ não confundir. */
.fc-apagado { opacity:.5; }
tr.fc-apagado td { text-decoration:line-through; }
.fc-apagado-badge { display:inline-block; font-size:.62rem; font-weight:800; letter-spacing:.03em;
    text-transform:uppercase; white-space:nowrap; color:#b91c1c; background:#fee2e2;
    border:1px solid #fecaca; border-radius:6px; padding:2px 7px; margin-left:6px; }
.fcdeck-card.fc-apagado { opacity:.62; }
/* FAB desenhar/parar dentro do card (canto inferior direito). Fica ACIMA do canvas
   (z-index) pra continuar clicável durante o desenho — é o "parar". touch-action
   evita delay; o swipe do deck já ignora <button> no pointerdown. */
.fcdeck-carddraw {
  position:absolute; bottom:10px; right:10px; z-index:12;   /* ACIMA do .vdraw-canvas (z-index:8) senão o clique vira traço */
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--line,#e5ebf2); background:#fff; cursor:pointer;
  font-size:1.05rem; line-height:1; display:grid; place-items:center;
  box-shadow:0 4px 12px rgba(16,24,40,.14);
  transition:transform .12s, box-shadow .12s, background .12s, border-color .12s;
  touch-action:manipulation; -webkit-tap-highlight-color:transparent;
}
.fcdeck-carddraw:hover { transform:translateY(-1px); box-shadow:0 6px 16px rgba(16,24,40,.18); }
.fcdeck-carddraw.is-drawing {
  background:var(--brand-grad,linear-gradient(118deg,#8fcb3a,#16b1b3));
  border-color:transparent; color:#fff; box-shadow:0 6px 18px rgba(22,177,179,.4);
}
.fcdeck-card .fc-apagado-badge { position:absolute; top:12px; left:50%; z-index:7;
    transform:translateX(-50%) rotate(-7deg); font-size:.82rem; padding:5px 14px;
    box-shadow:0 3px 10px rgba(185,28,28,.25); }
.fcdeck-card.is-active { cursor:grab; }
.fcdeck-card.is-active.is-drag { cursor:grabbing; transition:none; }
.fcdeck-card.is-active.is-tall { overflow-y:auto; -webkit-overflow-scrolling:touch; }
.fcdeck-card.animate { transition:transform .32s ease, opacity .32s ease; }
.fcdeck-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px;
    padding-bottom:7px; margin-bottom:8px; border-bottom:1px solid #eef2f7; }
.fcdeck-head-l { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; min-width:0; }
.fcdeck-venc { font-size:0.9rem; font-weight:700; color:#1e293b; font-variant-numeric:tabular-nums; }
.fcdeck-dinc { font-size:0.72rem; font-weight:600; color:#64778a; font-variant-numeric:tabular-nums; }
.fcdeck-doc { font-size:0.74rem; color:#64778a; font-family:monospace; }
.fcdeck-valor { font-size:1.15rem; font-weight:800; font-variant-numeric:tabular-nums; flex:0 0 auto; }
.fcdeck-valor.r { color:#16a34a; } .fcdeck-valor.p { color:#e3525b; }
.fcdeck-cli { font-size:0.92rem; font-weight:600; color:#1c3040; margin-bottom:9px; overflow:hidden;
    text-overflow:ellipsis; white-space:nowrap; }
.fcdeck-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 14px; }
.fcdeck-field { display:flex; flex-direction:column; gap:2px; min-width:0; }
.fcdeck-field-wide { grid-column:1 / -1; }
.fcdeck-lbl { font-size:0.63rem; letter-spacing:0.04em; text-transform:uppercase; color:#94a3b8; font-weight:700; }
.fcdeck-val { font-size:0.82rem; color:#334155; min-width:0; word-break:break-word; }
/* Barra de AÇÕES externa (fora do card arrastável) — age no card ativo.
   margin-top folgado pra dar respiro entre o card e os botões. */
.fcdeck-actions { margin-top:26px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.fcdeck-actions[hidden] { display:none; }
.fcdeck-actions .fcdeck-act[hidden] { display:none; }
.fcdeck-act:disabled { opacity:.45; cursor:default; }
.fcdeck-act.is-done { opacity:.6; }

/* ── Opção "Ações ao lado" (deck-acoes-lado): botões numa coluna à DIREITA do card
   (desktop). Grid no wrap: cabeçalho/filtros/dica/desenho ocupam a linha inteira;
   o deck fica na col 1 e as ações na col 2. No mobile (≤680px) volta a empilhar. */
.deck-acoes-lado { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; column-gap:18px; }
.deck-acoes-lado > details.fcfilter,
.deck-acoes-lado > .fcdeck-top,
.deck-acoes-lado > .fcdeck-drawbar,
.deck-acoes-lado > .fcdeck-hint { grid-column:1 / -1; }
.deck-acoes-lado > .fcdeck { grid-column:1; }
.deck-acoes-lado > .fcdeck-actions {
  grid-column:2; align-self:start; margin-top:0;
  flex-direction:column; align-items:stretch; flex-wrap:nowrap; min-width:150px;
}
/* Combinado com a Mesa: centraliza a dupla (card ≤600 + ações) sobre a mesa cheia. */
.deck-mesa.deck-acoes-lado { grid-template-columns:minmax(0,600px) auto; justify-content:center; }
@media (max-width:680px){
  .deck-acoes-lado { display:block; }
  .deck-acoes-lado > .fcdeck-actions { margin-top:26px; flex-direction:row; flex-wrap:nowrap; overflow-x:auto; }
}

/* ── #5 Mesa com a LARGURA da seção ("pagamentos previstos") ──
   Sem mesa, o wrap fica capado em 600px (leitura confortável). Com a Mesa ligada,
   o wrap ocupa a largura CHEIA da seção (a foto de escrivaninha cobre tudo) e só o
   conteúdo do deck (top/cards/ações/dica) fica centralizado em ~600px. */
.fcdeck-wrap.deck-mesa { max-width:none; }
.deck-mesa:not(.deck-acoes-lado) > details.fcfilter,
.deck-mesa:not(.deck-acoes-lado) > .fcdeck-top,
.deck-mesa:not(.deck-acoes-lado) > .fcdeck,
.deck-mesa:not(.deck-acoes-lado) > .fcdeck-actions,
.deck-mesa:not(.deck-acoes-lado) > .fcdeck-drawbar,
.deck-mesa:not(.deck-acoes-lado) > .fcdeck-hint { max-width:600px; margin-left:auto; margin-right:auto; }
.fcdeck-molde { border:1px solid #d1d9e0; background:#f8fafc; color:#1c3040; border-radius:9px;
    padding:9px 12px; font-size:0.85rem; font-weight:700; cursor:pointer; }
.fcdeck-molde:hover { background:#eef2f7; }
.fcdeck-molde:active { transform:scale(.98); }
/* No celular a barra é uma FAIXA QUE ROLA, não uma linha que se espreme (o
   `flex:0 0 auto` do `.fcdeck-act` é a outra metade disto).

   ⚠️ **A máscara na borda direita não é enfeite: é a única pista de que há mais
   botão.** Seis ações somam ~640px numa tela de 390 — sem o degradê, "Marcar
   pago" e "Apagar" simplesmente não existem pra quem não adivinhar que a faixa
   rola. E ela some sozinha quando a rolagem chega ao fim (`animation-timeline`),
   onde há suporte; onde não há, fica um degradê fixo e discreto, que é melhor
   que pista nenhuma. */
@media (max-width:680px){
  .fcdeck-actions { flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
      padding-bottom:2px; scroll-snap-type:x proximity;
      -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 34px),transparent);
      mask-image:linear-gradient(to right,#000 calc(100% - 34px),transparent); }
  .fcdeck-actions > .fcdeck-act { scroll-snap-align:start; }
  /* Rolou até o fim? Não há mais o que revelar — tira a máscara. */
  @supports (animation-timeline: scroll(self inline)) {
    .fcdeck-actions { animation:fcdeck-desmascara linear both;
        animation-timeline:scroll(self inline); animation-range:contain; }
  }
}
@keyframes fcdeck-desmascara {
  to { -webkit-mask-image:linear-gradient(to right,#000 100%,#000);
       mask-image:linear-gradient(to right,#000 100%,#000); }
}
.fcdeck-empty { text-align:center; padding:40px 16px; }
.fcdeck-hint { font-size:0.72rem; color:#94a3b8; text-align:center; margin:8px 0 0; }
/* Swipe → ações: stamps tinder + selo conferida + undo + botão conferir + task tipos */
/* Idem: este é o lado que carrega os três botões de modo mais as setas. */
.fcdeck-topright { display:flex; align-items:center; gap:8px; flex-wrap:wrap;
    min-width:0; justify-content:flex-end; }
.fcdeck-undo { border:1px solid #c7d2fe; background:#eef2ff; color:#3730a3; border-radius:999px; padding:4px 11px;
    font-size:0.76rem; font-weight:700; cursor:pointer; }
.fcdeck-undo:hover { background:#e0e7ff; }
.fcdeck-undo[hidden] { display:none; }
.fcdeck-stamp { position:absolute; top:16px; z-index:5; font-size:1.05rem; font-weight:900; padding:4px 12px;
    border:3px solid; border-radius:10px; opacity:0; pointer-events:none; transition:opacity .05s; }
.fcdeck-stamp-ok { right:16px; color:#16a34a; border-color:#16a34a; transform:rotate(-12deg); }
.fcdeck-stamp-task { left:16px; color:#b45309; border-color:#b45309; transform:rotate(12deg); }
.fcdeck-conferida { background:#dcfce7; color:#166534; border-radius:999px; padding:1px 8px; font-size:0.66rem; font-weight:700; }
.fcdeck-conferida[hidden] { display:none; }
.fcdeck-card.is-conferida { border-left:4px solid #16a34a; }
.fcdeck-card.has-tarefa { border-left:4px solid #f59e0b; }
.fcdeck-act-ok { border-color:#bbf7d0; background:#f0fdf4; color:#15803d; }
.fcdeck-act-ok:hover { background:#dcfce7; }
/* Modal "Tarefa de revisão" — MESMA disposição da Conferência (grade rev-tipo-card).
   Escopado em #fcTaskModal pra não colidir com outras telas. */
#fcTaskModal .fctask-field { margin-bottom:12px; }
#fcTaskModal .fctask-field > label { display:block; font-size:0.8rem; font-weight:600; margin:0 0 4px; color:#1c3040; }
#fcTaskModal .fctask-ref { font-size:0.8rem; color:#64748b; margin:0 0 10px; }
#fcTaskModal input[type="text"], #fcTaskModal input[type="date"],
#fcTaskModal select, #fcTaskModal textarea {
    width:100%; padding:9px 10px; border:1px solid #cbd5e1; border-radius:8px; font-size:0.9rem;
    box-sizing:border-box; background:#fff; font-family:inherit; min-width:0; max-width:100%; }
#fcTaskModal textarea { resize:vertical; }
#fcTaskModal .fctask-grid2 { display:grid; grid-template-columns:1fr 130px; gap:10px; }
#fcTaskModal .fctask-grid2 > div { min-width:0; }
#fcTaskModal .rev-tipos-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:8px; }
@media (min-width:520px) { #fcTaskModal .rev-tipos-grid { grid-template-columns:repeat(4, 1fr); } }
#fcTaskModal .rev-tipo-card {
    position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; gap:4px; padding:12px 8px; min-height:88px; border:2px solid #e2e8ed; border-radius:10px;
    background:#fff; cursor:pointer; transition:all 0.15s ease; -webkit-tap-highlight-color:transparent; user-select:none; }
#fcTaskModal .rev-tipo-card:hover { border-color:#cbd5e1; background:#f8fafc; }
#fcTaskModal .rev-tipo-card:active { transform:scale(0.97); }
#fcTaskModal .rev-tipo-card input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; }
#fcTaskModal .rev-tipo-card:has(input:checked) { border-color:#ca8a04; background:linear-gradient(135deg,#fef9c3,#fef3c7); }
#fcTaskModal .rev-tipo-card:has(input:focus-visible) { outline:2px solid #5b8def; outline-offset:2px; }
#fcTaskModal .rev-tipo-emoji { font-size:1.5rem; line-height:1; }
#fcTaskModal .rev-tipo-text { font-size:0.78rem; font-weight:600; color:#1c3040; line-height:1.2; }
#fcTaskModal .rev-tipo-text small { font-weight:400; color:#6b7d91; font-size:0.7rem; }
#fcTaskModal .rev-tipo-check { position:absolute; top:6px; right:8px; width:18px; height:18px; border-radius:50%;
    background:#ca8a04; color:#fff; font-size:0.7rem; font-weight:700; line-height:18px; text-align:center; opacity:0; transition:opacity 0.15s; }
#fcTaskModal .rev-tipo-card:has(input:checked) .rev-tipo-check { opacity:1; }
#fcTaskModal .rev-tipo-card:has(input:checked) .rev-tipo-text { color:#854d0e; }
#fcTaskModal .rev-tipo-card:has(input:checked) .rev-tipo-text small { color:#92400e; }
/* Loader de célula lazy (Docs) — spinner da marca em ~16px */
.vectra-spinner.sm.fc-cellspin { width:16px !important; }
.fc-cellspin { vertical-align:middle; }
/* Status colorido (tabela + cards) */
.fcstat { display:inline-block; padding:1px 8px; border-radius:999px; font-size:0.7rem; font-weight:700;
    white-space:nowrap; line-height:1.6; }
.fcstat-red { background:#fee2e2; color:#991b1b; }
.fcstat-orange { background:#ffedd5; color:#9a3412; }
.fcstat-amber { background:#fef3c7; color:#92400e; }
.fcstat-green { background:#dcfce7; color:#166534; }
.fcstat-gray { background:#e5e7eb; color:#374151; }
.fcstat-neutral { background:#e0e7ff; color:#3730a3; }
/* Situação de análise (conferida / tarefa / não analisada) — tabela + cards */
.fcanalise { display:inline-block; padding:1px 8px; border-radius:999px; font-size:0.68rem; font-weight:700;
    white-space:nowrap; line-height:1.6; margin:1px 0; }
.fcanalise-conferida { background:#dcfce7; color:#166534; }
.fcanalise-tarefa { background:#fef3c7; color:#92400e; }
.fcanalise-nao { background:#eef2f6; color:#64748b; }
/* Tipo Real vs Projeção (tabela + cards) */
.fctipo { display:inline-block; padding:1px 8px; border-radius:999px; font-size:0.68rem; font-weight:700; white-space:nowrap; }
.fctipo-real { background:#e0f2fe; color:#075985; }
.fctipo-proj { background:#fdf2f8; color:#9d174d; }
/* Parcela: chip na tabela + badge/botão no card + popover das parcelas irmãs */
.fc-parcela-chip { display:inline-block; background:#eef2ff; color:#3730a3; border-radius:999px; padding:0 6px;
    font-size:0.66rem; font-weight:700; font-variant-numeric:tabular-nums; }
.fcdeck-parcela { border:1px solid #c7d2fe; background:#eef2ff; color:#3730a3; border-radius:999px; padding:1px 9px;
    font-size:0.68rem; font-weight:700; cursor:pointer; white-space:nowrap; }
.fcdeck-parcela:hover { background:#e0e7ff; }
.fcdeck-parcela-pop { position:absolute; z-index:1300; background:#fff; border:1px solid #d1d9e0; border-radius:12px;
    box-shadow:0 10px 34px rgba(15,23,42,0.18); padding:6px; min-width:230px; max-width:320px; max-height:60vh; overflow:auto; }
.fcdeck-parc-head { font-size:0.72rem; font-weight:700; color:#64748b; padding:4px 8px 6px; }
.fcdeck-parc-item { display:grid; grid-template-columns:auto 1fr auto; gap:4px 8px; align-items:center; width:100%;
    border:none; background:transparent; text-align:left; cursor:pointer; padding:6px 8px; border-radius:8px; }
.fcdeck-parc-item:hover:not(:disabled) { background:#f4f7fa; }
.fcdeck-parc-item.is-cur { background:#eef2ff; cursor:default; }
.fcdeck-parc-n { font-size:0.74rem; font-weight:700; color:#3730a3; font-variant-numeric:tabular-nums; }
.fcdeck-parc-v { font-size:0.72rem; color:#475569; font-variant-numeric:tabular-nums; }
.fcdeck-parc-val { font-size:0.74rem; font-weight:700; color:#1c3040; font-variant-numeric:tabular-nums; white-space:nowrap; }
.fcdeck-parc-st { grid-column:2 / -1; font-size:0.66rem; color:#94a3b8; }
/* Deck: status no header, editores inline, ações, anexos, confirm */
.fcdeck-statwrap { display:inline-flex; align-items:center; }
.fcdeck-editbtn { border:none; background:transparent; color:#2563eb; cursor:pointer; font-size:0.8rem; padding:0 2px; margin-left:5px; }
.fcdeck-editbtn:hover { color:#1d4ed8; }
.fcdeck-catval { display:inline; }
.fcdeck-chiprow { display:flex; flex-wrap:wrap; gap:5px; }
/* ⚠️ `flex:0 0 auto` + `white-space:nowrap` NÃO SÃO ENFEITE — sem os dois o
   botão ENCOLHE em vez de a faixa rolar. No celular a barra é `flex-wrap:nowrap`
   com `overflow-x:auto` (ver o @media de 680px), e item de flex encolhe por
   padrão: os seis botões se espremiam na mesma linha e o rótulo quebrava LETRA
   A LETRA ("D e t a l", "A p a g a"). Era o estado em produção até 30/08/2026.
   No desktop a barra é `wrap`, então largura natural aqui só faz o botão inteiro
   pular pra linha de baixo, que é o certo. */
.fcdeck-act { border:1px solid #d1d9e0; background:#f8fafc; color:#1c3040; border-radius:9px; padding:8px 11px;
    font-size:0.8rem; font-weight:700; cursor:pointer;
    flex:0 0 auto; white-space:nowrap; }
.fcdeck-act:hover { background:#eef2f7; }
.fcdeck-act-danger { border-color:#fecaca; background:#fef2f2; color:#b91c1c; }
.fcdeck-act-danger:hover { background:#fee2e2; }
.fcdeck-anexos { margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
.fcdeck-anexo { border:1px solid #bfdbfe; background:#eff6ff; color:#1d4ed8; border-radius:8px; padding:5px 9px;
    font-size:0.74rem; font-weight:600; text-decoration:none; }
.fcdeck-anexo:hover { background:#dbeafe; }
.fcdeck-confirm { margin-top:10px; padding:10px; border:1px solid #fecaca; background:#fff7f7; border-radius:10px; width:100%; }
.fcdeck-confirm-msg { font-size:0.78rem; color:#7f1d1d; line-height:1.4; }
.fcdeck-confirm-err { font-size:0.74rem; color:#b91c1c; margin-top:6px; }
.fcdeck-confirm-btns { display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
