/* ═══════════════════════════════════════════════════════════════════════
   Orion Ops — componentes do padrão novo (complementam financeiro.css,
   que tem a base: .fv, cartões, KPIs, filtros, grades, tabelas…).
   Tudo com prefixo fv-. Cada tela tem o próprio CSS no seu arquivo.
   ═══════════════════════════════════════════════════════════════════════ */
.fv-tabs{display:flex;gap:2px;background:#fff;border:1px solid var(--borda);border-radius:11px;padding:3px;width:max-content;max-width:100%;overflow-x:auto}
.fv-tabs button{all:unset;cursor:pointer;padding:7px 13px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--tx2);white-space:nowrap}
.fv-tabs button.on{background:var(--side);color:#fff}
.fv-badge{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);white-space:nowrap}
.fv-badge.bom{background:var(--bom-l);color:var(--bom)} .fv-badge.at{background:var(--at-l);color:var(--at)} .fv-badge.cr{background:var(--cr-l);color:var(--cr)} .fv-badge.info{background:var(--info-l);color:var(--info)}
.fv-lista{width:100%;border-collapse:collapse;font-size:12.5px}
.fv-lista th{font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3);text-align:left;padding:8px 10px;border-bottom:1px solid var(--borda)}
.fv-lista td{padding:10px;border-bottom:1px solid var(--borda2);vertical-align:middle}
.fv-lista tr:hover td{background:#f7faf9}
.fv-lista td.num,.fv-lista th.num{text-align:right;white-space:nowrap}
.fv-av{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff;background:var(--side2);flex-shrink:0}
.fv-campo{display:flex;flex-direction:column;gap:5px}
.fv-campo label{font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx3)}
.fv-campo input,.fv-campo select,.fv-campo textarea{border:1px solid var(--borda);border-radius:10px;padding:9px 11px;font:inherit;font-size:13px;background:#fff;color:var(--tx);width:100%}
.fv-campo input:focus,.fv-campo select:focus,.fv-campo textarea:focus{outline:2px solid rgba(31,90,76,.22);border-color:var(--side2)}
.fv-chk{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--borda);border-radius:12px;padding:12px 14px;cursor:pointer;background:#fff;text-align:left}
.fv-chk.on{border-color:var(--side2);background:#eef6f3;box-shadow:inset 0 0 0 1px var(--side2)}
.fv-chk b{display:block;font-size:13px} .fv-chk span{font-size:11.5px;color:var(--tx2)}
.fv-chk>i{width:18px;height:18px;border-radius:5px;border:2px solid #b9c6c1;flex-shrink:0;margin-top:1px}
.fv-chk.on>i{background:var(--side2);border-color:var(--side2);box-shadow:inset 0 0 0 3px #eef6f3}
/* janela (modal) — OUI.modal() */
.fv-modal-bg{position:fixed;inset:0;z-index:9000;background:rgba(10,24,20,.45);display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;overflow-y:auto}
.fv-modal{width:100%;max-width:760px;background:#fff;border-radius:20px;box-shadow:0 30px 80px rgba(16,40,34,.25);overflow:hidden;font-family:var(--fn);color:var(--tx)}
.fv-modal.lg{max-width:1040px} .fv-modal.sm{max-width:520px}
.fv-modal .fv-mh{padding:18px 22px;border-bottom:1px solid var(--borda2);display:flex;justify-content:space-between;align-items:center;gap:10px}
.fv-modal .fv-mh h3{font-family:var(--fh);font-size:18px;font-weight:800;margin:0}
.fv-modal .fv-mb{padding:18px 22px}
.fv-modal .fv-mf{padding:14px 22px;border-top:1px solid var(--borda2);display:flex;justify-content:flex-end;gap:8px;background:#fafbfb;flex-wrap:wrap}
.fv-modal .fv-x{all:unset;cursor:pointer;font-size:20px;color:var(--tx3);padding:2px 8px;border-radius:8px}
.fv-modal .fv-x:hover{background:var(--bg)}
.fv-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.fv-cal .d{min-height:64px;border:1px solid var(--borda2);border-radius:8px;padding:5px 6px;font-size:11px;background:#fff}
.fv-cal .d.fora{opacity:.4} .fv-cal .d.hoje{outline:2px solid var(--side2)}
.fv-btn.perigo{color:var(--cr);border-color:#f0c9c6}
.fv-btn.sm{padding:6px 10px;font-size:11.5px}
/* PDF: a tela empilhada, como no celular, para caber na folha */
.fv.fv-pdf{width:820px!important;max-width:820px!important;padding:18px!important;background:var(--bg)}
.fv.fv-pdf .fv-g4,.fv.fv-pdf .fv-g3,.fv.fv-pdf .fv-g21,.fv.fv-pdf .fv-g12,.fv.fv-pdf .fv-g11{grid-template-columns:1fr 1fr}
.fv.fv-pdf .fv-g21>*,.fv.fv-pdf .fv-g12>*,.fv.fv-pdf .fv-g11>*{grid-column:1/-1}
.fv.fv-pdf .fv-acoes,.fv.fv-pdf .fv-busca,.fv.fv-pdf .fv-nopdf,.fv.fv-pdf .fv-del{display:none!important}
.fv.fv-pdf .fv-fb{position:static;backdrop-filter:none}
.fv.fv-pdf .fv-c{box-shadow:none;break-inside:avoid}
.fv-pdf-cab{display:none}
.fv.fv-pdf .fv-pdf-cab{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--tx2);border-bottom:2px solid var(--side);padding-bottom:8px;margin-bottom:12px}
.fv.fv-pdf .fv-pdf-cab b{font-family:var(--fh);font-size:14px;color:var(--side)}
@media(max-width:760px){.fv-modal-bg{padding:0}.fv-modal{border-radius:0;min-height:100vh}.fv-lista{font-size:12px}}

/* As janelas (OUI.modal) ficam fora de .fv: recebem as mesmas variáveis. */
.fv-modal-bg{
  --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;
  font-family:var(--fn);color:var(--tx);font-size:13px}
.fv-modal-bg *{box-sizing:border-box}
/* befra.css pinta o cabeçalho de toda tabela; nas telas novas, não. */
.fv table thead tr,.fv-modal-bg table thead tr{background:transparent}
/* Ordem das camadas: janela nova (9000) < janela antiga aberta por cima
   dela (9500, ex.: detalhe da OS, atividade) < aviso/toast (9999). */
.modal-bg:not(.hidden){z-index:9500}
