const { Breadcrumb, Badge, Button, Divider, Icon, Stat, SectionLabel } = window.BuildingInvestDesignSystem_f8840b;

function ProjectDetail({ id, onNavigate, onOpenProject, lang }) {
  const t = window.I18N[lang];
  const data = window.BI_DATA[lang];
  const p = data.projects.find((x) => x.id === id) || data.projects[0];
  const others = data.projects.filter((x) => x.id !== p.id).slice(0, 3);
  const width = useViewportWidth();
  const stack = width < 860;
  const scopeCols = width < 480 ? 1 : 2;
  const otherCols = width < 640 ? 1 : width < 960 ? 2 : 3;
  return <>
    <div style={{ background: "var(--surface-card)", borderBottom: "1px solid var(--border-color)" }}>
      <Container style={{ padding: "var(--space-6) var(--page-margin-lg)" }}>
        <Breadcrumb items={[{ label: t.projectDetail.breadcrumbHome, onClick: () => onNavigate("home") }, { label: t.projectDetail.breadcrumbProjects, onClick: () => onNavigate("projects") }, p.title]} />
      </Container>
    </div>
    <Section tone="light">
      <div style={{ display: "grid", gridTemplateColumns: stack ? "1fr" : "1fr 1fr", gap: stack ? "var(--space-7)" : "var(--space-11)", alignItems: "start" }}>
        <ProjectGallery key={p.id} images={p.gallery} mainRatio="4 / 3" lang={lang} fallbackLabel={t.projectDetail.photoMain} />
        <div style={{ display: "flex", flexDirection: "column", gap: "var(--space-6)" }}>
          <div style={{ display: "flex", gap: "var(--space-3)", alignItems: "center", flexWrap: "wrap" }}>
            <Badge tone={p.status === "done" ? "neutral" : "success"} dot>{t.projects.status[p.status]}</Badge>
            <Badge tone="accent">{t.projects.categories[p.cat]}</Badge>
          </div>
          <h1 style={{ font: "var(--type-h1)", letterSpacing: "var(--tracking-tight)" }}>{p.title}</h1>
          <p style={{ font: "var(--type-body-lg)", color: "var(--text-secondary)" }}>{p.lead}</p>
          <Divider variant="rule" />
          <div style={{ background: "var(--surface-sunken)", border: "1px solid var(--border-color)", borderRadius: "var(--radius-card)", padding: "var(--card-pad-lg)", display: "flex", flexDirection: "column", gap: "var(--space-5)" }}>
            <SectionLabel>{t.projectDetail.specLabel}</SectionLabel>
            <table style={{ width: "100%", borderCollapse: "collapse" }}>
              <tbody>
                {[[t.projectDetail.tableLabels.client, p.client], [t.projectDetail.tableLabels.year, p.year], [t.projectDetail.tableLabels.area, p.area], [t.projectDetail.tableLabels.duration, p.duration], [t.projectDetail.tableLabels.category, t.projects.categories[p.cat]]].map(([k, v]) => (
                  <tr key={k} style={{ borderBottom: "1px solid var(--border-color)" }}>
                    <td style={{ padding: "10px 0", font: "var(--weight-medium) var(--text-xs)/1.2 var(--font-condensed)", letterSpacing: "var(--tracking-wider)", textTransform: "uppercase", color: "var(--text-tertiary)" }}>{k}</td>
                    <td style={{ padding: "10px 0", textAlign: "right", font: "var(--type-mono)", fontSize: 13 }}>{v}</td>
                  </tr>
                ))}
              </tbody>
            </table>
          </div>
          <div style={{ display: "flex", gap: "var(--space-3)", flexWrap: "wrap" }}>
            <Button iconRight="arrow-right" onClick={() => onNavigate("contact")}>{t.projectDetail.ctaSimilar}</Button>
            <Button variant="ghost" iconLeft="download">{t.projectDetail.ctaPdf}</Button>
          </div>
          <Divider />
          <h2 style={{ font: "var(--type-h3)" }}>{t.projectDetail.executedWorks}</h2>
          <div style={{ display: "grid", gridTemplateColumns: `repeat(${scopeCols},1fr)`, gap: "var(--space-4)" }}>
            {p.scope.map((s) => (
              <div key={s} style={{ display: "flex", gap: "var(--space-3)", alignItems: "flex-start" }}>
                <Icon name="check" size="sm" color="var(--amber-600)" style={{ marginTop: 3 }} />
                <span style={{ font: "var(--type-body)" }}>{s}</span>
              </div>
            ))}
          </div>
        </div>
      </div>
    </Section>
    <Section label={t.projectDetail.portfolioLabel} title={t.projectDetail.otherWorks} tone="sunken">
      <div style={{ display: "grid", gridTemplateColumns: `repeat(${otherCols},1fr)`, gap: "var(--gutter)" }}>
        {others.map((o) => (
          <div key={o.id} onClick={() => onOpenProject(o.id)} style={{ cursor: "pointer", display: "flex", flexDirection: "column", gap: "var(--space-4)" }}>
            <ProjectImage ratio="4 / 3" src={o.image} label={t.common.photoPrefix + t.projects.categories[o.cat].toUpperCase()} />
            <h3 style={{ font: "var(--weight-regular) var(--text-lg)/1.25 var(--font-display)" }}>{o.title}</h3>
          </div>
        ))}
      </div>
    </Section>
  </>;
}

Object.assign(window, { ProjectDetail });
