:root{
  --verde:#4E9A24; --verde-forte:#3F7D1E; --verde-escuro:#173D10; --verde-menu:#21501A;
  --verde-claro:#E7F3DE; --fundo:#F4F7F1; --borda:#E1E9DA; --borda-forte:#D3DECB;
  --texto:#17220F; --suave:#56604F; --laranja:#C2570C; --laranja-claro:#FBEADF;
  --azul:#1D4E89; --azul-claro:#E6EEF9; --amarelo-claro:#FFF4E5; --amarelo:#8A4B08;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fundo);font-family:Inter,system-ui,sans-serif;color:var(--texto);font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--verde-forte)}
.boot{padding:48px;text-align:center;color:var(--suave)}
.layout{display:flex;flex-wrap:wrap;min-height:100vh}
.menu{flex:1 1 240px;max-width:270px;background:var(--verde-escuro);color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:24px}
.marca{display:flex;align-items:center;gap:12px;padding:0 6px}
.marca-m{width:40px;height:40px;border-radius:12px;background:#5FAE2E;transform:rotate(-8deg);display:flex;align-items:center;justify-content:center;font:900 24px Montserrat,sans-serif}
.marca-nome{font:900 18px Montserrat,sans-serif;letter-spacing:.5px}
.marca-sub{font-size:12px;color:#BFD9AE}
.nav{display:flex;flex-direction:column;gap:4px}
.nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 14px;border-radius:12px;color:#DCEBD2;text-decoration:none;font-weight:600}
.nav a.ativo{background:#2F6A1F;color:#fff}
.nav a:hover{background:#2A5A1F}
.usuario{margin-top:auto;padding:14px;border-radius:14px;background:var(--verde-menu);display:flex;flex-direction:column;gap:6px}
.usuario small{color:#BFD9AE}
.usuario button{background:transparent;border:1px solid #3C6A2E;color:#DCEBD2;border-radius:10px;min-height:40px;cursor:pointer;font-weight:600}
.conteudo{flex:999 1 560px;min-width:0;padding:28px 32px 48px;display:flex;flex-direction:column;gap:22px}
.topo{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px}
.titulo{margin:0;font:900 28px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:-.5px}
.subtitulo{color:var(--suave);font-size:14px}
.acoes{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.card{background:#fff;border:1px solid var(--borda);border-radius:16px;padding:20px}
.h2{margin:0 0 12px;font:800 17px Montserrat,sans-serif}
.grid-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.kpi{display:flex;flex-direction:column;gap:6px}
.kpi-label{font-size:13px;color:var(--suave);font-weight:500}
.kpi-valor{font:800 26px Montserrat,sans-serif;letter-spacing:-.5px}
.kpi-sub{font-size:12px;color:var(--suave)}
.linha{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch}
.linha>*{flex:1 1 320px;min-width:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid var(--borda-forte);background:#fff;font-weight:600;cursor:pointer;text-decoration:none;color:var(--texto)}
.btn:hover{border-color:var(--verde)}
.btn-prim{background:var(--verde);border-color:var(--verde);color:#fff}
.btn-prim:hover{background:var(--verde-forte)}
.btn-perigo{color:var(--laranja);border-color:#EBC6AE}
.btn-peq{min-height:36px;padding:0 12px;font-size:13px}
.pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.p-port{background:var(--verde-claro);color:#2A5A12}
.p-energia{background:var(--azul-claro);color:var(--azul)}
.p-ok{background:var(--verde-claro);color:#1F6B10}
.p-alerta{background:var(--amarelo-claro);color:var(--amarelo)}
.p-perda{background:var(--laranja-claro);color:#9A3F07}
.p-neutro{background:#EEF2EA;color:#3B4436}
.tabela-box{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{font-size:12px;color:var(--suave);font-weight:600;text-align:left;padding:10px 12px;border-bottom:1px solid var(--borda);white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid #EEF2EA;white-space:nowrap}
tr.clicavel{cursor:pointer}
tr.clicavel:hover td{background:#F8FBF5}
.vazio{color:var(--suave);padding:18px 4px}
.kanban-box{overflow-x:auto;padding-bottom:8px}
.kanban{display:flex;gap:14px;align-items:flex-start;min-width:min-content}
.coluna{width:250px;flex:0 0 250px;background:#EBF1E6;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}
.coluna-topo{display:flex;justify-content:space-between;align-items:center;padding:2px 4px;font-weight:700}
.bolinha{display:inline-block;width:10px;height:10px;border-radius:99px;margin-right:8px}
.lead-card{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--borda);border-radius:14px;padding:13px;cursor:pointer}
.lead-card:hover{border-color:var(--verde)}
.lead-card .nome{display:flex;justify-content:space-between;gap:8px;font-weight:700}
.lead-card .meta{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--suave)}
.campo{display:flex;flex-direction:column;gap:6px}
.campo label{font-size:13px;font-weight:600}
.campo input,.campo select,.campo textarea{min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--borda-forte);background:#fff}
.campo textarea{padding:10px 12px;min-height:120px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.busca{flex:1 1 260px;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--borda-forte);background:#fff}
select.filtro{min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--borda-forte);background:#fff;font-weight:600}
.barra{height:30px;background:#EEF4E9;border-radius:8px;overflow:hidden}
.barra>div{height:100%;background:var(--verde);border-radius:8px}
.barra-fina{height:8px;background:#F6EEE6;border-radius:99px;overflow:hidden}
.barra-fina>div{height:100%;background:var(--laranja);border-radius:99px}
.funil-linha{display:grid;grid-template-columns:110px 1fr 130px;align-items:center;gap:12px;margin-bottom:10px}
.historico{display:flex;flex-direction:column;gap:12px}
.historico div{display:grid;grid-template-columns:12px 1fr;gap:10px}
.historico span.ponto{width:10px;height:10px;margin-top:4px;border-radius:99px;background:var(--verde)}
.nota{font-size:12px;color:var(--suave)}
.aviso{background:var(--verde-escuro);color:#fff;border-radius:14px;padding:16px 18px;line-height:1.5}
.login-tela{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--verde-escuro)}
.login-card{width:100%;max-width:400px;background:#fff;border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:16px}
.login-card .marca-nome{color:var(--verde-escuro)}
.erro{color:#9A3F07;font-size:13px;min-height:18px}
.modal-fundo{position:fixed;inset:0;background:rgba(15,30,10,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:20}
.modal{background:#fff;border-radius:18px;padding:24px;width:100%;max-width:640px;display:flex;flex-direction:column;gap:16px}
.modal-topo{display:flex;justify-content:space-between;align-items:center}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--verde-escuro);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none;z-index:30}
#toast.mostrar{opacity:1}
.sr{position:absolute;left:-9999px}
@media (max-width:700px){
  .menu{max-width:none;flex-basis:100%;padding:14px 16px;gap:12px}
  .nav{flex-direction:row;flex-wrap:wrap;gap:6px}
  .nav a{min-height:40px;padding:0 12px;background:#21501A}
  .usuario{margin-top:0;flex-direction:row;align-items:center;justify-content:space-between;padding:8px 12px}
  .usuario small{display:none}
  .usuario button{padding:0 14px}
  .conteudo{padding:20px 16px 40px}
  .titulo{font-size:22px}
  .funil-linha{grid-template-columns:80px 1fr 100px}
}
