<%# app/views/admin/perfis_acesso/_form.html.erb
    O ADM marca o que o perfil enxerga. As caixas vêm agrupadas por área do
    catálogo (Permissao.por_grupo) e cada uma traz a descrição do EFEITO real —
    "Registrar pagamento" sem a linha de baixo não diz se inclui estornar. %>
<%= form_with model: [:admin, perfil], url: (perfil.persisted? ? admin_perfil_path(perfil) : admin_perfis_path),
    data: { turbo: false }, class: 'space-y-6' do |f| %>

  <% if perfil.errors.any? %>
    <div class="bg-red-500/10 border border-red-500/30 rounded-xl p-4">
      <p class="text-red-400 font-semibold mb-1"><%= icone :erro, cor: 'text-red-400' %> Não foi possível salvar</p>
      <ul class="text-red-300 text-sm list-disc list-inside space-y-0.5">
        <% perfil.errors.full_messages.each do |msg| %><li><%= msg %></li><% end %>
      </ul>
    </div>
  <% end %>

  <%# ── Identificação ──────────────────────────────────── %>
  <div class="bg-[#1a1a1a] border border-[#2a2a2a] rounded-2xl p-6 space-y-4">
    <div>
      <%= f.label :nome, 'Nome do perfil', class: 'block text-sm font-medium text-gray-300 mb-1.5' %>
      <%= f.text_field :nome, required: true, placeholder: 'Ex.: Gerente sem configurações',
          class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white
                  focus:outline-none focus:border-[#f97316]' %>
    </div>

    <div>
      <%= f.label :descricao, 'Para que serve', class: 'block text-sm font-medium text-gray-300 mb-1.5' %>
      <%= f.text_field :descricao, placeholder: 'Quem usa este perfil e por quê',
          class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white
                  focus:outline-none focus:border-[#f97316]' %>
    </div>

    <div class="flex items-center justify-between">
      <div>
        <%= f.label :ativo, 'Perfil ativo', class: 'block text-sm font-medium text-gray-300' %>
        <p class="text-gray-500 text-xs mt-0.5">Desativado, quem estiver nele perde os acessos marcados aqui.</p>
      </div>
      <%= f.check_box :ativo, class: 'w-5 h-5 accent-orange-500' %>
    </div>

    <% if perfil.sistema? %>
      <p class="text-amber-400 text-sm">
        <%= icone :alerta, cor: 'text-amber-400' %> Perfil que vem com o sistema: pode ser editado e desativado, mas não excluído.
      </p>
    <% end %>
  </div>

  <%# ── Permissões ─────────────────────────────────────────
      O campo vazio antes das caixas é obrigatório: sem ele, desmarcar TUDO faria
      o parâmetro sumir do POST e o controller entenderia "não mexeu". %>
  <%= hidden_field_tag 'perfil_acesso[permissoes][]', '' %>

  <% marcadas = perfil.permissoes_validas %>
  <% Permissao.por_grupo.each do |grupo, itens| %>
    <div class="bg-[#1a1a1a] border border-[#2a2a2a] rounded-2xl overflow-hidden">
      <div class="flex items-center justify-between gap-3 px-5 py-3 bg-[#0f0f0f] border-b border-[#2a2a2a]">
        <h2 class="text-white font-bold"><%= Permissao.grupo_label(grupo) %></h2>
        <span class="text-gray-500 text-xs"><%= itens.count { |chave, _| marcadas.include?(chave) } %> de <%= itens.size %></span>
      </div>

      <div class="divide-y divide-[#2a2a2a]">
        <% itens.each do |chave, cfg| %>
          <label class="flex items-start gap-3 px-5 py-4 cursor-pointer hover:bg-[#222] min-h-[56px]">
            <%= check_box_tag 'perfil_acesso[permissoes][]', chave, marcadas.include?(chave),
                id: "perm-#{chave.tr('.', '-')}", class: 'mt-1 w-5 h-5 accent-orange-500 shrink-0' %>
            <span class="min-w-0">
              <span class="block text-white font-semibold"><%= cfg[:label] %></span>
              <span class="block text-gray-400 text-sm mt-0.5"><%= cfg[:descricao] %></span>
            </span>
          </label>
        <% end %>
      </div>
    </div>
  <% end %>

  <div class="flex flex-wrap gap-3">
    <%= f.submit perfil.persisted? ? 'Salvar perfil' : 'Criar perfil',
        class: 'bg-orange-500 hover:bg-orange-600 text-black font-bold px-6 py-3.5 rounded-xl
                min-h-[48px] cursor-pointer' %>
    <%= link_to 'Cancelar', admin_perfis_path,
        class: 'px-5 py-3.5 text-gray-300 hover:text-white border border-[#2a2a2a] rounded-xl min-h-[48px] flex items-center' %>
  </div>
<% end %>
