:root{--terra:#A43D1B;--terra-w:#F0DFD4;--verde:#285422;--verde-w:#E4E1D5;--areia:#F9F1E9;--carvao:#1E1713;--suave:#38312D;--linha:#DCD3C6;--branco:#fff}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',-apple-system,Arial,sans-serif;background:var(--areia);color:var(--carvao);line-height:1.45;font-size:14px}
a{color:var(--terra)}
.top{background:var(--carvao);color:var(--areia);display:flex;align-items:center;gap:18px;padding:8px 18px;flex-wrap:wrap;position:sticky;top:0;z-index:20}
.brand{color:var(--areia);text-decoration:none;font-weight:800;font-size:17px;letter-spacing:.02em}.brand span{color:#EB9E84}
.top nav{display:flex;flex-wrap:wrap;gap:2px}
.top nav a{color:var(--areia);text-decoration:none;padding:6px 10px;border-radius:8px;font-size:13px;font-weight:600;opacity:.85}
.top nav a.on,.top nav a:hover{background:rgba(249,241,233,.14);opacity:1}
.top nav a.sair{margin-left:8px;opacity:.6}
body.app{padding-left:236px}
.side{position:fixed;left:0;top:0;bottom:0;width:236px;background:#fff;border-right:1px solid var(--linha);overflow-y:auto;z-index:30;padding:16px 12px 30px}
.side .logo{display:flex;align-items:flex-end;gap:8px;text-decoration:none;padding:2px 8px 14px;border-bottom:1px solid var(--linha);margin-bottom:8px}
.side .logo img{width:120px;height:auto}.side .logo span{font-weight:800;color:var(--terra);font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding-bottom:3px}
.side nav a{display:block;padding:7px 10px;border-radius:8px;color:var(--carvao);text-decoration:none;font-weight:600;font-size:13.5px;border-left:4px solid transparent}
.side nav a:hover{background:var(--areia)}
.side nav a.on{background:var(--carvao);color:var(--areia);font-weight:800;border-left-color:var(--terra)}
.side .grp{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--suave);margin:16px 10px 4px}
.side nav a.sair{margin-top:18px;color:var(--suave);font-weight:600}
.menubtn{display:none}
@media(max-width:900px){body.app{padding-left:0}.side{transform:translateX(-100%);transition:transform .2s;box-shadow:4px 0 20px rgba(0,0,0,.15)}.side.aberto{transform:none}
.menubtn{display:block;position:sticky;top:0;z-index:25;width:100%;text-align:left;padding:10px 16px;border:0;background:var(--carvao);color:var(--areia);font:inherit;font-weight:800;cursor:pointer}}
.wrap{max-width:1280px;margin:0 auto;padding:18px 16px 60px}
.ph{margin-bottom:14px}.ph h1{font-size:22px;font-weight:800}.ph .sub{color:var(--suave);font-size:13.5px;max-width:95ch}
h2{font-size:15px;font-weight:800;margin-bottom:10px}h3{font-size:13.5px;font-weight:800;margin:14px 0 6px}
.panel{background:var(--branco);border-radius:14px;padding:16px;box-shadow:0 2px 12px rgba(30,23,19,.07);margin-bottom:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid2.wide{grid-template-columns:2fr 1fr}
@media(max-width:900px){.grid2,.grid2.wide{grid-template-columns:1fr}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.kpi{background:var(--branco);border-radius:12px;padding:12px 14px;box-shadow:0 2px 12px rgba(30,23,19,.07)}
.kpi small{display:block;color:var(--suave);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.kpi b{font-size:19px;display:block;margin-top:2px}
.pos{color:var(--verde)}.neg{color:var(--terra)}
table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--suave);background:var(--verde-w);padding:7px 8px}
table.t td{padding:7px 8px;border-bottom:1px solid var(--linha);vertical-align:middle}
table.t td.num{text-align:right;white-space:nowrap}table.t tr.late td{background:#FFF3EC}table.t tr.late td:first-child{border-left:4px solid var(--terra)}
table.t tr.off td{opacity:.55}table.t tr.sub td{background:#FAF6F0;font-size:12px;color:var(--suave)}td.acts{white-space:nowrap}
.vazio{color:var(--suave);font-style:italic;font-size:13px}.small{font-size:12.5px;color:var(--suave)}
label{display:block;font-size:12px;font-weight:700;color:var(--suave);margin:8px 0 4px}
input[type=text],input[type=password],input[type=number],input:not([type]),select,textarea{width:100%;padding:8px 10px;border:1.5px solid var(--linha);border-radius:9px;font:inherit;font-size:14px;background:#FDFBF7}
input:focus,select:focus,textarea:focus{outline:2px solid var(--terra);border-color:var(--terra)}
textarea{min-height:70px;resize:vertical}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.form .row .f2{grid-column:span 2}.form .row .f3{grid-column:span 3}
.form.compact label{margin-top:4px}.form.compact .row{align-items:end}
.btn{display:inline-block;padding:9px 16px;border:0;border-radius:9px;background:var(--terra);color:#fff;font:inherit;font-weight:800;cursor:pointer;text-decoration:none;font-size:13.5px}
.btn.ghost{background:#fff;color:var(--terra);border:1.5px solid var(--terra)}.btn.danger{background:#fff;color:var(--carvao);border:1.5px solid var(--linha)}
.btn.small{padding:7px 12px;font-size:12.5px}.btn.full{width:100%;margin-top:14px;padding:12px}
.acoes{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.mini{display:inline-block;font-size:12px;font-weight:700;padding:4px 8px;border-radius:7px;border:1.5px solid var(--linha);background:#fff;color:var(--carvao);cursor:pointer;text-decoration:none;font-family:inherit}
.mini.ok{border-color:var(--verde);color:var(--verde)}.mini.ghost{color:var(--suave)}
select.mini{width:auto;padding:4px 6px;font-size:12px}
form.inline{display:inline}
.flash{padding:10px 14px;border-radius:10px;font-weight:700;margin-bottom:14px;border:1.5px solid}
.flash.ok{background:var(--verde-w);color:var(--verde);border-color:var(--verde)}.flash.erro{background:var(--terra-w);color:var(--terra);border-color:var(--terra)}
.badge{display:inline-block;font-size:11.5px;font-weight:800;padding:2px 8px;border-radius:99px;border:1.5px solid;white-space:nowrap}
.b-aberto{color:var(--suave);border-color:var(--linha);background:#fff}.b-atrasado{color:var(--terra);border-color:var(--terra);background:var(--terra-w)}
.b-parcial{color:#6B4E12;border-color:#C99A3B;background:#FFF4DC}.b-pago{color:var(--verde);border-color:var(--verde);background:var(--verde-w)}.b-cancel{color:var(--suave);border-color:var(--linha);background:#EEE;text-decoration:line-through}
.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--branco);padding:10px 12px;border-radius:12px;margin-bottom:12px;box-shadow:0 2px 12px rgba(30,23,19,.07)}
.filtros input,.filtros select{width:auto;padding:7px 9px;font-size:13px}
.tabs{display:inline-flex;gap:4px;flex-wrap:wrap}.tabs a{text-decoration:none;color:var(--suave);font-weight:700;font-size:12.5px;padding:6px 10px;border-radius:8px;border:1.5px solid transparent}
.tabs a.on{background:var(--carvao);color:var(--areia)}.tabs.big{margin-bottom:14px}.tabs.big a{font-size:13.5px}
.kanban{display:grid;grid-template-columns:repeat(6,minmax(190px,1fr));gap:10px;overflow-x:auto}
.kanban .col{background:#F3ECE2;border-radius:12px;padding:10px;min-height:120px}.kanban h3{margin:0 0 8px;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--suave)}.kanban h3 small{color:var(--carvao)}
.card{background:#fff;border-radius:10px;padding:10px;margin-bottom:8px;box-shadow:0 1px 6px rgba(30,23,19,.08);border-left:4px solid var(--verde)}.card.late{border-left-color:var(--terra)}
.card a{color:var(--carvao);text-decoration:none}.card .small{margin-top:2px}.card form{margin-top:6px}
.links a{display:block;background:#fff;border-radius:12px;padding:12px 14px;margin-top:8px;text-decoration:none;color:var(--carvao);font-weight:700;border-left:5px solid var(--verde)}.links small{display:block;font-weight:400;color:var(--suave);font-size:12px}
.ofxitem{border:1.5px solid var(--linha);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#FDFBF7}.ofxhead{font-size:14px}.ofxacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.ofxacts form.criar{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center;background:#fff;padding:6px 8px;border-radius:9px;border:1px dashed var(--linha)}.ofxacts form.criar input,.ofxacts form.criar select{width:auto;padding:5px 7px;font-size:12px}
.op{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:13px;color:var(--carvao)}.op input{width:16px;height:16px;accent-color:var(--terra)}
body.login{background:var(--carvao);color:var(--areia);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.box{background:var(--areia);color:var(--carvao);border-radius:20px;padding:34px 30px;max-width:420px;width:100%;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.box h1{font-size:22px;font-weight:800;margin:8px 0 2px}.box .sub{color:var(--suave);margin-bottom:10px}.kick{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--terra)}
/* ---------- v2 ---------- */
.bar{height:9px;background:var(--verde-w);border-radius:99px;overflow:hidden;margin:6px 0 4px;border:1px solid var(--linha)}.bar span{display:block;height:100%;background:var(--verde)}
.tag{display:inline-block;font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:6px;background:var(--carvao);color:var(--areia)}
ol.tl{list-style:none;position:relative;padding-left:4px}ol.tl li{display:flex;gap:10px;padding:0 0 14px;position:relative}
ol.tl li:before{content:'';position:absolute;left:13px;top:26px;bottom:0;border-left:2px solid var(--linha)}ol.tl li:last-child:before{display:none}
.tlic{flex:0 0 28px;height:28px;border-radius:50%;background:var(--areia);border:2px solid var(--carvao);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}
ol.tl li.fut .tlic{border-style:dashed}.tlh{font-size:12.5px;color:var(--suave)}.tlt{font-weight:700;margin-top:1px}.tlr{font-size:13px;color:var(--suave);margin-top:2px}
.lista{list-style:none}.lista li{padding:6px 0;border-bottom:1px solid var(--linha);font-size:13.5px}.lista li:last-child{border:0}
.panel.alerta{border-left:5px solid var(--carvao)}
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pcard{display:block;background:#fff;border:1.5px solid var(--linha);border-radius:12px;padding:12px 14px;text-decoration:none;color:var(--carvao)}.pcard:hover{border-color:var(--carvao)}.pcard.off{opacity:.6}
.pch{display:flex;justify-content:space-between;align-items:center;gap:8px}.pcl{margin-top:6px;font-size:13px}
.ev{display:block;font-size:12px;line-height:1.3;padding:3px 6px;border-radius:6px;margin:3px 0;text-decoration:none;color:var(--carvao);border:1px solid var(--linha);border-left-width:4px;background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev.reuniao{border-left-color:var(--carvao);background:#EFEAE3;font-weight:700}.ev.contato{border-left-color:var(--terra);background:var(--terra-w)}.ev.revisao{border-left-color:#7A5A12;background:#FFF4DC;font-weight:700}
.ev.tarefa{border-left-color:var(--suave)}.ev.cliente{border-left-color:#5E6B7A;background:#EEF1F4}.ev.receber{border-left-color:var(--verde);background:var(--verde-w)}.ev.pagar{border-left-color:var(--terra);border-left-style:dashed}
.legenda{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}.legenda .ev{display:inline-block;margin:0}
.semana{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:8px;overflow-x:auto}
.sd{background:#FDFBF7;border:1.5px solid var(--linha);border-radius:10px;padding:8px;min-height:120px}.sd.hoje{border:2.5px solid var(--carvao);background:#fff}
.sdh{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--suave);margin-bottom:4px}.sdh span{color:var(--carvao)}.sd.hoje .sdh{color:var(--carvao)}
.mais{font-size:11.5px;font-weight:700}
.agtit{font-size:16px;min-width:200px;text-align:center}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calh{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--suave);text-align:center;padding:4px}
.cald{background:#FDFBF7;border:1px solid var(--linha);border-radius:8px;padding:5px;min-height:96px;overflow:hidden}.cal.semana .cald{min-height:340px}
.cald.fora{opacity:.45}.cald.pass{background:#F6F2EC}.cald.hoje{border:2.5px solid var(--carvao);background:#fff}.caln{font-size:12px;font-weight:800}.caln span{font-size:10px;background:var(--carvao);color:var(--areia);border-radius:6px;padding:0 5px;margin-left:3px}
@media(max-width:700px){.calgrid{grid-template-columns:1fr}.calh{display:none}.cald.fora{display:none}.cald{min-height:0}}
.cfi{border:1.5px solid var(--linha);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:#fff}.cfi.late{border-left:5px solid var(--terra)}
form.contatei{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;align-items:center}form.contatei input,form.contatei select{width:auto;padding:5px 7px;font-size:12px}
.kanban.k4{grid-template-columns:repeat(4,minmax(220px,1fr))}.kcol.alvo{outline:3px dashed var(--carvao);outline-offset:-3px}
.kcard{background:#fff;border-radius:10px;padding:9px 10px;margin-bottom:8px;box-shadow:0 1px 6px rgba(30,23,19,.08);border-left:4px solid var(--linha);cursor:grab}.kcard.drag{opacity:.4}
.kcard a{color:var(--carvao);text-decoration:none}.kcard.pri-alta{border-left:6px solid var(--carvao)}.kcard.late{background:#FFF3EC;border-left-color:var(--terra)}
.kfoot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:6px}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.gantt{overflow-x:auto}.gax{display:flex;justify-content:space-between;font-size:11.5px;color:var(--suave);margin:0 0 6px 240px;min-width:400px}
.grow{display:grid;grid-template-columns:240px 1fr;gap:10px;align-items:center;margin-bottom:8px;min-width:640px}.glab b{display:block;font-size:13px}.glab small{font-size:11.5px;color:var(--suave)}
.gtrack{position:relative;height:26px;background:#F6F2EC;border-radius:8px;border:1px solid var(--linha)}
.gbar{position:absolute;top:3px;bottom:3px;background:var(--verde-w);border:1.5px solid var(--verde);border-radius:6px;overflow:hidden}.gbar span{display:block;height:100%;background:var(--verde)}
.gbar.late{border-color:var(--terra);border-style:dashed}.gbar.done span{background:var(--verde)}.gbar em{position:absolute;right:4px;top:1px;font-size:11px;font-style:normal;font-weight:800;color:var(--carvao)}
.gm{position:absolute;top:2px;transform:translateX(-50%);font-size:15px;text-decoration:none;color:#7A5A12}.gm.ok{color:var(--verde)}
.ghoje{position:absolute;top:-4px;bottom:-4px;border-left:2.5px solid var(--carvao)}
.funil .frow{display:grid;grid-template-columns:120px 1fr 150px;gap:8px;align-items:center;margin:6px 0}.fb{height:14px;background:var(--verde-w);border-radius:99px;overflow:hidden}.fb span{display:block;height:100%;background:var(--carvao)}.fl,.fn{font-size:13px}
