<% layout('layouts/main') %>
<% const adminBase = typeof adminBaseUrl !== 'undefined' ? adminBaseUrl : '/admin'; %>
<% const taskItems = Array.isArray(tasks) ? tasks : []; %>
<% const visibleTasks = taskItems.filter((task) => Number(task.count || 0) > 0); %>
<% const onboardingItems = Array.isArray(onboarding) ? onboarding : []; %>
<% const onboardingDone = onboardingItems.filter((item) => item.done).length; %>
<% const onboardingPercent = onboardingItems.length ? Math.round(onboardingDone / onboardingItems.length * 100) : 0; %>
<% const showOnboarding = onboardingItems.length > 0 && onboardingPercent < 100; %>
<div class="app-shell dashboard-cockpit">
  <%- partial('partials/admin-nav') %>
  <section class="content">
    <section class="admin-dashboard-overview">
      <div class="page-head compact-page-head dashboard-main-head">
        <div>
          <p class="eyebrow">Cockpit <%= roleProfile || 'Entreprise' %></p>
          <h1>Tableau de bord</h1>
          <p class="muted">Une vue claire pour décider, traiter et avancer sans fouiller dans les menus.</p>
        </div>
        <div class="actions">
          <a class="button" href="<%= adminBase %>/demandes">Traiter</a>
          <a class="button secondary" href="<%= adminBase %>/devis/nouveau">Créer devis</a>
          <a class="button secondary" href="<%= adminBase %>/factures/nouvelle">Créer facture</a>
          <button class="secondary" type="button" data-command-palette-open>Cmd K</button>
        </div>
      </div>

      <div class="stat-grid dashboard-kpi-strip">
        <a class="stat compact-stat" href="<%= adminBase %>/demandes"><strong><%= stats.newRequests.total %></strong><span>Demandes</span></a>
        <a class="stat compact-stat" href="<%= adminBase %>/devis"><strong><%= stats.quotesToSend.total %></strong><span>Devis à envoyer</span></a>
        <a class="stat compact-stat" href="<%= adminBase %>/interventions"><strong><%= stats.upcoming.total %></strong><span>Interventions</span></a>
        <a class="stat compact-stat" href="<%= adminBase %>/factures"><strong><%= ui.money(stats.unpaid.amount) %></strong><span>Impayés</span></a>
        <a class="stat compact-stat" href="<%= adminBase %>/factures"><strong>CHF <%= Number(stats.billedRevenue.total).toFixed(0) %></strong><span>Facturé mois</span></a>
        <a class="stat compact-stat" href="<%= adminBase %>/heures-facturables"><strong><%= ui.duration(stats.billableHours.minutes) %></strong><span>Heures</span></a>
      </div>
    </section>

    <section class="panel task-center" data-dashboard-widget="tasks">
      <div class="compact-heading inline-heading">
        <div>
          <p class="eyebrow">Centre de tâches</p>
          <h2>À traiter maintenant</h2>
        </div>
        <span class="badge"><%= visibleTasks.length %> priorité(s)</span>
      </div>
      <div class="task-list">
        <% visibleTasks.forEach((task) => { %>
          <a class="task-row severity-<%= task.severity %>" href="<%= adminBase %><%= task.href %>">
            <span><%= task.count %></span>
            <div><strong><%= task.label %></strong><small><%= task.detail %></small></div>
            <b>Ouvrir</b>
          </a>
        <% }) %>
        <% if (!visibleTasks.length) { %>
          <div class="empty-state slim"><strong>Aucune urgence active</strong><span>Le cockpit reste prêt: nouvelles demandes, CAMT, RH et interventions remonteront ici automatiquement.</span><a class="button secondary small" href="<%= adminBase %>/recherche">Rechercher un dossier</a></div>
        <% } %>
      </div>
    </section>

    <% if (showOnboarding) { %>
      <section class="panel onboarding-cockpit" data-dashboard-widget="onboarding">
        <div class="compact-heading inline-heading">
          <div>
            <p class="eyebrow">Onboarding guidé</p>
            <h2>Lancement entreprise</h2>
          </div>
          <strong class="progress-pill"><%= onboardingPercent %>%</strong>
        </div>
        <div class="onboarding-progress"><span style="width:<%= onboardingPercent %>%"></span></div>
        <div class="onboarding-list">
          <% onboardingItems.forEach((item) => { %>
            <a class="<%= item.done ? 'done' : '' %>" href="<%= adminBase %><%= item.href %>">
              <span><%= item.done ? '✓' : '•' %></span>
              <strong><%= item.label %></strong>
              <small><%= item.done ? 'Terminé' : 'À compléter' %></small>
            </a>
          <% }) %>
        </div>
      </section>
    <% } %>

    <section class="decision-strip dashboard-actions" data-dashboard-widget="sales">
      <a href="<%= adminBase %>/studio"><strong>Site public</strong><span>Vitrine, services, zones, couleurs</span></a>
      <a href="<%= adminBase %>/pipeline"><strong>Pipeline</strong><span>Demandes, devis, interventions, factures</span></a>
      <a href="<%= adminBase %>/suite#stocks"><strong>Stocks</strong><span>Matériel, produits, véhicules</span></a>
      <a href="<%= adminBase %>/suite#qualite"><strong>Qualité terrain</strong><span>Checklists, photos, signatures</span></a>
      <a href="<%= adminBase %>/rh"><strong>RH</strong><span>Absences, vacances, maladies</span></a>
      <a href="<%= adminBase %>/comptabilite/transactions"><strong>CAMT</strong><span>Rapprochement bancaire</span></a>
    </section>

    <div class="grid cards dashboard-panels" data-dashboard-widget="activity">
      <div class="panel compact-panel">
        <div class="inline-heading"><h2>Demandes prioritaires</h2><a href="<%= adminBase %>/demandes">Tout voir</a></div>
        <% urgentRequests.forEach(r=>{ %><a class="result-row" href="<%= adminBase %>/demandes/<%= r.id %>"><strong><%= r.service_type %></strong><span><%= r.first_name %> <%= r.last_name %> · <%= ui.date(r.created_at, true) %></span></a><% }) %>
        <% if (!urgentRequests.length) { %><div class="empty-state slim"><strong>Aucune demande urgente</strong><span>Les nouvelles demandes à traiter apparaîtront ici.</span><a class="button secondary small" href="<%= adminBase %>/demandes">Ouvrir les demandes</a></div><% } %>
        <%- partial('partials/pagination', { page: pagers.requests, pageUrl, param: 'requestsPage' }) %>
      </div>
      <div class="panel compact-panel">
        <div class="inline-heading"><h2>Derniers messages</h2><a href="<%= adminBase %>/messages">Tout voir</a></div>
        <% messages.forEach(m=>{ %><a class="result-row" href="<%= adminBase %>/messages/<%= m.id %>"><strong><%= m.subject %></strong><span><%= m.first_name %> <%= m.last_name %></span></a><% }) %>
        <% if (!messages.length) { %><div class="empty-state slim"><strong>Aucun message récent</strong><span>Les conversations clients remonteront ici.</span><a class="button secondary small" href="<%= adminBase %>/messages">Ouvrir messages</a></div><% } %>
        <%- partial('partials/pagination', { page: pagers.messages, pageUrl, param: 'messagesPage' }) %>
      </div>
      <div class="panel compact-panel">
        <div class="inline-heading"><h2>Derniers clients</h2><a href="<%= adminBase %>/clients">Tout voir</a></div>
        <% clients.forEach(c=>{ %><a class="result-row" href="<%= adminBase %>/clients/<%= c.id %>"><strong><%= c.first_name %> <%= c.last_name %></strong><span><%= ui.emailLabel(c.email) %></span></a><% }) %>
        <% if (!clients.length) { %><div class="empty-state slim"><strong>Aucun client</strong><span>Créez le premier client pour démarrer devis et factures.</span><a class="button secondary small" href="<%= adminBase %>/clients">Créer client</a></div><% } %>
      </div>
      <div class="panel compact-panel">
        <div class="inline-heading"><h2>Notifications internes</h2><a href="<%= adminBase %>/recherche">Rechercher</a></div>
        <% activity.forEach(a=>{ %><div class="result-row"><strong><%= ui.label(a.action) %></strong><span><%= a.first_name || 'Système' %> <%= a.last_name || '' %> · <%= ui.date(a.created_at, true) %></span></div><% }) %>
        <% if (!activity.length) { %><div class="empty-state slim"><strong>Aucune notification</strong><span>Les actions importantes seront consignées ici.</span></div><% } %>
        <%- partial('partials/pagination', { page: pagers.activity, pageUrl, param: 'activityPage' }) %>
      </div>
    </div>
  </section>
</div>
