(() => {
const DS = window.LeonardoSousaBJJDesignSystem_2cc6b8;
const { ClassCard, Card, KpiCard, ListItem, Avatar, BeltBadge, Button, Badge, Icon } = DS;
const A = window.LSAdmin;

function InstructorDashboard({ go }) {
  const mine = A.today.filter((c) => c.instructor === 'Prof. Leonardo Sousa');
  return (
    <div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>
      <Grid cols="repeat(auto-fit, minmax(170px, 1fr))">
        <KpiCard label="Minhas aulas hoje" value={mine.length} icon="calendar-days" hint="próxima às 19:00" />
        <KpiCard label="Alunos nas minhas turmas" value="132" icon="users" />
        <KpiCard label="Frequência média" value="84" unit="%" icon="trending-up" delta="+3 p.p." trend="up" />
        <KpiCard label="Aptos para graduar" value={A.promotions.length} icon="award" variant="dark" hint="revise antes de sábado" />
      </Grid>
      <Grid cols="minmax(0, 1fr) minmax(0, 1fr)">
        <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
          <ClassCard variant="hero" weekday="Hoje" time="19:00" endTime="20:30" title="Adulto Gi — Todos os níveis" modality="Gi" instructor="Tatame 1" room="18 reservas" />
          <Button size="lg" iconLeft="clipboard-check" onClick={() => go('presenca')}>Abrir chamada</Button>
          {mine.filter((c) => c.status !== 'open').map((c) => <ClassCard key={c.id} time={c.time} endTime={c.end} title={c.title} instructor={`${c.present} presentes`} modality={c.modality} status="checked" />)}
        </div>
        <Card title="Graduações pendentes" subtitle="Alunos indicados para avaliação">
          {A.promotions.map((p, i) => (
            <ListItem key={p.nome} leading={<Avatar name={p.nome} size={40} />} title={p.nome}
              subtitle={<span style={{ display: 'inline-flex', alignItems: 'center', gap: 6, marginTop: 4 }}><BeltBadge belt={p.de[0]} stripes={p.de[1]} kidsStripe={p.kids} size="sm" /><Icon name="arrow-right" size={12} /><BeltBadge belt={p.para[0]} stripes={p.para[1]} kidsStripe={p.kids} size="sm" /></span>}
              trailing={<Button size="sm" variant="soft">Graduar</Button>} divider={i < A.promotions.length - 1} />
          ))}
        </Card>
      </Grid>
    </div>
  );
}

Object.assign(window, { InstructorDashboard });
})();
