diff --git a/src/main/webapp/master/clientes.html b/src/main/webapp/master/clientes.html
index a58c638..e545c20 100644
--- a/src/main/webapp/master/clientes.html
+++ b/src/main/webapp/master/clientes.html
@@ -1 +1,74 @@
-
Clientes
Clientes Slug Nome Status Plano Editar
\ No newline at end of file
+
+
+
+
+
+ Clientes
+
+
+
+
+
+
+
+
+
+
Clientes
+
+
+
+
+
+
+
+
+
+
+
Novo cadastro
+ Fechar
+
+
+
+
+
+
+
+
+ Slug
+ Nome
+ Status
+ Plano
+ Editar
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/master/clientes.js b/src/main/webapp/master/clientes.js
index 91fa492..a25af14 100644
--- a/src/main/webapp/master/clientes.js
+++ b/src/main/webapp/master/clientes.js
@@ -8,7 +8,42 @@ function statusAction(e){const acao=e.status==='ativa'?'Bloquear':'Ativar';retur
function detalheRow(e){if(selecionado!==e.id||!modo)return'';if(modo==='ver')return `${esc(e.nome)} Slug: ${esc(e.slug)}
CNPJ: ${esc(e.cnpj||'-')}
Status: ${esc(e.status)}
Plano: ${e.plano?`${esc(e.plano)} ${e.plano_valor_centavos?'- '+Util.money(e.plano_valor_centavos):''}`:'-'}
API Key de integração
Copiar API Key Solicitar alteração
Conta principal: abra Editar para alterar dados da empresa; funcionarios ficam no acesso da empresa.
Fechar `;return ` `}
function render(){const q=busca.value.trim();const lista=empresas.filter(e=>match(e,q));rows.innerHTML=lista.length?lista.map(e=>`${e.slug} ${e.nome} ${statusAction(e)} ${e.plano?`${e.plano} ${e.plano_valor_centavos?'- '+Util.money(e.plano_valor_centavos):''}`:'-'} Editar Ver Excluir ${detalheRow(e)}`).join(''):'Nenhum cliente encontrado. '}
async function load(){try{const [pe,de]=await Promise.all([Api.get('/api/master/planos'),Api.get('/api/master/empresas')]);planos=pe.planos||[];empresas=de.empresas||[];renderPlanos();render()}catch(e){Util.toast(e.message,true)}}
-empresaForm.onsubmit=async e=>{e.preventDefault();try{await Api.post('/api/master/empresas',Util.formData(empresaForm));empresaForm.reset();Util.toast('Cliente cadastrado');load()}catch(err){Util.toast(err.message,true)}};
+
+window.alternarBusca=()=>{
+ const strip=document.querySelector('#busca-strip');
+ if(!strip)return;
+ strip.classList.toggle('hidden');
+ if(!strip.classList.contains('hidden')){
+ busca.focus();
+ }
+};
+
+window.alternarCadastro=(forcar)=>{
+ const wrap=document.querySelector('#cadastro-wrap');
+ if(!wrap)return;
+ if(typeof forcar==='boolean'){
+ wrap.classList.toggle('hidden',!forcar);
+ }else{
+ wrap.classList.toggle('hidden');
+ }
+ if(!wrap.classList.contains('hidden')){
+ empresaForm.querySelector('input[name="slug"]')?.focus();
+ }
+};
+
+empresaForm.onsubmit=async e=>{
+ e.preventDefault();
+ try{
+ await Api.post('/api/master/empresas',Util.formData(empresaForm));
+ empresaForm.reset();
+ alternarCadastro(false);
+ Util.toast('Cliente cadastrado');
+ load();
+ }catch(err){
+ Util.toast(err.message,true);
+ }
+};
+
busca.oninput=render;
window.ver=id=>{selecionado=selecionado===id&&modo==='ver'?null:id;modo=selecionado?'ver':null;render()};
window.editar=id=>{selecionado=selecionado===id&&modo==='editar'?null:id;modo=selecionado?'editar':null;render()};