// ---------- Admin sign-in (staff accounts from directory) ----------
function readAdminSessionRaw() {
  try {
    const s = JSON.parse(sessionStorage.getItem('gh_session_v1') || 'null');
    return s && s.employeeId ? s : null;
  } catch (e) {
    return null;
  }
}

/** Boss uses a different PIN than staff (demo — replace with Supabase Auth in production). */
function AdminLogin({ onSuccess }) {
  const { t } = useT();
  const [email, setEmail] = React.useState('');
  const [pin, setPin] = React.useState('');
  const [err, setErr] = React.useState('');

  const submit = (e) => {
    e.preventDefault();
    setErr('');
    const list = window.EMPLOYEES || [];
    const u = list.find((x) => x.email.toLowerCase().trim() === email.toLowerCase().trim());
    if (!u) {
      setErr(t('admin.login_err_email'));
      return;
    }
    const bossPin = 'khalid26';
    const staffPin = 'hybah26';
    const ok = u.role === 'boss' ? pin === bossPin : pin === staffPin;
    if (!ok) {
      setErr(t('admin.login_err_pin'));
      return;
    }
    const sess = { employeeId: u.id, role: u.role, email: u.email, name: u.full_name };
    try {
      sessionStorage.setItem('gh_session_v1', JSON.stringify(sess));
    } catch (err2) { /* */ }
    if (window.__tweaks) window.__tweaks.role = u.role;
    onSuccess(sess);
  };

  return (
    <div style={{ minHeight: '100vh', background: 'var(--bg)', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: 24 }}>
      <div className="card" style={{ width: '100%', maxWidth: 420, padding: 32 }}>
        <div style={{ fontFamily: 'Cormorant Garamond', fontSize: 28, marginBottom: 8 }}>{t('admin.login_title')}</div>
        <p style={{ fontSize: 13, color: 'var(--text-dim)', marginBottom: 22, lineHeight: 1.5 }}>{t('admin.login_hint')}</p>
        <form onSubmit={submit} style={{ display: 'flex', flexDirection: 'column', gap: 14 }}>
          <div className="field">
            <label>{t('admin.login_email')}</label>
            <input type="email" autoComplete="username" value={email} onChange={(e) => setEmail(e.target.value)} placeholder="khalid.hybah@gelatohouse.app" required />
          </div>
          <div className="field">
            <label>{t('admin.login_pin')}</label>
            <input type="password" autoComplete="current-password" value={pin} onChange={(e) => setPin(e.target.value)} placeholder="••••••" required />
          </div>
          {err && <div style={{ fontSize: 12, color: 'var(--red)' }}>{err}</div>}
          <button type="submit" className="btn btn-primary" style={{ justifyContent: 'center', marginTop: 6 }}>
            {t('admin.login_submit')}
          </button>
        </form>
        <p style={{ fontSize: 11, color: 'var(--text-dimmer)', marginTop: 18, lineHeight: 1.45, fontFamily: 'JetBrains Mono' }}>{t('admin.login_demo_note')}</p>
      </div>
    </div>
  );
}

Object.assign(window, { AdminLogin, readAdminSessionRaw });
