:root{--laranja:#1F9D4C;--laranja-2:#E3F6E9;--azul:#111827;--azul-2:#374151;--cinza:#6B7280;--linha:#E5E7EB;--fundo:#F5F6F8;--card:#fff;
--ok:#16A34A;--ok-bg:#DCFCE7;--aviso:#B45309;--aviso-bg:#FEF3C7;--erro:#B91C1C;--erro-bg:#FEE2E2;--info:#1D4ED8;--info-bg:#DBEAFE;--txt:#111827}
@media (prefers-color-scheme:dark){:root{--fundo:#0E1424;--card:#171F36;--txt:#E8ECF5;--cinza:#9AA4BD;--linha:#2A3556;--azul:#E8ECF5;--azul-2:#C5CCE0;--laranja-2:#14331F;--laranja:#3DBE6B;
--ok-bg:#12351F;--aviso-bg:#3A2D0B;--erro-bg:#3F1414;--info-bg:#14264F}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fundo);color:var(--txt);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:inherit}
header.topo{background:#fff;color:#111827;position:sticky;top:0;z-index:20;box-shadow:0 1px 6px rgba(0,0,0,.15)}
.topo .in{max-width:1280px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;gap:14px}
.marca{display:flex;align-items:baseline;gap:8px;text-decoration:none;font-weight:800;font-size:19px;letter-spacing:-.3px}
.marca{font-style:italic;letter-spacing:.5px}.marca b{color:#111827}.marca small{font-weight:500;font-size:12px;opacity:.75}
/* topo em duas faixas: 1) logo, atualizado, usuario  2) todas as abas visiveis (quebram linha se precisar; nada fica escondido) */
.topo .l1{min-height:52px}.topo .esp{flex:1}
.marca img{height:40px;width:auto;display:block}
.marca.semlogo{color:#1F9D4C}.marca .txt{display:none}.marca.semlogo .txt{display:inline}
nav.menu{background:#1F9D4C}
nav.menu .in{padding:4px 16px;gap:2px;flex-wrap:wrap;align-items:center}
nav.menu a{color:#EAF8EF;text-decoration:none;padding:6px 11px;border-radius:7px;font-size:14px;white-space:nowrap}
nav.menu a:hover{background:rgba(255,255,255,.12)}nav.menu a.ativo{background:#fff;color:#14713A;font-weight:700}
nav.menu .gr{font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:rgba(234,248,239,.7);padding:0 4px 0 2px}
nav.menu .sep{width:1px;height:20px;background:rgba(255,255,255,.25);margin:0 8px}
@media (max-width:1440px) and (min-width:761px){nav.menu .gr{display:none}nav.menu .sep{margin:0 6px}}
@media (max-width:1120px) and (min-width:761px){nav.menu a{padding:6px 7px;font-size:13px}nav.menu .sep{margin:0 3px}nav.menu .in{padding:4px 10px}}
.hamb{display:none;font:inherit;font-size:20px;line-height:1;color:#14713A;background:#E3F6E9;border:0;border-radius:8px;padding:7px 11px;cursor:pointer}
@media (max-width:760px){
  .hamb{display:block}
  nav.menu{display:none}nav.menu.aberto{display:block}
  nav.menu .in{flex-direction:column;align-items:stretch;padding:6px 10px 10px}
  nav.menu a{padding:10px 12px;font-size:15px}
  nav.menu .sep{width:auto;height:1px;margin:6px 0}
  nav.menu .gr{padding:6px 12px 2px}
  .topo .l1{gap:8px}.atualizado{display:none}
}
.atualizado{font-size:12px;color:#4B5563;white-space:nowrap}.atualizado.velho{color:#B45309;font-weight:700}.atualizado.critico{color:#fff;background:#B91C1C;padding:2px 8px;border-radius:6px;font-weight:700}
.faixa{padding:8px 16px;text-align:center;font-size:13px;font-weight:600}
.faixa.demo{background:#FEF3C7;color:#92400E}.faixa.vend{background:#DCFCE7;color:#166534}
h1 .eu-vend{font-weight:500;color:var(--cinza);font-size:.7em}
.posrank{display:flex;align-items:center;gap:14px;padding:6px 2px 10px}.posrank .pn{font-size:34px;font-weight:700;line-height:1;white-space:nowrap;flex:none}.posrank .pn small{font-size:15px;font-weight:500;color:var(--cinza)}.faixa.alerta{background:#FEE2E2;color:#991B1B}
main{max-width:1280px;margin:0 auto;padding:18px 16px 60px}
h1{font-size:24px;margin:4px 0 2px;color:var(--azul)}h2{font-size:17px;margin:0 0 4px;color:var(--azul)}
.sub{color:var(--cinza);font-size:13.5px;margin:0 0 16px}
.grade{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--linha);border-radius:12px;padding:12px 14px;border-left:4px solid var(--laranja)}
.kpi .r{font-size:12.5px;color:var(--cinza)}.kpi .v{font-size:25px;font-weight:800;letter-spacing:-.5px;margin:2px 0;color:var(--azul)}
.kpi .s{font-size:12.5px;color:var(--cinza)}.kpi.ok{border-left-color:var(--ok)}.kpi.aviso{border-left-color:#D97706}.kpi.erro{border-left-color:var(--erro)}
.kpi .s .up{color:var(--ok);font-weight:700}.kpi .s .down{color:var(--erro);font-weight:700}
.card{background:var(--card);border:1px solid var(--linha);border-radius:12px;padding:14px 16px;margin-bottom:14px;min-width:0}
.card .nota{font-size:12.5px;color:var(--cinza);margin:0 0 10px}
.vazio{color:var(--cinza);padding:22px;text-align:center;font-size:14px}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.t{border-collapse:collapse;width:100%;font-size:13.5px}
.t th{position:sticky;top:0;background:var(--card);text-align:left;font-weight:600;color:var(--cinza);font-size:12px;padding:7px 8px;border-bottom:2px solid var(--linha);cursor:pointer;white-space:nowrap;user-select:none}
.t th.r,.t td.r{text-align:right}.t th:hover{color:var(--laranja)}.t th .seta{font-size:10px;margin-left:3px}
.t td{padding:7px 8px;border-bottom:1px solid var(--linha);vertical-align:top}.t tr:hover td{background:rgba(242,106,27,.06)}
.t td.n{white-space:nowrap;font-variant-numeric:tabular-nums}
.t tr.clicavel{cursor:pointer}.t tr.clicavel td:first-child{color:var(--laranja)}
.ferr{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.ferr input,.ferr select{font:inherit;padding:7px 10px;border:1px solid var(--linha);border-radius:8px;background:var(--card);color:var(--txt);min-width:0}
.ferr input{flex:1;min-width:150px;max-width:340px}
.btn{font:inherit;border:1px solid var(--linha);background:var(--card);color:var(--txt);border-radius:8px;padding:7px 12px;cursor:pointer}.btn:hover{border-color:var(--laranja);color:var(--laranja)}
.chip{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}
.c-ok{background:var(--ok-bg);color:var(--ok)}.c-aviso{background:var(--aviso-bg);color:var(--aviso)}.c-erro{background:var(--erro-bg);color:var(--erro)}.c-info{background:var(--info-bg);color:var(--info)}.c-neutro{background:var(--linha);color:var(--cinza)}
.graf{width:100%;height:auto;display:block}.graf text{fill:var(--cinza);font-size:11px}.graf .grade{stroke:var(--linha)}
.leg{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--cinza);margin-top:6px}.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}
.barras .lin{display:grid;grid-template-columns:minmax(90px,200px) 1fr auto;gap:8px;align-items:center;margin:5px 0;font-size:13px}
.barras .rot{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.barras .tr{background:var(--linha);border-radius:6px;height:14px;overflow:hidden}
.barras .pr{height:100%;border-radius:6px}.barras .vl{font-variant-numeric:tabular-nums;font-weight:600;font-size:12.5px}
.home .card a.go{display:block;text-decoration:none}.home .card:hover{border-color:var(--laranja)}
.home .num{font-size:26px;font-weight:800;color:var(--azul)}.home .em{opacity:.55}
.rodape{margin-top:30px;font-size:12px;color:var(--cinza);text-align:center}
details.expl{margin:6px 0 12px;font-size:13px;color:var(--cinza)}details.expl summary{cursor:pointer;color:var(--laranja);font-weight:600}
@media (max-width:640px){main{padding:12px 10px 50px}h1{font-size:20px}.kpi .v{font-size:21px}}
@media print{header.topo .menu,.ferr{display:none}body{background:#fff}}

/* ---------- Resumo Executivo / Faturamento ---------- */
.filtros{position:sticky;top:52px;z-index:10;padding:10px 14px}
.frow{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.frow label{display:flex;flex-direction:column;font-size:11.5px;font-weight:600;color:var(--cinza);gap:3px;min-width:130px;flex:1}
.frow label.prod{flex:2;min-width:200px}.frow label:first-child{min-width:175px}
.frow select,.frow input{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--linha);border-radius:8px;background:var(--card);color:var(--txt);width:100%}
.frow select:focus,.frow input:focus{outline:2px solid var(--laranja);border-color:transparent}
.frow.ativos{margin-top:10px;gap:6px;align-items:center}
.chipf{font:inherit;font-size:12.5px;border:0;border-radius:99px;padding:4px 10px;background:var(--laranja-2);color:var(--txt);cursor:pointer}
.chipf b{color:var(--laranja)}.btn.mini{padding:4px 10px;font-size:12.5px}
.leitura{display:flex;gap:10px;align-items:flex-start;background:var(--laranja-2);border:1px solid var(--linha);border-radius:12px;padding:10px 14px;margin-bottom:14px;font-size:14px}
.leitura .ic{font-size:18px}.leitura span{margin-right:4px}
.kpis.k5{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
.kpi.vk{cursor:pointer;transition:box-shadow .15s,transform .15s;padding-bottom:8px}
.kpi.vk:hover{box-shadow:0 4px 14px rgba(0,0,0,.08)}.kpi.vk.on{outline:2px solid var(--laranja)}
.kpi .s.mini{font-size:11.5px;margin-top:2px}.spark{width:100%;height:auto;display:block;margin-top:6px}
.vgrid{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(0,2.3fr)}
.vgrid3{display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.vgrid{grid-template-columns:1fr}.vgrid3{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.vgrid3{grid-template-columns:1fr}.filtros{position:static}}
.vtopo{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.seg{display:inline-flex;background:var(--fundo);border:1px solid var(--linha);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{font:inherit;font-size:13px;border:0;background:transparent;color:var(--cinza);padding:6px 12px;border-radius:7px;cursor:pointer;white-space:nowrap}
.seg button.on{background:var(--laranja);color:#fff;font-weight:600}.seg button:not(.on):hover{color:var(--txt)}
.seg.med{margin-bottom:8px;display:flex;width:fit-content;max-width:100%}
.graf .vl{font-size:11px;font-weight:700;fill:var(--txt)}.graf rect.clic{cursor:pointer}
.mrow{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.anel{width:140px;height:140px;flex:none}
.anel .p{font-size:22px;font-weight:800;fill:var(--txt)}.anel .l{font-size:11px;fill:var(--cinza)}
.mtx{display:grid;gap:6px;flex:1;min-width:160px}.mtx div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--linha);padding-bottom:4px;font-size:13.5px}
.mtx span{color:var(--cinza)}.mtx b.up{color:var(--ok)}.mtx b.down{color:var(--erro)}
.mfrase{font-size:13.5px;margin:10px 0 6px}
.motiva{background:rgba(31,157,76,.08);border:1px solid rgba(31,157,76,.28);border-radius:10px;padding:10px 12px;margin:8px 0 10px;font-size:13.5px;line-height:1.45}.motiva p{margin:0}.motiva .apoio{margin-top:6px;color:var(--cinza)}
.bh{display:flex;flex-direction:column;gap:2px}
.bh .lin{font:inherit;display:grid;grid-template-columns:auto minmax(80px,1.1fr) 1fr auto;gap:8px;align-items:center;border:0;background:transparent;color:var(--txt);text-align:left;padding:5px 6px;border-radius:8px;cursor:pointer;font-size:13px}
.bh .lin:hover{background:var(--laranja-2)}.bh .lin.sel{background:var(--laranja-2);outline:1px solid var(--laranja)}.bh .lin.apag{opacity:.45}
.bh .med{font-size:15px;width:20px}
.bh .rot{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bh .tr{background:var(--linha);border-radius:5px;height:12px;overflow:hidden}.bh .pr{display:block;height:100%;background:var(--laranja);border-radius:5px}.bh .pr.neg{background:var(--erro)}
.bh .vl{font-variant-numeric:tabular-nums;font-weight:700;font-size:12.5px;text-align:right;white-space:nowrap}.bh .vl small{display:block;font-weight:400;color:var(--cinza);font-size:11px}
@media (max-width:640px){
  .kpis.k5{grid-template-columns:1fr 1fr;gap:8px}.kpis.k5 .kpi:first-child{grid-column:1/-1}
  .kpi.vk .v{font-size:19px}.kpi.vk .s{font-size:11.5px}
  #vgraf{overflow-x:auto;-webkit-overflow-scrolling:touch}#vgraf svg{min-width:640px}
  .frow label{min-width:calc(50% - 6px)}.frow label:first-child{min-width:100%}
  .anel{width:110px;height:110px}
}

/* usuario logado (menu do topo) */
details.usu{position:relative}
details.usu summary{list-style:none;cursor:pointer;color:#14713A;font-weight:600;font-size:13.5px;padding:6px 10px;border-radius:8px;background:#E3F6E9;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
details.usu summary::-webkit-details-marker{display:none}
details.usu summary::after{content:" ▾";opacity:.8}
details.usu[open] summary{background:#C9EDD5}
.usu-m{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);color:var(--txt);border:1px solid var(--linha);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);min-width:190px;padding:6px;z-index:30;display:flex;flex-direction:column}
.usu-m a,.usu-m button{font:inherit;font-size:14px;text-align:left;padding:8px 10px;border-radius:7px;text-decoration:none;color:var(--txt);background:none;border:0;cursor:pointer}
.usu-m a:hover,.usu-m button:hover{background:var(--fundo)}
.usu-m button{color:var(--erro)}

.orc-res{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:6px 0 10px}.orc-res div{background:var(--fundo,rgba(0,0,0,.03));border-radius:8px;padding:8px 10px}.orc-res b{display:block;font-size:18px}.orc-res span{font-size:12px;color:var(--cinza)}
/* 1.14.0 Oportunidades & Campanhas */
.op-aba .cx-g2,.cx-g2.op{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}
body .cx-barra{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:4px 0 16px}
body .cx-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}
@media (max-width:640px){body .cx-g2{grid-template-columns:1fr}}
.ad-barra{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.btn.prim{background:var(--laranja);color:#fff;border-color:transparent;font-weight:600}.btn.peq{font-size:12.5px;padding:4px 9px}
dialog.dlg{border:1px solid var(--linha);border-radius:14px;padding:0;background:var(--card);color:var(--txt);width:min(560px,calc(100vw - 32px));box-shadow:0 12px 40px rgba(0,0,0,.25)}
dialog.dlg::backdrop{background:rgba(15,23,42,.45)}dialog.dlg form{padding:22px}dialog.dlg h2{margin:0 0 4px;font-size:19px}
dialog.dlg label.r{display:block;font-size:13px;color:var(--cinza);margin:12px 0 6px}
dialog.dlg input[type=text],dialog.dlg input[type=number],dialog.dlg input[type=date],dialog.dlg select{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--linha);border-radius:9px;background:var(--card);color:var(--txt);box-sizing:border-box}
dialog.dlg .linha2{display:grid;grid-template-columns:1fr 1fr;gap:10px}dialog.dlg .rodape-d{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}
dialog.dlg .msg{margin-top:10px;font-size:13.5px;color:var(--erro);min-height:1.2em}
dialog.dlg .opcoes,dialog.dlg .vends{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:220px;overflow:auto}
dialog.dlg .opcoes label,dialog.dlg .vends label{display:flex;gap:6px;align-items:center;font-size:13.5px;padding:6px 8px;border:1px solid var(--linha);border-radius:8px}
.camp-t{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.camp-n{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:10px}
.camp-n div{background:rgba(0,0,0,.035);border-radius:8px;padding:8px 10px}.camp-n b{display:block;font-size:18px}.camp-n span{font-size:12px;color:var(--cinza)}
.barra-meta{height:10px;border-radius:6px;background:var(--linha);overflow:hidden;margin-top:10px}.barra-meta span{display:block;height:100%;background:#1F9D4C}
/* 1.15.0 Compras: cartao que abre a lista (analitico) e selecao multipla de posicao */
.kpi.ir{cursor:pointer;transition:box-shadow .15s}.kpi.ir:hover{box-shadow:0 4px 14px rgba(0,0,0,.10)}
.kpi.ir .s .ver{color:var(--azul);font-weight:600;white-space:nowrap}
.chips-sel{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.chips-sel button{border:1px solid var(--linha);background:var(--card);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;color:inherit}
.chips-sel button.on{background:var(--azul);border-color:var(--azul);color:#fff}
