/* OrchEcomm — tabbed Settings page. */
function SettingsScreen({ onToast }) {
  const I = window.OcIcons;
  const { Card, CardHeader, Input, Button, Switch, Avatar, Badge } = window.OrchEcommDesignSystem_091be6;
  const [tab, setTab] = React.useState("General");
  const tabs = ["General", "Integrations", "Billing", "Team", "Notifications"];

  const Field = ({ label, children }) => (
    <label style={{ display: "flex", flexDirection: "column", gap: 6 }}>
      <span style={{ font: "var(--type-caption)", fontWeight: 500, color: "var(--text-primary)" }}>{label}</span>
      {children}
    </label>
  );
  const Select = ({ value }) => (
    <div style={{ display: "flex", alignItems: "center", height: 38, padding: "0 12px", border: "1px solid var(--border-strong)", borderRadius: "var(--radius-sm)", background: "var(--surface-card)", font: "var(--type-body)", color: "var(--text-primary)", cursor: "pointer" }}>
      <span style={{ flex: 1 }}>{value}</span><I.ChevronDown size={15} style={{ color: "var(--text-muted)" }} />
    </div>
  );

  return (
    <Card padding="none" style={{ overflow: "hidden" }}>
      <div style={{ display: "flex", gap: 4, padding: "0 16px", borderBottom: "1px solid var(--border-default)" }}>
        {tabs.map((t) => (
          <button key={t} onClick={() => setTab(t)} style={{ position: "relative", padding: "14px 14px", border: "none", background: "transparent", font: "var(--type-body)", fontWeight: tab === t ? 600 : 500, color: tab === t ? "var(--green-800)" : "var(--text-secondary)", cursor: "pointer" }}>
            {t}
            {tab === t ? <span style={{ position: "absolute", left: 8, right: 8, bottom: -1, height: 2, borderRadius: "var(--radius-full)", background: "var(--green-700)" }} /> : null}
          </button>
        ))}
      </div>

      <div style={{ padding: 24 }}>
        {tab === "General" ? (
          <div style={{ maxWidth: 520, display: "flex", flexDirection: "column", gap: 18 }}>
            <div style={{ display: "flex", alignItems: "center", gap: 14 }}>
              <Avatar name="Evergreen Goods" square size={52} />
              <div><Button variant="secondary" size="sm">Change logo</Button><div style={{ font: "var(--type-caption)", color: "var(--text-muted)", marginTop: 5 }}>PNG or SVG, used on generated content</div></div>
            </div>
            <Input label="Workspace name" defaultValue="Evergreen Goods" />
            <Input label="Support email" defaultValue="hello@evergreengoods.co" iconLeft={<I.Mail size={15} />} />
            <div style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 16 }}>
              <Field label="Timezone"><Select value="Europe/Bucharest (GMT+3)" /></Field>
              <Field label="Currency"><Select value="USD ($)" /></Field>
            </div>
            <Button variant="primary" onClick={() => onToast("Settings saved")} style={{ alignSelf: "flex-start" }}>Save changes</Button>
          </div>
        ) : null}

        {tab === "Integrations" ? (
          <div style={{ maxWidth: 620, display: "flex", flexDirection: "column", gap: 4 }}>
            {[["Stripe Payments", "Card", "Connected", "success"], ["WooCommerce", "Store", "Needs reauthorization", "warning"], ["Shopify", "Bag", "Connected", "success"], ["Email Automation", "Mail", "Not connected", "neutral"]].map(([name, ic, label, tone], i, arr) => {
              const Icon = I[ic];
              return <div key={name} style={{ display: "flex", alignItems: "center", gap: 12, padding: "14px 0", borderBottom: i < arr.length - 1 ? "1px solid var(--border-subtle)" : "none" }}>
                <span style={{ width: 36, height: 36, borderRadius: "var(--radius-sm)", background: tone === "neutral" ? "var(--ink-100)" : "var(--green-100)", color: tone === "neutral" ? "var(--text-muted)" : "var(--green-700)", display: "inline-flex", alignItems: "center", justifyContent: "center" }}><Icon size={18} /></span>
                <span style={{ flex: 1, font: "var(--type-card-title)", color: "var(--text-primary)" }}>{name}</span>
                <Badge tone={tone} dot>{label}</Badge>
                <Button variant="ghost" size="sm">Manage</Button>
              </div>;
            })}
          </div>
        ) : null}

        {tab === "Billing" ? (
          <div style={{ maxWidth: 620, display: "flex", flexDirection: "column", gap: 18 }}>
            <div style={{ display: "flex", alignItems: "center", gap: 16, padding: 18, borderRadius: "var(--radius-md)", background: "linear-gradient(120deg, var(--green-800), var(--green-900))", color: "#fff" }}>
              <div style={{ flex: 1 }}>
                <div style={{ font: "var(--type-eyebrow)", textTransform: "uppercase", letterSpacing: "var(--tracking-caps)", color: "var(--green-300)" }}>Current plan</div>
                <div style={{ fontSize: 22, fontWeight: 700, marginTop: 4 }}>Pro · $49/mo</div>
                <div style={{ font: "var(--type-caption)", color: "var(--green-200)", marginTop: 2 }}>Renews Jul 1, 2026</div>
              </div>
              <Button variant="secondary" size="sm" style={{ background: "#fff", borderColor: "#fff" }}>Manage plan</Button>
            </div>
            <div>
              <div style={{ display: "flex", justifyContent: "space-between", font: "var(--type-body)", color: "var(--text-secondary)", marginBottom: 6 }}><span>Visual assets this month</span><span style={{ color: "var(--text-primary)", fontWeight: 600 }}>1,204 / 2,000</span></div>
              <div style={{ height: 8, background: "var(--ink-100)", borderRadius: "var(--radius-full)", overflow: "hidden" }}><div style={{ width: "60%", height: "100%", background: "var(--green-600)", borderRadius: "var(--radius-full)" }} /></div>
            </div>
            <div>
              <div style={{ display: "flex", justifyContent: "space-between", font: "var(--type-body)", color: "var(--text-secondary)", marginBottom: 6 }}><span>API requests</span><span style={{ color: "var(--text-primary)", fontWeight: 600 }}>48k / 100k</span></div>
              <div style={{ height: 8, background: "var(--ink-100)", borderRadius: "var(--radius-full)", overflow: "hidden" }}><div style={{ width: "48%", height: "100%", background: "var(--green-600)", borderRadius: "var(--radius-full)" }} /></div>
            </div>
          </div>
        ) : null}

        {tab === "Team" ? (
          <div style={{ maxWidth: 620 }}>
            <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: 14 }}>
              <span style={{ font: "var(--type-card-title)", color: "var(--text-primary)" }}>3 members</span>
              <Button variant="primary" size="sm" iconLeft={<I.Plus size={15} />} onClick={() => onToast("Invitation sent")}>Invite member</Button>
            </div>
            {[["Cristian Babalau", "cristian@evergreengoods.co", "Owner"], ["Ana Popescu", "ana@evergreengoods.co", "Admin"], ["Design Team", "design@evergreengoods.co", "Editor"]].map(([name, email, role], i, arr) => (
              <div key={email} style={{ display: "flex", alignItems: "center", gap: 12, padding: "12px 0", borderBottom: i < arr.length - 1 ? "1px solid var(--border-subtle)" : "none" }}>
                <Avatar name={name} size={34} />
                <div style={{ flex: 1, minWidth: 0 }}>
                  <div style={{ font: "var(--type-card-title)", color: "var(--text-primary)" }}>{name}</div>
                  <div style={{ font: "var(--type-caption)", color: "var(--text-secondary)" }}>{email}</div>
                </div>
                <Badge tone={role === "Owner" ? "brand" : "neutral"}>{role}</Badge>
              </div>
            ))}
          </div>
        ) : null}

        {tab === "Notifications" ? (
          <div style={{ maxWidth: 520, display: "flex", flexDirection: "column", gap: 16 }}>
            {[["Sync failures", true], ["New orders", true], ["Weekly summary", true], ["Module recommendations", false], ["Low stock alerts", true], ["Billing & usage", false]].map(([l, on], i) => (
              <div key={i} style={{ display: "flex", alignItems: "center", justifyContent: "space-between" }}>
                <span style={{ font: "var(--type-body)", color: "var(--text-primary)", fontWeight: 500 }}>{l}</span>
                <Switch size="sm" defaultChecked={on} />
              </div>
            ))}
            <Button variant="primary" onClick={() => onToast("Notification preferences saved")} style={{ alignSelf: "flex-start", marginTop: 4 }}>Save changes</Button>
          </div>
        ) : null}
      </div>
    </Card>
  );
}
window.SettingsScreen = SettingsScreen;
