/* ═══════════════════════════════════════════════════════════════════════
   Gestão Financeira — Visão executiva, Controle de budget, Fornecedores,
   Compras e Planejamento financeiro (financeiro.js). Tudo com prefixo fv-
   para não herdar nem vazar estilo das outras telas.
   ═══════════════════════════════════════════════════════════════════════ */
.fv,.fv-tip{
  --side:#173f36; --side2:#1f5a4c; --ouro:#d2b06a;
  --bg:#eef1f4; --card:#ffffff; --borda:#e3e8ec; --borda2:#eef1f4;
  --tx:#14201d; --tx2:#55635e; --tx3:#8a9792;
  --eq:#1f8a70; --fx:#2a78d6; --vr:#c4720b;
  --real:#1f5a4c; --orc:#3f4a47; --fcst:#9cc7ba;
  --bom:#1a7f4e; --bom-l:#e5f4ec; --at:#b7791f; --at-l:#fdf3e1; --cr:#c2362f; --cr-l:#fcebea; --info:#2a5fb4; --info-l:#e8effb;
  --r:16px; --sh:0 1px 2px rgba(16,40,34,.05),0 8px 24px rgba(16,40,34,.06);
  --fn:'Inter',system-ui,sans-serif; --fh:'Plus Jakarta Sans','Inter',sans-serif;
}
.fv-pg>.wrap{display:none!important}
.fv{font-family:var(--fn);background:var(--bg);color:var(--tx);font-size:13px;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1;padding:22px 28px 40px;min-height:100%}
.fv *{box-sizing:border-box}
.fv h3,.fv h4,.fv p{margin:0}
.fv button{font-family:inherit}
.fv-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.fv-eyebrow{font-size:10.5px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--side2)}
.fv-h1{font-family:var(--fh);font-size:26px;font-weight:800;letter-spacing:-.6px;margin-top:3px}
.fv-sub{color:var(--tx2);margin-top:4px;font-size:12.5px}
.fv-sub b{color:var(--tx)}
.fv-acoes{display:flex;gap:8px}
.fv-btn{all:unset;cursor:pointer;font-weight:600;font-size:12.5px;padding:9px 14px;border-radius:10px;border:1px solid var(--borda);background:#fff;color:var(--tx);display:inline-flex;gap:7px;align-items:center}
.fv-btn.ia{background:linear-gradient(135deg,var(--side),var(--side2));color:#fff;border-color:transparent}
.fv-btn.ia b{color:var(--ouro)}
/* barra de filtros (fixa) */
.fv-fb{position:sticky;top:0;z-index:5;background:rgba(238,241,244,.92);backdrop-filter:blur(6px);padding:10px 0 12px;margin-bottom:6px;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;border-bottom:1px solid var(--borda)}
.fv-fg{display:flex;align-items:center;gap:8px}
.fv-fg>span{font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--tx3)}
.fv-seg{display:flex;background:#fff;border:1px solid var(--borda);border-radius:11px;padding:3px;gap:2px}
.fv-seg button{all:unset;cursor:pointer;padding:6px 11px;border-radius:8px;font-size:12px;font-weight:600;color:var(--tx2);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fv-seg button:hover{background:var(--bg)}
.fv-seg button.on{background:var(--side);color:#fff}
.fv-seg button.fut{color:var(--tx3)}
.fv-seg button.on.fut{color:#fff}
.fv-dot{width:8px;height:8px;border-radius:3px;display:inline-block}
.fv-ativos{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--tx2)}
.fv-tag{all:unset;cursor:pointer;background:#fff;border:1px solid var(--borda);border-radius:999px;padding:3px 10px;font-weight:600;color:var(--tx)}
.fv-tag:hover{border-color:var(--cr);color:var(--cr)}
/* grade e cartões */
.fv-g{display:grid;gap:14px;margin-top:14px}
.fv-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fv-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fv-g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.fv-g12{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.fv-g11{grid-template-columns:repeat(2,minmax(0,1fr))}
.fv-c{background:var(--card);border:1px solid var(--borda);border-radius:var(--r);box-shadow:var(--sh);padding:18px 20px;min-width:0;position:relative}
.fv-ct{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.fv-ct h3{font-family:var(--fh);font-size:14.5px;font-weight:700;letter-spacing:-.2px}
.fv-ct p{font-size:11.5px;color:var(--tx2);margin-top:2px}
.fv-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--tx2)}
.fv-leg span{display:inline-flex;align-items:center;gap:5px}
.fv-leg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.fv-leg i.fv-ln{height:2px;width:14px;border-radius:2px}
.fv-leg i.fv-hat{background:repeating-linear-gradient(135deg,var(--fcst) 0 2px,#fff 2px 4px)!important;border:1px solid var(--fcst)}
/* KPI */
.fv-k{padding:16px 18px}
.fv-kl{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--tx3)}
.fv-kv{font-family:var(--fh);font-size:28px;font-weight:800;letter-spacing:-.8px;margin-top:6px;line-height:1}
.fv-kv small{font-size:14px;font-weight:700;color:var(--tx2);letter-spacing:0;margin-left:3px}
.fv-ks{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:12px;color:var(--tx2);flex-wrap:wrap}
.fv-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}
.fv-pill.bom{background:var(--bom-l);color:var(--bom)} .fv-pill.at{background:var(--at-l);color:var(--at)} .fv-pill.cr{background:var(--cr-l);color:var(--cr)} .fv-pill.info{background:var(--info-l);color:var(--info)}
.fv-k.hero{background:linear-gradient(150deg,#1b4a40,#173f36 60%,#12322b);color:#e8f2ee;border:0}
.fv-k.hero .fv-kl{color:var(--ouro)} .fv-k.hero .fv-kv{color:#fff} .fv-k.hero .fv-ks{color:#b9d3ca}
.fv-spark{height:38px;margin-top:10px}
.fv-meter{height:8px;background:var(--borda2);border-radius:5px;margin-top:12px;position:relative;overflow:visible}
.fv-meter i{display:block;height:100%;border-radius:5px;background:var(--real)}
.fv-meter b{position:absolute;top:-4px;width:2px;height:16px;background:var(--tx);border-radius:1px}
.fv-k.hero .fv-meter{background:rgba(255,255,255,.12)} .fv-k.hero .fv-meter i{background:var(--ouro)} .fv-k.hero .fv-meter b{background:#fff}
/* heatmap */
.fv-hm{width:100%;border-collapse:separate;border-spacing:3px;font-size:11.5px}
.fv-hm th{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.6px;padding:2px 4px;text-align:center}
.fv-hm th.fv-l{text-align:left}
.fv-hm td{height:34px;border-radius:7px;text-align:center;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .1s;font-size:11px}
.fv-hm td:hover{transform:scale(1.06);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.fv-hm td.fv-rl{background:none;text-align:left;font-weight:600;color:var(--tx);cursor:default;padding-right:8px;white-space:nowrap}
.fv-hm td.fv-rl:hover{transform:none;box-shadow:none}
.fv-hm td.fut{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 3px,transparent 3px 7px)}
.fv-hm td.sel{outline:2px solid var(--tx);outline-offset:1px}
.fv-hm .fv-grp td.fv-rl{padding-top:8px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--side2);font-weight:800}
.fv-escala{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--tx2)}
.fv-escala i{width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,#2a5fb4,#a9c3ec,#efefec,#f0b4ae,#c2362f)}
/* listas */
.fv-alerta{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--borda2)}
.fv-alerta:first-child{border-top:0;padding-top:2px}
.fv-alerta .fv-ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.fv-alerta.cr .fv-ic{background:var(--cr-l);color:var(--cr)} .fv-alerta.at .fv-ic{background:var(--at-l);color:var(--at)} .fv-alerta.bom .fv-ic{background:var(--bom-l);color:var(--bom)} .fv-alerta.info .fv-ic{background:var(--info-l);color:var(--info)}
.fv-alerta b{font-size:13px;display:block}
.fv-alerta span{font-size:12px;color:var(--tx2);line-height:1.45}
.fv-rank{display:flex;flex-direction:column;gap:9px}
.fv-rk{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;cursor:pointer;padding:4px 6px;border-radius:9px}
.fv-rk:hover{background:var(--bg)}
.fv-rk.on{background:#e7f1ee}
.fv-rk .fv-n{font-size:11px;font-weight:800;color:var(--tx3);text-align:right}
.fv-rk .fv-nm{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fv-rk .fv-nm small{display:block;font-weight:500;font-size:11px;color:var(--tx3)}
.fv-rk .fv-bar{height:6px;border-radius:4px;background:var(--borda2);margin-top:5px;overflow:hidden;display:flex;gap:2px}
.fv-rk .fv-bar i{display:block;height:100%}
.fv-rk .fv-v{font-weight:800;font-size:13px;text-align:right}
.fv-rk .fv-v small{display:block;font-size:10.5px;color:var(--tx3);font-weight:600}
/* contas (budget) */
.fv-conta{cursor:pointer;transition:transform .12s,box-shadow .12s}
.fv-conta:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(16,40,34,.10)}
.fv-conta.on{outline:2px solid var(--side);outline-offset:-2px}
.fv-conta.off{opacity:.55}
.fv-conta .fv-faixa{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px}
.fv-bullet{position:relative;height:26px;margin:14px 0 6px;background:var(--borda2);border-radius:6px}
.fv-bullet .fv-ano{position:absolute;inset:0;border-radius:6px;background:repeating-linear-gradient(135deg,#e2e8e6 0 3px,#f4f6f5 3px 7px)}
.fv-bullet .fv-re{position:absolute;left:0;top:5px;bottom:5px;border-radius:4px}
.fv-bullet .fv-ytd{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--tx)}
.fv-bullet .fv-ytd::after{content:attr(data-l);position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:9.5px;font-weight:700;color:var(--tx2);white-space:nowrap}
.fv-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.fv-trio div{background:var(--bg);border-radius:10px;padding:8px 10px}
.fv-trio span{display:block;font-size:10px;color:var(--tx3);font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.fv-trio b{font-size:14px}
/* tabelas */
.fv-tb{width:100%;border-collapse:collapse;font-size:12.5px}
.fv-tb th{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);text-align:right;padding:8px 10px;border-bottom:1px solid var(--borda)}
.fv-tb th:first-child,.fv-tb td:first-child{text-align:left}
.fv-tb td{padding:9px 10px;border-bottom:1px solid var(--borda2);text-align:right;white-space:nowrap}
.fv-tb tr:hover td{background:#f7faf9}
.fv-tb tfoot td{font-weight:800;border-top:2px solid var(--borda);border-bottom:0}
.fv-tb .fv-cell{border-radius:6px;padding:4px 8px;display:inline-block;min-width:72px}
details.fv-c>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
details.fv-c>summary::-webkit-details-marker{display:none}
details.fv-c>summary h3{font-family:var(--fh);font-size:14.5px}
details.fv-c>summary .fv-mais{font-size:12px;font-weight:700;color:var(--side2)}
details.fv-c[open]>summary{margin-bottom:12px}
/* compras */
.fv-pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.fv-st{position:relative;background:#fff;border:1px solid var(--borda);padding:12px 14px 12px 22px;border-radius:12px;cursor:pointer}
.fv-st:hover{border-color:var(--side2)}
.fv-st.on{background:var(--side);color:#fff;border-color:var(--side)}
.fv-st.on span,.fv-st.on small{color:#cfe3dc}
.fv-st span{font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3)}
.fv-st b{display:block;font-family:var(--fh);font-size:22px;margin-top:4px}
.fv-st small{font-size:11.5px;color:var(--tx2);font-weight:600}
.fv-st::before{content:'';position:absolute;left:10px;top:14px;bottom:14px;width:3px;border-radius:2px;background:var(--c,#999)}
.fv-pedido{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr) 110px 120px;gap:12px;align-items:center;padding:11px 8px;border-bottom:1px solid var(--borda2);font-size:12.5px}
.fv-pedido:hover{background:#f7faf9}
.fv-pedido .fv-t{font-weight:700} .fv-pedido .fv-t small{display:block;font-weight:500;color:var(--tx3);font-size:11.5px}
.fv-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--bg);color:var(--tx2)}
.fv-saldo{display:grid;grid-template-columns:150px minmax(0,1fr) 100px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--borda2);font-size:12.5px}
.fv-saldo .fv-tr{height:12px;background:var(--borda2);border-radius:6px;position:relative;overflow:hidden}
.fv-saldo .fv-tr i{position:absolute;left:0;top:0;bottom:0;border-radius:6px}
.fv-saldo .fv-tr b{position:absolute;top:0;bottom:0;border-radius:6px;background:repeating-linear-gradient(135deg,rgba(0,0,0,.18) 0 3px,transparent 3px 6px)}
/* planejamento */
.fv-mx{width:100%;border-collapse:separate;border-spacing:4px;font-size:12px}
.fv-mx th{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);padding:4px}
.fv-mx td{background:#fff;border:1px solid var(--borda);border-radius:10px;padding:7px 9px;vertical-align:top;min-width:92px}
.fv-mx td.fv-rl{background:none;border:0;font-weight:700;white-space:nowrap;vertical-align:middle;min-width:0}
.fv-mx td.fv-rl small{display:block;font-weight:500;color:var(--tx3)}
.fv-mx .fv-dv{font-weight:800;font-size:12.5px;display:flex;justify-content:space-between;gap:6px}
.fv-mx .fv-dv em{font-style:normal;font-size:9.5px;color:var(--at);font-weight:800}
.fv-mx .fv-uso{height:5px;background:var(--borda2);border-radius:3px;margin:6px 0 4px;overflow:hidden}
.fv-mx .fv-uso i{display:block;height:100%;border-radius:3px}
.fv-mx .fv-sd{font-size:10.5px;color:var(--tx2)}
.fv-mx td.edit{border-style:dashed;border-color:#c9d6d1;cursor:text}
.fv-mx td.edit:hover{border-color:var(--side2);box-shadow:0 0 0 3px rgba(31,90,76,.08)}
.fv-mx .fv-grpr td.fv-rl{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--side2);font-weight:800;padding-top:10px}
.fv-nota{font-size:11px;color:var(--tx3);margin-top:8px}
.fv-vazio{color:var(--tx3);font-size:12px;padding:20px;text-align:center}
.fv-drill{position:sticky;top:70px}
.fv-drill h4{font-family:var(--fh);font-size:18px;font-weight:800;letter-spacing:-.3px}
.fv-it{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--borda2);font-size:12.5px}
.fv-it span{color:var(--tx)} .fv-it small{display:block;color:var(--tx3);font-size:11px}
.fv-it b{white-space:nowrap}
.fv-tip{position:fixed;pointer-events:none;background:#14201d;color:#fff;padding:8px 10px;border-radius:9px;font-size:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:50;display:none;max-width:260px;line-height:1.45}
@media(max-width:1100px){.fv-g4{grid-template-columns:repeat(2,minmax(0,1fr))}.fv-g21,.fv-g12,.fv-g3,.fv-g11{grid-template-columns:1fr}.fv-pipe{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
 .fv-hd{flex-wrap:wrap;align-items:flex-start}.fv-acoes{flex-wrap:wrap}
 .fv-fg{max-width:100%;min-width:0}.fv-seg{overflow-x:auto;scrollbar-width:none;max-width:100%}.fv-seg::-webkit-scrollbar{display:none}.fv-seg button{flex:0 0 auto}
 .fv-c{min-width:0;overflow-x:auto}
}

/* complementos da versão integrada */
.fv-btn.pri{background:var(--side);color:#fff;border-color:var(--side)}
.fv-btn:disabled{opacity:.5;cursor:default}
.fv-busca{border:1px solid var(--borda);border-radius:10px;padding:8px 12px;font:inherit;font-size:12.5px;min-width:220px;background:#fff;color:var(--tx)}
.fv-busca:focus{outline:2px solid rgba(31,90,76,.25);border-color:var(--side2)}
.fv-aviso{background:var(--at-l);color:#7a4f0e;border-radius:12px;padding:10px 14px;font-size:12.5px;margin-top:14px}
.fv-aviso b{color:#5c3a06}
.fv-vazio-g{text-align:center;padding:48px 20px}
.fv-vazio-g b{display:block;font-family:var(--fh);font-size:18px;margin-bottom:6px}
.fv-vazio-g p{color:var(--tx2);margin-bottom:14px}
.fv-pedido{cursor:pointer}
.fv-pedido .fv-del{all:unset;cursor:pointer;color:var(--tx3);font-size:13px;padding:2px 6px;border-radius:6px;margin-left:4px}
.fv-pedido .fv-del:hover{background:var(--cr-l);color:var(--cr)}
.fv-pedido.can{opacity:.55}
.fv-pedido.fv-ph{cursor:default;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3)}
.fv-pedido.fv-ph:hover{background:none}
.fv-sem{display:inline-flex;font-size:10.5px;font-weight:700;color:var(--at);background:var(--at-l);border-radius:999px;padding:2px 7px}
.fv-mx td.edit .fv-ed{width:100%;border:1px solid var(--side2);border-radius:6px;padding:3px 6px;font:inherit;font-weight:800;font-size:12.5px}
.fv-mx td.ro{cursor:default}
.fv-lanc{width:100%;border-collapse:collapse;font-size:12px}
.fv-lanc th{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);text-align:left;padding:7px 8px;border-bottom:1px solid var(--borda);position:sticky;top:0;background:#fff}
.fv-lanc td{padding:7px 8px;border-bottom:1px solid var(--borda2)}
.fv-lanc td.num,.fv-lanc th.num{text-align:right;white-space:nowrap}
.fv-lanc-w{max-height:460px;overflow:auto;margin-top:10px}
.fv-pipe{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
@media(max-width:760px){.fv{padding:14px 12px 32px}.fv-g4{grid-template-columns:1fr}.fv-pedido{grid-template-columns:1fr 1fr}.fv-hm{font-size:10px}.fv-saldo{grid-template-columns:110px minmax(0,1fr) 90px}.fv-busca{min-width:0;width:100%}.fv-drill{position:static}}
.fv-st span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.fv-fb{position:static;backdrop-filter:none;background:none}.fv-pedido.fv-ph{display:none}}
.fv-fg>span{white-space:nowrap}
.fv-mx .fv-dv span{white-space:nowrap}
@media(max-width:760px){.fv-ct{flex-wrap:wrap}.fv-mx{width:auto;min-width:100%}.fv-mx td{min-width:150px}.fv-mx td.fv-rl{min-width:0;white-space:normal}.fv-mx td.fv-rl small{display:none}}
