OK    $targets = adminPremiumTargets();
    return (string)($targets[$idx] ?? '');
}
function adminPremiumKeyboard(bool $withTargets = true): array {
    $rows = [];

    if ($withTargets) {
        $targets = adminPremiumTargets();
        $validMap = function_exists('premiumEmojiMap') ? premiumEmojiMap(true) : [];

        $chunk = [];
        foreach ($targets as $i => $emoji) {
            $emoji = (string)$emoji;
            if ($emoji === '') continue;

            // ✅ means this fallback already has a premium custom_emoji_id.
            // ▫️ means it is still normal and can be mapped.
            $mark = isset($validMap[$emoji]) ? '✅' : '▫️';
            $chunk[] = [
                'text' => $emoji . ' ' . $mark,
                'callback_data' => 'admin_premium_pick:' . $i,
            ];

            if (count($chunk) === 4) {
                $rows[] = $chunk;
                $chunk = [];
            }
        }

        if ($chunk) $rows[] = $chunk;
    }

    $rows[] = [
        ['text' => '➕ انتخاب از لیست / تغییر ایموجی', 'callback_data' => 'admin_premium_add'],
    ];
    $rows[] = [
        ['text' => '🗑 حذف یک ایموجی', 'callback_data' => 'admin_premium_delete_prompt'],
        ['text' => '📋 لیست', 'callback_data' => 'admin_premium_panel'],
    ];
    $rows[] = [
        ['text' => '⬅️ بازگشت', 'callback_data' => 'admin_panel'],
    ];

    return ['inline_keyboard' => $rows];
}
function buildAdminPremiumText(): string {
    if (!function_exists('premiumEmojiMap')) {
        return "⚠️ ماژول ایموجی پریمیوم لود نشده است.";
    }

    $all = premiumEmojiMap(false);
    $valid = premiumEmojiMap(true);

    $lines = [];
    $lines[] = "💎 <b>پنل ایموجی پریمیوم</b>";
    $lines[] = "";
    $lines[] = "از لیست پایین انتخاب کن کدام ایموجی معمولی ربات به پریمیوم تبدیل شود، بعد خود <b>Custom Emoji</b> را برای ربات بفرست.";
    $lines[] = "";
    $lines[] = "تعداد قابل مدیریت: <b>" . count($all) . "</b>";
    $lines[] = "تعداد ثبت‌شده: <b>" . count($valid) . "</b>";
    $lines[] = "";
        editMessageText(
            $chat_id,
            $message_id,
            "✅ <b>آن‌بلاک کاربر</b>\n\nآیدی عددی کاربر را بفرست.\nمثال:\n<code>123456789</code>\n\nلغو: /cancel",
            ['inline_keyboard' => [[['text'=>'⬅️ بازگشت','callback_data'=>'admin_panel']]]]
        );
        return;
    }

    if ($data === 'admin_premium_panel') {
        answerCb($cbid);
        editMessageText($chat_id, $message_id, buildAdminPremiumText(), adminPremiumKeyboard(true));
        return;
    }

    if ($data === 'admin_premium_add') {
        answerCb($cbid, 'از لیست انتخاب کن');
        editMessageText(
            $chat_id,
            $message_id,
            buildAdminPremiumChooseText(),
            adminPremiumKeyboard(true)
        );
        return;
    }

    if (strpos($data, 'admin_premium_pick:') === 0) {
        $idx = (int)substr($data, strlen('admin_premium_pick:'));
        $target = function_exists('adminPremiumTargetByIndex') ? adminPremiumTargetByIndex($idx) : '';
        if ($target === '') {
            answerCb($cbid, 'ایموجی پیدا نشد', true);
            editMessageText($chat_id, $message_id, buildAdminPremiumText(), adminPremiumKeyboard(true));
            return;
        }

        setAdminState($from_id, [
            'mode' => 'await_premium_emoji',
            'target_emoji' => $target,
        ]);

        answerCb($cbid, 'حالا ایموجی پریمیوم را بفرست');
        editMessageText(
            $chat_id,
            $message_id,
            buildAdminPremiumSelectedText($target),
            ['inline_keyboard' => [[['text'=>'⬅️ بازگشت','callback_data'=>'admin_premium_panel']]]]
        );
        return;
    }

    if ($data === 'admin_premium_delete_prompt') {
        setAdminState($from_id, ['mode' => 'await_premium_emoji_delete']);
        answerCb($cbid, 'ایموجی را بفرست');
        editMessageText(
            $chat_id,
            $message_id,
            "🗑 <b>حذف ایموجی پریمیوم</b>\n\nایموجی معمولی یا همان ایموجی پریمیوم را بفرست تا از لیست پنل حذف شود.\nمثال: ✅\n\nلغو: /cancel",
            ['inline_keyboard' => [[['text'=>'⬅️ بازگشت','callback_data'=>'admin_premium_panel']]]]
        );
        return;
    }

    answerCb($cbid);
}


/* ================== INLINE HELPERS ================== */
function inlineQueryMatches(string $query, array $asset): bool {
    $q = mb_strtolower(trim(normalize($query)), 'UTF-8');
    if ($q === '') return true;

DONE
