/* COOPSOL CRM — Módulo Financeiro (v2.78.0)
 * Base escopada para as telas portadas do Figma ("Redesign de Interface Completa").
 * As utilidades Tailwind ficam em financeiro-tw.css (prefixo tw:, geradas a partir dos JS do módulo);
 * aqui fica só o "preflight" mínimo dentro de .fin-tw e alguns ajustes de integração com a SPA. */
.fin-tw, .fin-tw *, .fin-tw *::before, .fin-tw *::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e2e8f0; margin: 0; padding: 0; }
.fin-tw { font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif; font-size: 14px; line-height: 1.5; color: #0f172a; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
.fin-tw h1, .fin-tw h2, .fin-tw h3, .fin-tw h4, .fin-tw p, .fin-tw ul, .fin-tw ol { margin: 0; font-size: inherit; font-weight: inherit; line-height: inherit; }
.fin-tw ul, .fin-tw ol { list-style: none; }
.fin-tw a { color: inherit; text-decoration: inherit; }
.fin-tw button, .fin-tw input, .fin-tw select, .fin-tw textarea { font: inherit; font-feature-settings: inherit; letter-spacing: inherit; color: inherit; background: transparent; border-radius: 0; margin: 0; padding: 0; line-height: inherit; box-shadow: none; }
.fin-tw button, .fin-tw [role="button"] { cursor: pointer; -webkit-appearance: button; appearance: button; background-color: transparent; background-image: none; text-transform: none; }
.fin-tw button:disabled { cursor: default; }
/* v2.78.33/34 — o tema do site pinta button:hover/:focus/:active de rosa (#c36) com texto branco. Dentro do módulo o fundo vem só das utilidades tw: (!important):
 * neutraliza o rosa nos botões que NÃO têm utilidade de fundo/cor própria, sem tirar o hover/seleção das que têm. */
.fin-tw button:focus:not(:hover):not([class*="tw:bg-"]), .fin-tw button:focus-visible:not(:hover):not([class*="tw:bg-"]), .fin-tw button:active:not(:hover):not([class*="tw:bg-"]) { background-color: transparent !important; }
.fin-tw button:hover:not([class*="tw:bg-"]):not([class*="hover:bg-"]) { background-color: transparent !important; }
.fin-tw button:hover:not([class*="text-"]), .fin-tw button:focus:not([class*="text-"]), .fin-tw button:active:not([class*="text-"]) { color: inherit !important; }
.fin-tw input::placeholder, .fin-tw textarea::placeholder { color: #94a3b8; opacity: 1; }
.fin-tw input[type="checkbox"], .fin-tw input[type="radio"] { -webkit-appearance: auto; appearance: auto; margin: 0; }
.fin-tw select { -webkit-appearance: auto; appearance: auto; }
.fin-tw textarea { resize: vertical; }
.fin-tw table { border-collapse: collapse; border-color: inherit; text-indent: 0; }
.fin-tw th, .fin-tw td { font-weight: inherit; text-align: inherit; }
.fin-tw svg, .fin-tw img { display: block; vertical-align: middle; }
.fin-tw svg { flex-shrink: 0; }
.fin-tw [hidden] { display: none !important; }
.fin-tw ::-webkit-scrollbar { width: 6px; height: 6px; }
.fin-tw ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
.fin-tw .fin-mono, .fin-tw .tw\:font-mono { font-family: 'Cousine', ui-monospace, SFMono-Regular, Menlo, monospace !important; }

/* menus/popovers: escondidos até .on (o JS alterna) */
.fin-tw .fin-pop { display: none; }
.fin-tw .fin-pop.on { display: block; }
/* aparece só ao passar o mouse na linha (Figma: opacity-0 group-hover:opacity-100) — em toque fica sempre visível */
@media (hover: none) { .fin-tw .fin-hover { opacity: 1 !important; } }

/* Integração com o shell do mini-app (templates/frontend/faturas.php) */
#fin-shell .fin-breadcrumb { position: sticky; top: 0; z-index: 10; background: #fff; border-bottom: 1px solid #f1f5f9; padding: 8px 16px; font-size: 12px; color: #94a3b8; margin: 0; }
#fin-shell .fin-breadcrumb span { color: #cbd5e1; margin: 0 4px; }
#fin-shell .fin-breadcrumb strong { color: #475569; font-weight: 600; }
#fin-shell .fin-page[data-fin-figma] { background: #f8fafc; min-height: calc(100vh - 120px); }
#fin-shell .fin-page[data-fin-figma].fin-drawer-open { transition: margin .2s; }
@media (min-width: 1024px) { #fin-shell .fin-page[data-fin-figma].fin-drawer-open { margin-right: 52%; } }
/* camada de gaveta/modal/toast (montada em <body>) */
#fin-ov:empty { display: none; }
@media print {
    .coopsol-sidebar, #crm-nav, #crm-topbar, .coopsol-bottom-tabs, #fin-shell .fin-breadcrumb, .fin-tw [data-fin-noprint], #fin-ov { display: none !important; }
    #fin-shell .fin-page[data-fin-figma] { background: #fff; min-height: 0; }
}
.fin-tw summary { list-style: none; } .fin-tw summary::-webkit-details-marker { display: none; }

/* v2.78.84 — Lançamentos: ícone do status no lugar da caixa de seleção; vira caixa ao passar o mouse na linha ou quando há seleção */
.fin-tw .fin-stsel { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; cursor: pointer; }
.fin-tw .fin-stsel .fin-stsel-cb { display: none; }
.fin-tw .fin-stsel .fin-stsel-ic { display: inline-flex; }
.fin-tw tr:hover .fin-stsel .fin-stsel-cb, .fin-tw .fin-stsel.fin-modo-sel .fin-stsel-cb { display: inline-block; }
.fin-tw tr:hover .fin-stsel .fin-stsel-ic, .fin-tw .fin-stsel.fin-modo-sel .fin-stsel-ic { display: none; }
/* v2.78.85 — ícone e data na mesma linha (o tema do site pode alinhar células ao topo) */
.fin-tw tr[data-lrow] > td { vertical-align: middle; }
.fin-tw .fin-stsel { vertical-align: middle; }
/* v2.78.87 — Lançamentos: barra de filtros/seleção e cabeçalho da tabela fixos ao rolar (overflow: clip não cria área de rolagem, então o sticky segue a página) */
.fin-tw .fin-lanc-card { overflow: clip; }
.fin-tw .fin-lanc-tbl { overflow-x: auto; }
@media (min-width: 1024px) { .fin-tw .fin-lanc-tbl { overflow-x: clip; } }
.fin-tw .fin-lanc-barra { position: sticky; top: 0; z-index: 20; background-color: #fff; }
.fin-tw .fin-lanc-thead th { position: sticky; top: var(--fin-lanc-thead-top, 0px); z-index: 15; background-color: #f8fafc; }

/* v2.78.89 — campos dos formulários em LINHA (só borda de baixo), mesmo quando o tema do WordPress estiliza input/select/textarea em caixa.
   Alcança só os campos do estilo "linha" (classe border-b); campos com caixa própria (ex.: cobrança) não mudam. */
#fin-ov.fin-tw input[class*="border-b"], #fin-ov.fin-tw select[class*="border-b"], #fin-ov.fin-tw textarea[class*="border-b"] {
    border-top-width: 0 !important; border-left-width: 0 !important; border-right-width: 0 !important;
    border-radius: 0 !important; box-shadow: none !important; background-color: transparent !important; background-image: none;
    padding-left: 0 !important; padding-right: 0 !important; height: auto !important; min-height: 0 !important; outline: none !important;
}
/* selects: reforço (o tema desenha a caixa do select com mais força): sem aparência nativa, só a linha de baixo e a setinha própria */
html body #fin-ov.fin-tw select[class*="border-b"] {
    -webkit-appearance: none !important; -moz-appearance: none !important; appearance: none !important;
    border-top: 0 none !important; border-left: 0 none !important; border-right: 0 none !important; border-image: none !important;
    border-radius: 0 !important; box-shadow: none !important; outline: 0 !important; background-color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important; background-position: right 2px center !important; background-size: 12px 12px !important;
    padding-left: 0 !important; padding-right: 20px !important; height: auto !important; min-height: 0 !important; cursor: pointer;
}
html body #fin-ov.fin-tw select[class*="border-b"]:focus, html body #fin-ov.fin-tw select[class*="border-b"]:hover { box-shadow: none !important; outline: 0 !important; border-top: 0 none !important; border-left: 0 none !important; border-right: 0 none !important; }

/* v2.78.91 — painel do topo de Lançamentos: contas | resultado do mês lado a lado */
.fin-resumo { display: grid; grid-template-columns: 1fr; }
.fin-resumo > div + div { border-top: 1px solid #e2e8f0; }
@media (min-width: 1024px) {
  .fin-resumo { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
  .fin-resumo > div + div { border-top: 0; border-left: 1px solid #e2e8f0; }
}
