import React from 'react';

function Badge({ children, tone = 'gray' }) {
  const tones = {
    green: 'bg-green-100 text-green-800 border-green-200',
    blue: 'bg-blue-100 text-blue-800 border-blue-200',
    yellow: 'bg-yellow-100 text-yellow-800 border-yellow-200',
    red: 'bg-red-100 text-red-800 border-red-200',
    gray: 'bg-slate-100 text-slate-700 border-slate-200',
  };
  return <span className={`inline-flex rounded-full border px-3 py-1 text-xs font-semibold ${tones[tone]}`}>{children}</span>;
}

function Card({ title, children }) {
  return (
    <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
      <h2 className="text-lg font-bold">{title}</h2>
      <div className="mt-4">{children}</div>
    </section>
  );
}

function Field({ label, value, hint }) {
  return (
    <div>
      <label className="text-xs font-semibold uppercase tracking-wide text-slate-500">{label}</label>
      <div className="mt-1 rounded-xl border border-slate-300 bg-slate-50 px-3 py-2 text-sm font-medium text-slate-800">{value}</div>
      {hint ? <p className="mt-1 text-xs text-slate-500">{hint}</p> : null}
    </div>
  );
}

export default function BU06BenutzerDeaktivierenReaktivieren() {
  return (
    <div className="min-h-screen bg-slate-50 p-6 text-slate-900">
      <div className="mx-auto max-w-7xl space-y-5">
        <header className="rounded-2xl border border-sky-200 bg-sky-50 p-6 shadow-sm">
          <div className="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between">
            <div>
              <p className="text-sm font-semibold uppercase tracking-wide text-sky-700">UC08 · BU-06</p>
              <h1 className="mt-1 text-3xl font-bold">Benutzer deaktivieren / reaktivieren</h1>
              <p className="mt-2 max-w-3xl text-sm text-slate-600">Statuswechsel kontrolliert bestätigen, letzter Admin schützen und auditierbar speichern.</p>
            </div>
            <div className="flex flex-wrap gap-2">
              <button className="rounded-xl border border-slate-300 bg-white px-4 py-2 text-sm font-semibold text-slate-800">Abbrechen</button>
              <button className="rounded-xl bg-red-600 px-4 py-2 text-sm font-semibold text-white">Deaktivieren</button>
            </div>
          </div>
        </header>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <div className="flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between">
            <div>
              <h2 className="text-lg font-bold">Kontext</h2>
              <p className="mt-1 text-sm text-slate-600">Anna Müller · anna@example.test · Rolle: mitarbeiter · Status: aktiv</p>
            </div>
            <div className="flex flex-wrap gap-2"><Badge tone="green">aktiv</Badge><Badge tone="blue">kein Admin-Risiko</Badge></div>
          </div>
        </section>

        <div className="grid gap-5 lg:grid-cols-3">
          <Card title="1. Statuswechsel">
            <div className="space-y-4">
              <Field label="aktuell" value="active" />
              <div>
                <p className="text-xs font-semibold uppercase tracking-wide text-slate-500">Aktion</p>
                <div className="mt-2 grid gap-3 sm:grid-cols-2">
                  <button className="rounded-xl border border-red-300 bg-red-50 px-4 py-3 text-sm font-semibold text-red-800">deaktivieren</button>
                  <button className="rounded-xl border border-slate-300 bg-white px-4 py-3 text-sm font-semibold text-slate-700">reaktivieren</button>
                </div>
              </div>
              <Field label="neu" value="inactive" />
            </div>
          </Card>

          <Card title="2. Sicherheitsprüfung">
            <div className="space-y-3">
              <Badge tone="green">Tenant-Isolation OK</Badge>
              <Badge tone="green">nicht letzter Admin</Badge>
              <Badge tone="yellow">aktive Sessions beenden?</Badge>
              <p className="rounded-xl border border-slate-200 bg-slate-50 p-3 text-sm text-slate-600">Deaktivierte Benutzer dürfen sich nicht mehr anmelden.</p>
            </div>
          </Card>

          <Card title="3. Pflichtgrund">
            <div className="space-y-4">
              <Field label="Grund" value="Austritt / Rollenwechsel" />
              <Field label="Bemerkung" value="optional" />
              <p className="rounded-xl border border-slate-200 bg-slate-50 p-3 text-sm text-slate-600">Audit: alter Status, neuer Status, Grund, Benutzer und Zeitpunkt.</p>
            </div>
          </Card>
        </div>

        <div className="grid gap-5 lg:grid-cols-2">
          <Card title="4. Auswirkungen">
            <ul className="list-disc space-y-2 pl-5 text-sm text-slate-700">
              <li>Benutzer kann sich nach Deaktivierung nicht mehr anmelden.</li>
              <li>Rolle bleibt historisch erhalten.</li>
              <li>Reaktivierung ist später möglich.</li>
              <li>Statuswechsel erscheint in BU-08 Audit-Historie.</li>
            </ul>
          </Card>

          <Card title="5. Bestätigung">
            <div className="space-y-4">
              <div className="rounded-xl border border-red-200 bg-red-50 p-4 text-sm text-red-900">Benutzer wird deaktiviert. Statuswechsel wird erst nach bewusster Bestätigung gespeichert.</div>
              <div className="flex flex-wrap justify-end gap-2">
                <button className="rounded-xl border border-slate-300 px-4 py-2 text-sm font-semibold text-slate-700">Zurück</button>
                <button className="rounded-xl bg-red-600 px-4 py-2 text-sm font-semibold text-white">Deaktivieren</button>
              </div>
            </div>
          </Card>
        </div>
      </div>
    </div>
  );
}
