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',
    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 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>
  );
}

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>
  );
}

export default function FA06GasartUndVerbrauchsdatenErfassen() {
  const balanceBefore = 8;
  const consumption = 2;
  const balanceAfter = balanceBefore - consumption;

  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">UC03 · FA-06</p>
              <h1 className="mt-1 text-3xl font-bold">Gasart und Verbrauchsdaten erfassen</h1>
              <p className="mt-2 max-w-3xl text-sm text-slate-600">
                Gasart, Nitrox-Variante, FO₂, Verbrauch und optionale Analyseinformationen prüfen.
              </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">Zurück</button>
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">Weiter zu FA-07</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">Maria Keller · 10+3 Bonuskarte Luft · Rest vor Buchung: 8 / 13 Füllungen</p>
            </div>
            <div className="flex flex-wrap gap-2">
              <Badge tone="green">aktiv</Badge>
              <Badge tone="green">Guthaben ausreichend</Badge>
              <Badge tone="green">keine pending_sync</Badge>
            </div>
          </div>
        </section>

        <div className="grid gap-5 lg:grid-cols-3">
          <Card title="1. Gasart">
            <div className="grid gap-3 sm:grid-cols-2">
              <button className="rounded-xl border border-slate-300 bg-white px-4 py-3 text-sm font-semibold text-slate-700">Luft</button>
              <button className="rounded-xl border border-sky-300 bg-sky-50 px-4 py-3 text-sm font-semibold text-sky-800">Nitrox</button>
            </div>
            <div className="mt-4 grid gap-3 sm:grid-cols-3">
              {['32 %', '36 %', '40 %'].map((variant) => (
                <button
                  key={variant}
                  className={`rounded-xl border px-4 py-2 text-sm font-semibold ${variant === '32 %' ? 'border-sky-300 bg-sky-50 text-sky-800' : 'border-slate-300 bg-slate-50 text-slate-700'}`}
                >
                  {variant}
                </button>
              ))}
            </div>
            <div className="mt-4">
              <Field label="FO₂ optional" value="32" hint="FO₂ ist Sauerstoffanteil, nicht ppO₂." />
            </div>
          </Card>

          <Card title="2. Verbrauch">
            <div className="space-y-4">
              <Field label="Standardverbrauch" value="2 Punkte für Nitrox 32" hint="aus Tenant-Regel pro Gasart / Nitrox-Variante" />
              <div className="grid gap-4 sm:grid-cols-2">
                <Field label="Rest vorher" value={`${balanceBefore} Punkte`} />
                <Field label="Rest nachher" value={`${balanceAfter} Punkte`} />
              </div>
              <Badge tone="green">Buchung wäre zulässig</Badge>
            </div>
          </Card>

          <Card title="3. Übersteuerung">
            <div className="mb-4 rounded-xl border border-yellow-200 bg-yellow-50 p-3 text-sm text-yellow-900">
              Manuelle Übersteuerung ist nur mit Pflichtgrund, Datum/Zeit und User-Stempel erlaubt.
            </div>
            <div className="space-y-4">
              <Field label="manueller Verbrauch" value="leer" />
              <Field label="Grund" value="Pflicht bei Übersteuerung" />
            </div>
          </Card>
        </div>

        <div className="grid gap-5 lg:grid-cols-2">
          <Card title="4. Analyseinformationen">
            <div className="mb-4 flex flex-wrap gap-2">
              <Badge tone="blue">Analyse erfasst</Badge>
              <Badge tone="gray">optional</Badge>
            </div>
            <div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
              <Field label="Rolle" value="Mitarbeiter" />
              <Field label="Name" value="Anna" />
              <Field label="Zeitpunkt" value="2026-05-07 17:30" />
              <Field label="Kundenanalyse" value="später möglich" />
            </div>
          </Card>

          <Card title="5. Vorschau für FA-07">
            <div className="rounded-2xl border border-sky-200 bg-sky-50 p-5">
              <p className="text-lg font-bold">Nitrox 32 · FO₂ 32 % · Verbrauch 2 Punkte</p>
              <p className="mt-2 text-sm text-slate-700">Restguthaben: 8 Punkte → 6 Punkte</p>
              <p className="mt-3 text-sm text-slate-600">Noch keine Ledger-Buchung. Verbindliche Bestätigung folgt in FA-07.</p>
            </div>
            <div className="mt-4 flex justify-end">
              <button className="rounded-xl bg-sky-700 px-4 py-2 text-sm font-semibold text-white">FA-07 öffnen</button>
            </div>
          </Card>
        </div>

        <section className="rounded-2xl border border-slate-200 bg-white p-5 shadow-sm">
          <p className="text-sm text-slate-600">
            Hinweis: FO₂ beschreibt den Sauerstoffanteil im Atemgas. ppO₂ beschreibt den Sauerstoffpartialdruck und hängt zusätzlich von Tiefe / Druck ab.
          </p>
        </section>
      </div>
    </div>
  );
}
