<?php
// 独立网站独立品牌管理员申请页
// 提交：域名(.com)、网站初始名称、期望6位推荐码（前2位字母+4位可自定义）

$root = dirname(__DIR__);
require_once $root . '/includes/init.php';
require_once $root . '/includes/auth.php';

if (!defined('PARTNER_APPLY_DNS_ROOT_IP')) {
    define('PARTNER_APPLY_DNS_ROOT_IP', '38.76.180.182');
    define('PARTNER_APPLY_DNS_WWW_CNAME', 'web2.xcopy.cn');
    define('PARTNER_APPLY_DNS_DOWN_CNAME', 'down4.xcopy.cn');
    define('PARTNER_APPLY_DNS_WILDCARD_CNAME', 'web2.xcopy.cn');
}
require_once $root . '/includes/partner_apply_dns.php';

function get_setting($key, $default = null) {
    try {
        return get_system_setting($key) ?: $default;
    } catch (Exception $e) {
        return $default;
    }
}

// 登录校验（与全站会员子页一致：含伪装会话恢复）
if (function_exists('ggai_user_require_login')) {
    ggai_user_require_login();
}

$current_user_id = intval($_SESSION['user_id'] ?? 0);
if ($current_user_id <= 0) {
    echo __t('partner_apply_login_required', '请先登录后再申请');
    exit;
}

$myApply = null;
try {
    $stmtMyApply = $pdo->prepare(
        "SELECT id, domain, site_name, status, desired_referral_code, contact_info, created_at, updated_at, approved_at
         FROM partner_site_ownership
         WHERE partner_user_id=?
         ORDER BY id DESC
         LIMIT 1"
    );
    $stmtMyApply->execute([$current_user_id]);
    $myApply = $stmtMyApply->fetch(PDO::FETCH_ASSOC) ?: null;
} catch (Throwable $e) {
    $myApply = null;
}

require_once $root . '/includes/partner_apply_icp_check.php';

$partnerApplyLangSuffix = '';
if (defined('CURRENT_LANG') && CURRENT_LANG !== '' && CURRENT_LANG !== 'zh_cn') {
    $partnerApplyLangSuffix = '?lang=' . urlencode(CURRENT_LANG);
}

// AJAX：提交前检测 DNS + 域名是否已被占用
if ($_SERVER['REQUEST_METHOD'] === 'POST' && (string) ($_POST['action'] ?? '') === 'check_dns') {
    header('Content-Type: application/json; charset=utf-8');
    $domain = partner_site_normalize_domain((string) ($_POST['domain'] ?? ''));
    if (!partner_site_domain_valid($domain, true)) {
        echo json_encode([
            'ok' => false,
            'domain' => $domain,
            'msg' => __t('partner_apply_err_domain_fmt', '域名格式错误：须为英文或英文加数字的 .com / .net / .cn，禁止中文（示例：example.com）'),
            'errors' => [__t('partner_apply_err_domain_fmt', '域名格式错误：须为英文或英文加数字的 .com / .net / .cn，禁止中文（示例：example.com）')],
            'checks' => [],
        ], JSON_UNESCAPED_UNICODE);
        exit;
    }
    $takenMsg = function_exists('partner_site_domain_reject_reason')
        ? partner_site_domain_reject_reason($pdo, $domain, $current_user_id)
        : '';
    if ($takenMsg === '' && partner_site_domain_is_taken($pdo, $domain, $current_user_id)) {
        $takenMsg = __t('partner_apply_err_domain_taken', '该域名已被其他独立站申请或使用，请更换域名');
    }
    if ($takenMsg !== '') {
        echo json_encode([
            'ok' => false,
            'domain' => $domain,
            'msg' => $takenMsg,
            'errors' => [$takenMsg],
            'checks' => [],
        ], JSON_UNESCAPED_UNICODE);
        exit;
    }
    $icp = partner_apply_icp_check_domain($domain);
    if (empty($icp['ok'])) {
        $icpMsg = __t('partner_apply_icp_check_fail', '备案核验暂时失败，请稍后重试（工信部接口偶发需验证码）。已备案域名可稍候再测。');
        echo json_encode([
            'ok' => false,
            'domain' => $domain,
            'msg' => $icpMsg,
            'errors' => [$icpMsg . (!empty($icp['error']) ? '（' . $icp['error'] . '）' : '')],
            'checks' => [],
        ], JSON_UNESCAPED_UNICODE);
        exit;
    }
    if (empty($icp['filed'])) {
        $icpMsg = __t('partner_apply_icp_not_filed', '未查到该域名的 ICP 备案。国内独立站须先完成备案后再提交申请。');
        echo json_encode([
            'ok' => false,
            'domain' => $domain,
            'msg' => $icpMsg,
            'errors' => [$icpMsg],
            'checks' => ['icp' => $icp],
        ], JSON_UNESCAPED_UNICODE);
        exit;
    }
    // 国内方案：自备机优先——申请阶段只核备案；DNS 开通后在「自备机反代接入」配置
    $cnSelfFirst = function_exists('cn_partner_scheme_enabled') && cn_partner_scheme_enabled();
    if ($cnSelfFirst) {
        $okMsg = __t('partner_apply_icp_ok', '备案核验通过')
            . (!empty($icp['licence']) ? '（' . $icp['licence'] . '）' : '')
            . '；' . __t(
                'partner_apply_cn_dns_defer_self',
                'DNS 请开通后到「自备机反代接入」配置（@/www → 您的云主机 IP，down → 平台下载入口）。平台反代为备选。'
            );
        echo json_encode([
            'ok' => true,
            'domain' => $domain,
            'msg' => $okMsg,
            'errors' => [],
            'checks' => ['icp' => $icp, 'mode' => 'self_preferred'],
        ], JSON_UNESCAPED_UNICODE);
        exit;
    }
    $dns = partner_site_apply_check_dns($domain);
    $okMsg = $dns['ok']
        ? __t('partner_apply_dns_check_ok', 'DNS 解析检测通过，可以提交申请')
            . '；' . __t('partner_apply_icp_ok', '备案核验通过')
            . (!empty($icp['licence']) ? '（' . $icp['licence'] . '）' : '')
        : __t('partner_apply_dns_check_fail', 'DNS 解析未通过，请先按下方解析要求配置完成后再提交');
    echo json_encode([
        'ok' => $dns['ok'],
        'domain' => $domain,
        'msg' => $okMsg,
        'errors' => $dns['errors'],
        'checks' => $dns['checks'] + ['icp' => $icp],
    ], JSON_UNESCAPED_UNICODE);
    exit;
}

$msg = '';
$msgLevel = 'info';
$schemeApply = function_exists('cn_partner_scheme_enabled') && cn_partner_scheme_enabled();
$cnPctText = static function ($value): string {
    return rtrim(rtrim(number_format(floatval($value), 2, '.', ''), '0'), '.');
};
$cnSuggestedTier = $schemeApply && function_exists('cn_partner_suggested_open_tier')
    ? cn_partner_suggested_open_tier($pdo, $current_user_id)
    : 15;
$cnPersonalVol = $schemeApply && function_exists('cn_partner_applicant_open_volume')
    ? cn_partner_applicant_open_volume($pdo, $current_user_id)
    : ($schemeApply && function_exists('cn_partner_applicant_personal_volume')
        ? cn_partner_applicant_personal_volume($pdo, $current_user_id)
        : 0.0);
$cnOpenProgress = $schemeApply && function_exists('cn_partner_applicant_open_progress')
    ? cn_partner_applicant_open_progress($pdo, $current_user_id)
    : null;
$cnInitialPct = $schemeApply ? $cnPctText(cn_partner_shop_package_pct($cnSuggestedTier)) : '15';
$cnInitialLevels = $schemeApply ? cn_partner_shop_max_levels($cnSuggestedTier) : 7;
$cnPublicTier = $schemeApply ? cn_partner_public_tier_cap() : 46;
$cnFloorPct = $schemeApply ? $cnPctText(cn_partner_owner_package_floor_pct()) : '1';
$cnCopy = static function (string $key, string $fallback) use (
    $cnInitialPct,
    $cnInitialLevels,
    $cnPublicTier,
    $cnSuggestedTier,
    $cnFloorPct
): string {
    return strtr(__t($key, $fallback), [
        '{initial_pct}' => $cnInitialPct,
        '{initial_levels}' => (string) $cnInitialLevels,
        '{max_tier}' => (string) $cnPublicTier,
        '{suggested_tier}' => (string) $cnSuggestedTier,
        '{owner_floor}' => $cnFloorPct,
    ]);
};

if ($_SERVER['REQUEST_METHOD'] === 'POST' && $schemeApply) {
    $domain = partner_site_normalize_domain((string) ($_POST['domain'] ?? ''));
    $site_name = trim($_POST['site_name'] ?? '');
    $desired_code = strtoupper(trim($_POST['desired_code'] ?? ''));
    $contact_info = trim($_POST['contact_info'] ?? '');
    $stmtMe = $pdo->prepare('SELECT username, nickname, email, phone, referrer_id FROM users WHERE id=?');
    $stmtMe->execute([$current_user_id]);
    $meRow = $stmtMe->fetch(PDO::FETCH_ASSOC) ?: [];
    if ($site_name === '') {
        $site_name = trim((string) ($meRow['nickname'] ?: $meRow['username'] ?: ('shop' . $current_user_id)));
    }
    if ($contact_info === '') {
        $contact_info = trim((string) ($meRow['phone'] ?: $meRow['email'] ?: 'n/a'));
    }
    if ($desired_code === '') {
        $desired_code = partner_site_referral_code_generate($current_user_id);
    }
    if (function_exists('shop_apply_recharge_gate')) {
        $rg = shop_apply_recharge_gate($pdo, $current_user_id);
        if (empty($rg['ok'])) {
            $msg = (string) ($rg['msg'] ?? '充值未达开店门槛');
            $msgLevel = 'danger';
        }
    }
    if ($msg === '' && $desired_code !== '' && !partner_site_referral_code_valid_format($desired_code)) {
        $msg = __t('partner_apply_err_code_fmt', '推荐码需为6位：前2位字母+后4位字母或数字；也可留空由系统生成');
        $msgLevel = 'danger';
    } elseif ($msg === '' && $desired_code !== '' && partner_site_referral_code_is_taken($pdo, $desired_code, $current_user_id)) {
        $msg = __t('partner_apply_err_code_used', '该推荐码已被占用或已被其他申请预留，请更换或留空');
        $msgLevel = 'danger';
    }
    // 国内：允许先开店、后绑域。域名可空；填了只验格式/占用，不强制 ICP/DNS（备案慢，审核后继续用官网入口，备案好后在网站设置自助绑定）。
    if ($msg === '' && $domain !== '' && !partner_site_domain_valid($domain, true)) {
        $msg = __t('partner_apply_err_domain_fmt', '域名格式错误：须为英文或英文加数字的 .com / .net / .cn，禁止中文（示例：example.com）');
        $msgLevel = 'danger';
    }
    if ($msg === '' && $domain !== '' && function_exists('partner_site_domain_reject_reason')) {
        $rej = partner_site_domain_reject_reason($pdo, $domain, $current_user_id);
        if ($rej !== '') {
            $msg = $rej;
            $msgLevel = 'danger';
        }
    } elseif ($msg === '' && $domain !== '' && partner_site_domain_is_taken($pdo, $domain, $current_user_id)) {
        $msg = __t('partner_apply_err_domain_taken', '该域名已被其他独立站申请或使用，请更换域名');
        $msgLevel = 'danger';
    }
    if ($msg === '' && shop_apply_already_has_shop($pdo, $current_user_id)) {
        $msg = __t('partner_apply_err_already_have', '您已拥有独立网站，无需重复申请');
        $msgLevel = 'warning';
    }
    if ($msg === '') {
        $top_partner_id = shop_apply_nearest_top_user_id($pdo, $current_user_id) ?: null;
        $stmtDup = $pdo->prepare('SELECT id,status FROM partner_site_ownership WHERE partner_user_id=? LIMIT 1');
        $stmtDup->execute([$current_user_id]);
        $exists = $stmtDup->fetch(PDO::FETCH_ASSOC);
        if ($exists && $exists['status'] === 'approved') {
            $msg = __t('partner_apply_err_already_have', '您已拥有独立网站，无需重复申请');
            $msgLevel = 'warning';
        } else {
            if ($exists) {
                $stmtUp = $pdo->prepare("UPDATE partner_site_ownership SET top_partner_id=?, domain=?, site_name=?, desired_referral_code=?, contact_info=?, status='pending', price_snapshot=0, updated_at=NOW() WHERE id=?");
                $stmtUp->execute([$top_partner_id, $domain, $site_name, $desired_code ?: null, $contact_info, $exists['id']]);
                $ownId = intval($exists['id']);
            } else {
                $stmtIns = $pdo->prepare("INSERT INTO partner_site_ownership (partner_user_id, top_partner_id, domain, site_name, desired_referral_code, contact_info, status, price_snapshot, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, 'pending', 0, NOW(), NOW())");
                $stmtIns->execute([$current_user_id, $top_partner_id, $domain, $site_name, $desired_code ?: null, $contact_info]);
                $ownId = intval($pdo->lastInsertId());
            }
            if (intval(cn_partner_setting('shop_apply_auto_approve', 0)) === 1 && function_exists('approve_partner_shop')) {
                approve_partner_shop($pdo, $ownId, 0);
                $msg = __t(
                    'partner_apply_cn_success_auto_approved',
                    '开独立站已通过（自动审核）。可先继续用当前官网/原入口登录与管理；域名 ICP 备案完成后，请优先到「自备机反代接入」绑定域名并安装（平台反代为备选），无需再找平台操作。'
                );
            } else {
                $msg = __t(
                    'partner_apply_cn_success_submitted',
                    '申请已提交，等待平台审核。审核通过后即可先用当前官网/原入口管理店铺；域名备案后请优先走「自备机反代接入」（平台反代为备选）。'
                );
            }
            $msgLevel = 'success';
            // 刷新本页状态卡
            try {
                $stmtMyApply = $pdo->prepare(
                    "SELECT id, domain, site_name, status, desired_referral_code, contact_info, created_at, updated_at, approved_at
                     FROM partner_site_ownership WHERE partner_user_id=? ORDER BY id DESC LIMIT 1"
                );
                $stmtMyApply->execute([$current_user_id]);
                $myApply = $stmtMyApply->fetch(PDO::FETCH_ASSOC) ?: $myApply;
            } catch (Throwable $e) {
            }
        }
    }
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $domain = partner_site_normalize_domain((string) ($_POST['domain'] ?? ''));
    $site_name = trim($_POST['site_name'] ?? '');
    $desired_code = strtoupper(trim($_POST['desired_code'] ?? ''));
    $contact_info = trim($_POST['contact_info'] ?? '');

    if (function_exists('shop_apply_recharge_gate')) {
        $rg = shop_apply_recharge_gate($pdo, $current_user_id);
        if (empty($rg['ok'])) {
            $msg = (string) ($rg['msg'] ?? '充值未达开店门槛');
            $msgLevel = 'danger';
        }
    }

    // 基本校验
    if ($msg === '' && (!$contact_info || mb_strlen($contact_info) < 3)) {
        $msg = __t('partner_apply_err_contact_short', '请填写微信/手机号（至少3个字符）');
        $msgLevel = 'danger';
    } elseif ($msg === '' && !partner_site_domain_valid($domain, false)) {
        $msg = __t('partner_apply_err_domain_fmt', '域名格式错误：须为英文或英文加数字的 .com / .net / .cn，禁止中文（示例：example.com）');
        $msgLevel = 'danger';
    } elseif ($msg === '') {
        $dnsLegacy = partner_site_apply_check_dns($domain);
        if (!$dnsLegacy['ok']) {
            $msg = __t('partner_apply_dns_check_fail', 'DNS 解析未通过，请先按下方解析要求配置完成后再提交')
                . '：' . implode('；', $dnsLegacy['errors']);
            $msgLevel = 'danger';
        } else {
            $icpLegacy = partner_apply_icp_check_domain($domain);
            if (empty($icpLegacy['ok'])) {
                $msg = __t('partner_apply_icp_check_fail', '备案核验暂时失败，请稍后重试（工信部接口偶发需验证码）。已备案域名可稍候再测。');
                $msgLevel = 'danger';
            } elseif (empty($icpLegacy['filed'])) {
                $msg = __t('partner_apply_icp_not_filed', '未查到该域名的 ICP 备案。国内独立站须先完成备案后再提交申请。');
                $msgLevel = 'danger';
            }
        }
    }
    if ($msg === '' && function_exists('partner_site_domain_reject_reason')) {
        $rej = partner_site_domain_reject_reason($pdo, $domain, $current_user_id);
        if ($rej !== '') {
            $msg = $rej;
            $msgLevel = 'danger';
        }
    } elseif ($msg === '' && partner_site_domain_is_taken($pdo, $domain, $current_user_id)) {
        $msg = __t('partner_apply_err_domain_taken', '该域名已被其他独立站申请或使用，请更换域名');
        $msgLevel = 'danger';
    }
    if ($msg === '' && (!$site_name || mb_strlen($site_name) < 2)) {
        $msg = __t('partner_apply_err_site_short', '请填写网站初始名称（至少2个字符）');
        $msgLevel = 'danger';
    } elseif ($msg === '' && !partner_site_referral_code_valid_format($desired_code)) {
        $msg = __t('partner_apply_err_code_fmt', '推荐码需为6位：前2位字母+后4位字母或数字');
        $msgLevel = 'danger';
    } elseif ($msg === '' && partner_site_referral_code_is_taken($pdo, $desired_code, $current_user_id)) {
        $msg = __t('partner_apply_err_code_used', '该推荐码已被占用或已被其他申请预留，请更换');
        $msgLevel = 'danger';
    }

    if ($msg === '') {
        // 计算门槛价格（基础 + 日递增 + Top加价）
        $base = floatval(get_setting('partner_site_base_price', 10000));
        $daily_inc = floatval(get_setting('partner_site_daily_increment', 100));
        $start_at = get_setting('partner_site_price_start_at', '2025-10-01');
        $min_balance = floatval(get_setting('partner_site_min_balance', 100));
        $start_ts = strtotime(date('Y-m-d 00:00:00', strtotime($start_at)));
        $today_ts = strtotime(date('Y-m-d 00:00:00'));
        $days = max(0, intval(($today_ts - $start_ts) / 86400));
        $required_price = $base + $days * $daily_inc;

        // 找到最近的上级独立品牌管理员Top（9/10/11）
        $top_partner_id = null;
        $stmtU = $pdo->prepare("SELECT id, referrer_id, role_id FROM users WHERE id=?");
        $stmtU->execute([$current_user_id]);
        $cur = $stmtU->fetch(PDO::FETCH_ASSOC);
        $visited = [$current_user_id];
        while ($cur && !empty($cur['referrer_id'])) {
            $stmt2 = $pdo->prepare("SELECT id, referrer_id, role_id FROM users WHERE id=?");
            $stmt2->execute([$cur['referrer_id']]);
            $cur = $stmt2->fetch(PDO::FETCH_ASSOC);
            if (!$cur || in_array($cur['id'], $visited)) break;
            $visited[] = $cur['id'];
            if (in_array(intval($cur['role_id']), [9,10,11], true)) {
                $top_partner_id = intval($cur['id']);
                break;
            }
        }
        if (!$top_partner_id) {
            $msg = __t('partner_apply_err_no_upline', '未找到您的上级独立品牌管理员（黄金/钻石/金钻），暂无法申请独立网站');
            $msgLevel = 'danger';
        }

        // 读取Top加价
        if ($msg === '') {
            // 检查运营中心购买权限
            $team_leader_check_passed = true;
            $stmtCur = $pdo->prepare("SELECT referrer_id FROM users WHERE id=?");
            $stmtCur->execute([$current_user_id]);
            $curInfo = $stmtCur->fetch(PDO::FETCH_ASSOC);
            $checkUser = $curInfo ? intval($curInfo['referrer_id']) : 0;
            $visitedTL = [];
            
            while ($checkUser && $checkUser > 0) {
                if (in_array($checkUser, $visitedTL, true)) break;
                $visitedTL[] = $checkUser;
                
                $stmtUser = $pdo->prepare("SELECT id, referrer_id, role_id FROM users WHERE id=?");
                $stmtUser->execute([$checkUser]);
                $userInfo = $stmtUser->fetch(PDO::FETCH_ASSOC);
                if (!$userInfo) break;
                
                if (in_array(intval($userInfo['role_id']), [13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39], true)) {
                    $stmtTL = $pdo->prepare("SELECT allow_partner_site FROM partner_team_leader_commission WHERE partner_id=? AND team_leader_id=? LIMIT 1");
                    $stmtTL->execute([$top_partner_id, $userInfo['id']]);
                    $tlConfig = $stmtTL->fetch(PDO::FETCH_ASSOC);
                    $allowPartnerSite = $tlConfig ? (intval($tlConfig['allow_partner_site'] ?? 1)) : 1;
                    if ($allowPartnerSite == 0) {
                        $team_leader_check_passed = false;
                        $stmtTLName = $pdo->prepare("SELECT username, nickname FROM users WHERE id=?");
                        $stmtTLName->execute([$userInfo['id']]);
                        $tlInfo = $stmtTLName->fetch(PDO::FETCH_ASSOC);
                        $msg = str_replace(
                            '{name}',
                            $tlInfo['nickname'] ?: $tlInfo['username'],
                            __t('partner_apply_err_team_leader_closed', '您所属的运营中心（{name}）已关闭独立站购买权限，暂无法申请')
                        );
                        $msgLevel = 'danger';
                        break;
                    }
                    break;
                }
                $checkUser = intval($userInfo['referrer_id']);
            }
            
            if ($team_leader_check_passed) {
                $stmtPol = $pdo->prepare("SELECT extra_requirement FROM partner_site_policy WHERE top_partner_id=? AND active=1 LIMIT 1");
                $stmtPol->execute([$top_partner_id]);
                $extra_req = floatval($stmtPol->fetchColumn() ?: 0);
                $required_price += $extra_req;

                // 最近24小时充值额
                $pwPerf = recharge_orders_partner_site_performance_where_sql('');
                $stmtSum24 = $pdo->prepare("SELECT SUM(amount) FROM recharge_orders WHERE user_id=? AND status='confirmed' AND created_at >= ?" . $pwPerf);
                $stmtSum24->execute([$current_user_id, date('Y-m-d H:i:s', time() - 86400)]);
                $recharge_24h = floatval($stmtSum24->fetchColumn() ?: 0);

                // 账户算力余额（points）
                $stmtPts = $pdo->prepare("SELECT points FROM users WHERE id=?");
                $stmtPts->execute([$current_user_id]);
                $points = floatval($stmtPts->fetchColumn() ?: 0);

                if ($recharge_24h < $required_price) {
                    $msg = str_replace(
                        ['{need}', '{actual}'],
                        [number_format($required_price, 2), number_format($recharge_24h, 2)],
                        __t('partner_apply_err_recharge', '最近24小时充值不足当前门槛：需要 {need} USDT，实际 {actual} USDT')
                    );
                    $msgLevel = 'warning';
                } elseif ($points < $min_balance) {
                    $msg = str_replace(
                        '{min}',
                        number_format($min_balance, 2),
                        __t('partner_apply_err_points', '账户算力余额不足 {min}，请先充值')
                    );
                    $msgLevel = 'warning';
                } else {
                    // 写入申请（pending）。同一用户仅保留一条申请。
                    $stmtDup = $pdo->prepare("SELECT id,status FROM partner_site_ownership WHERE partner_user_id=? LIMIT 1");
                    $stmtDup->execute([$current_user_id]);
                    $exists = $stmtDup->fetch(PDO::FETCH_ASSOC);
                    if ($exists && $exists['status'] === 'approved') {
                        $msg = __t('partner_apply_err_already_have', '您已拥有独立网站，无需重复申请');
                    } else {
                        if ($exists) {
                            $stmtUp = $pdo->prepare("UPDATE partner_site_ownership SET top_partner_id=?, domain=?, site_name=?, desired_referral_code=?, contact_info=?, status='pending', price_snapshot=?, updated_at=NOW() WHERE id=?");
                            $stmtUp->execute([$top_partner_id, $domain, $site_name, $desired_code, $contact_info, intval($required_price), $exists['id']]);
                        } else {
                            $stmtIns = $pdo->prepare("INSERT INTO partner_site_ownership (partner_user_id, top_partner_id, domain, site_name, desired_referral_code, contact_info, status, price_snapshot, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, 'pending', ?, NOW(), NOW())");
                            $stmtIns->execute([$current_user_id, $top_partner_id, $domain, $site_name, $desired_code, $contact_info, intval($required_price)]);
                        }
                        $msg = __t('partner_apply_success_submitted', '申请已提交，可在本页查看状态。国内站须先完成 ICP 备案；备案与审核通过后才能接入。请确保已在腾讯云或阿里云完成域名注册、备案及 DNS 解析。');
                        $msgLevel = 'success';
                        try {
                            $stmtMyApply = $pdo->prepare(
                                "SELECT id, domain, site_name, status, desired_referral_code, contact_info, created_at, updated_at, approved_at
                                 FROM partner_site_ownership WHERE partner_user_id=? ORDER BY id DESC LIMIT 1"
                            );
                            $stmtMyApply->execute([$current_user_id]);
                            $myApply = $stmtMyApply->fetch(PDO::FETCH_ASSOC) ?: $myApply;
                        } catch (Throwable $e) {
                        }
                    }
                }
            }
        }
    }
}

?>
<!doctype html>
<html lang="<?php echo htmlspecialchars(function_exists('get_html_lang') ? get_html_lang() : 'zh-CN', ENT_QUOTES, 'UTF-8'); ?>">
<head>
    <meta charset="utf-8">
    <title><?= __t('partner_apply_page_title_owner_access', '免费申请开通独立网站'); ?></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
    <style>
        * { box-sizing: border-box; }
        body { 
            margin: 0;
            padding: 0;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            min-height: 100vh;
        }
        .page-wrapper {
            position: relative;
            min-height: 100vh;
        }
        .main-content {
            width: 100%;
            padding: 30px;
            padding-top: 70px;
            overflow-y: auto;
        }
        /* 侧栏交给 templates/sidebar.php（ggaiSidebarToggle / ggai-sidebar-open），勿再 left:-250/.show 覆盖 */
        .hero-section {
            background: linear-gradient(135deg, #FF6B6B 0%, #FF8E53 100%);
            border-radius: 20px;
            padding: 40px;
            color: white;
            margin-bottom: 30px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
            position: relative;
            overflow: hidden;
        }
        .hero-section::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
            animation: pulse 4s ease-in-out infinite;
        }
        @keyframes pulse {
            0%, 100% { transform: scale(1); opacity: 0.5; }
            50% { transform: scale(1.1); opacity: 0.8; }
        }
        .hero-section h1 {
            font-size: 2.5em;
            font-weight: 800;
            margin: 0 0 20px 0;
            position: relative;
            z-index: 1;
        }
        .hero-section .tagline {
            font-size: 1.3em;
            opacity: 0.95;
            margin-bottom: 0;
            position: relative;
            z-index: 1;
        }
        .countdown-badge {
            display: inline-block;
            background: rgba(255,255,255,0.2);
            padding: 10px 20px;
            border-radius: 50px;
            margin-top: 20px;
            font-size: 1.1em;
            font-weight: 600;
            backdrop-filter: blur(10px);
            position: relative;
            z-index: 1;
        }
        .price-card {
            background: white;
            border-radius: 20px;
            padding: 35px;
            margin-bottom: 30px;
            box-shadow: 0 10px 40px rgba(0,0,0,0.1);
            transition: transform 0.3s, box-shadow 0.3s;
        }
        .price-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 50px rgba(0,0,0,0.15);
        }
        .price-highlight {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 30px;
            border-radius: 15px;
            text-align: center;
            margin: 20px 0;
        }
        .price-big {
            font-size: 3.5em;
            font-weight: 900;
            margin: 15px 0;
            text-shadow: 2px 2px 4px rgba(0,0,0,0.2);
        }
        .price-tomorrow {
            background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
            padding: 20px;
            border-radius: 12px;
            margin-top: 15px;
        }
        .status-check {
            background: white;
            border-radius: 15px;
            padding: 25px;
            margin-bottom: 20px;
        }
        .status-item {
            display: flex;
            align-items: center;
            padding: 15px;
            margin-bottom: 10px;
            border-radius: 10px;
            transition: all 0.3s;
        }
        .status-item.success {
            background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
            color: white;
        }
        .status-item.warning {
            background: linear-gradient(135deg, #FFA726 0%, #FB8C00 100%);
            color: white;
        }
        .status-item.danger {
            background: linear-gradient(135deg, #EF5350 0%, #E53935 100%);
            color: white;
        }
        .status-item i {
            font-size: 2em;
            margin-right: 20px;
        }
        .status-item .status-text {
            flex: 1;
        }
        .status-item.success .apply-tier-next,
        .status-item.success .apply-tier-cap {
            color: #fff !important;
            text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
        }
        .status-item.success .apply-tier-next span,
        .status-item.success .apply-tier-muted {
            color: rgba(255, 255, 255, 0.92) !important;
            font-weight: 500;
        }
        .status-item.success .apply-tier-footnote {
            color: rgba(255, 255, 255, 0.88) !important;
        }
        .status-item.success .apply-tier-progress-label {
            color: rgba(255, 255, 255, 0.9) !important;
        }
        .status-item .status-value {
            font-size: 1.4em;
            font-weight: 700;
        }
        .form-card {
            background: white;
            border-radius: 20px;
            padding: 35px;
            margin-bottom: 30px;
            box-shadow: 0 10px 40px rgba(0,0,0,0.1);
        }
        .form-card h3 {
            color: #333;
            margin-bottom: 25px;
            font-weight: 700;
        }
        .form-label {
            font-weight: 600;
            color: #555;
            margin-bottom: 8px;
            display: block;
        }
        .form-control {
            border: 2px solid #e0e0e0;
            border-radius: 10px;
            padding: 12px 15px;
            font-size: 1em;
            transition: all 0.3s;
        }
        .form-control:focus {
            border-color: #667eea;
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
            outline: none;
        }
        .hint {
            color: #999;
            font-size: 0.9em;
            margin-top: 5px;
            display: block;
        }
        .btn-submit {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            padding: 15px 50px;
            font-size: 1.2em;
            font-weight: 700;
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.3s;
            box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4);
            width: 100%;
            margin-top: 20px;
        }
        .btn-submit:hover:not(:disabled) {
            transform: translateY(-2px);
            box-shadow: 0 15px 40px rgba(102, 126, 234, 0.5);
        }
        .btn-submit:disabled {
            background: linear-gradient(135deg, #ccc 0%, #999 100%);
            cursor: not-allowed;
            box-shadow: none;
        }
        .benefits-card {
            background: linear-gradient(135deg, #FFF8E1 0%, #FFE082 100%);
            border-radius: 20px;
            padding: 35px;
            margin-bottom: 30px;
        }
        .benefits-card h3 {
            color: #F57C00;
            margin-bottom: 20px;
            font-weight: 700;
        }
        .benefit-item {
            background: white;
            padding: 20px;
            border-radius: 12px;
            margin-bottom: 15px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.1);
        }
        .benefit-item h4 {
            color: #E65100;
            margin-bottom: 10px;
            font-size: 1.2em;
        }
        .tier-ladder-wrap {
            margin: 0 0 22px 0;
            padding: 18px 16px 14px;
            background: #fff;
            border-radius: 14px;
            border: 1px solid #e8eaf0;
            box-shadow: 0 6px 20px rgba(0,0,0,0.06);
        }
        .tier-ladder-wrap h3 {
            color: #333;
            margin: 0 0 8px 0;
            font-size: 1.15em;
            font-weight: 800;
        }
        .tier-ladder-intro {
            color: #666;
            font-size: 0.92em;
            line-height: 1.55;
            margin-bottom: 14px;
        }
        .tier-ladder-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 12px;
        }
        .tier-ladder-card {
            background: linear-gradient(180deg, #fafbff 0%, #f3f5fb 100%);
            border: 1px solid #e3e7f0;
            border-radius: 12px;
            padding: 14px 14px 12px;
            position: relative;
        }
        .tier-ladder-card.is-you {
            border-color: #43a047;
            box-shadow: 0 0 0 2px rgba(67,160,71,0.18);
            background: linear-gradient(180deg, #f1fbf2 0%, #e8f5e9 100%);
        }
        .tier-ladder-you-badge {
            display: inline-block;
            font-size: 0.72em;
            font-weight: 700;
            color: #1b5e20;
            background: #c8e6c9;
            border-radius: 999px;
            padding: 2px 8px;
            margin-bottom: 6px;
        }
        .tier-ladder-name {
            font-size: 1.05em;
            font-weight: 800;
            color: #222;
            margin-bottom: 4px;
        }
        .tier-ladder-meta {
            font-size: 0.88em;
            color: #555;
            line-height: 1.5;
            margin-bottom: 8px;
        }
        .tier-ladder-meta strong {
            color: #1565c0;
            font-size: 1.05em;
        }
        .tier-ladder-price {
            font-weight: 700;
            color: #e65100;
        }
        .tier-ladder-card ul {
            margin: 0;
            padding-left: 16px;
            color: #555;
            font-size: 0.84em;
            line-height: 1.55;
        }
        .tier-ladder-footnote {
            margin-top: 12px;
            font-size: 0.82em;
            color: #888;
            line-height: 1.5;
        }
        @media (max-width: 640px) {
            .tier-ladder-grid {
                grid-template-columns: 1fr;
            }
        }
        .alert-custom {
            padding: 20px;
            border-radius: 15px;
            margin-bottom: 25px;
            font-size: 1.1em;
            font-weight: 500;
        }
        .alert-success {
            background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
            color: white;
        }
        .alert-info {
            background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
            color: white;
        }
        .alert-warning {
            background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);
            color: white;
        }
        .alert-danger {
            background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%);
            color: white;
        }
        @media (max-width: 768px) {
            .main-content { 
                padding: 70px 15px 15px 15px; 
            }
            .hero-section { 
                padding: 25px 20px; 
                margin-top: 0;
            }
            .hero-section h1 { 
                font-size: 1.6em; 
                margin-bottom: 15px;
            }
            .hero-section .tagline {
                font-size: 1em;
            }
            .countdown-badge {
                font-size: 0.95em;
                padding: 8px 15px;
            }
            .price-big { 
                font-size: 2.2em; 
            }
            .price-card, .form-card, .benefits-card, .status-check {
                padding: 20px;
                margin-bottom: 20px;
            }
            .status-item {
                padding: 12px;
                flex-wrap: wrap;
            }
            .status-item .status-value {
                width: 100%;
                text-align: left;
                margin-top: 8px;
                font-size: 1.2em;
            }
            .benefit-item {
                padding: 15px;
            }
        }
        .urgent-label {
            background: #FF1744;
            color: white;
            padding: 5px 15px;
            border-radius: 20px;
            font-size: 0.9em;
            font-weight: 700;
            display: inline-block;
            margin-left: 10px;
            animation: blink 1.5s infinite;
        }
        @keyframes blink {
            0%, 50%, 100% { opacity: 1; }
            25%, 75% { opacity: 0.5; }
        }
    </style>
</head>
<body>
<div class="page-wrapper">
    <?php @include $root . '/templates/sidebar.php'; ?>
    <div class="main-content">
        <p class="mb-3" style="margin:0 0 12px 0;">
            <a href="/user/dashboard.php<?= htmlspecialchars($partnerApplyLangSuffix, ENT_QUOTES, 'UTF-8') ?>" class="btn btn-light btn-sm">
                <i class="fas fa-arrow-left me-1"></i><?= __t('partner_apply_back_dashboard', '返回会员中心') ?>
            </a>
        </p>
        <?php if (!empty($msg)): ?>
            <div class="alert-custom <?php
                echo $msgLevel === 'success' ? 'alert-success' : ($msgLevel === 'warning' ? 'alert-warning' : ($msgLevel === 'danger' ? 'alert-danger' : 'alert-info'));
            ?>">
                <i class="fas fa-info-circle"></i> <?php echo htmlspecialchars($msg, ENT_QUOTES, 'UTF-8'); ?>
            </div>
        <?php endif; ?>
        
        <?php
        // 计算并显示当前价格
        $base = floatval(get_setting('partner_site_base_price', 10000));
        $daily_inc = floatval(get_setting('partner_site_daily_increment', 100));
        $start_at = get_setting('partner_site_price_start_at', '2025-10-01');
        $min_balance = floatval(get_setting('partner_site_min_balance', 100));
        $start_ts = strtotime(date('Y-m-d 00:00:00', strtotime($start_at)));
        $today_ts = strtotime(date('Y-m-d 00:00:00'));
        $days = max(0, intval(($today_ts - $start_ts) / 86400));
        $daily_price = $base + $days * $daily_inc;
        
        // 查找顶级独立品牌管理员并获取加价
        $top_partner_id = null;
        $stmtU = $pdo->prepare("SELECT id, referrer_id, role_id FROM users WHERE id=?");
        $stmtU->execute([$current_user_id]);
        $cur = $stmtU->fetch(PDO::FETCH_ASSOC);
        $visited = [$current_user_id];
        while ($cur && !empty($cur['referrer_id'])) {
            $stmt2 = $pdo->prepare("SELECT id, referrer_id, role_id FROM users WHERE id=?");
            $stmt2->execute([$cur['referrer_id']]);
            $cur = $stmt2->fetch(PDO::FETCH_ASSOC);
            if (!$cur || in_array($cur['id'], $visited)) break;
            $visited[] = $cur['id'];
            if (in_array(intval($cur['role_id']), [9,10,11], true)) {
                $top_partner_id = intval($cur['id']);
                break;
            }
        }
        
        $extra_req = 0;
        if ($top_partner_id) {
            $stmtPol = $pdo->prepare("SELECT extra_requirement FROM partner_site_policy WHERE top_partner_id=? AND active=1 LIMIT 1");
            $stmtPol->execute([$top_partner_id]);
            $extra_req = floatval($stmtPol->fetchColumn() ?: 0);
        }
        $final_price = $daily_price + $extra_req;
        $tomorrow_price = ($base + ($days + 1) * $daily_inc) + $extra_req;
        
        // 检查运营中心购买权限
        $team_leader_check_passed = true;
        $team_leader_msg = '';
        if ($top_partner_id) {
            $stmtCur = $pdo->prepare("SELECT referrer_id FROM users WHERE id=?");
            $stmtCur->execute([$current_user_id]);
            $curInfo = $stmtCur->fetch(PDO::FETCH_ASSOC);
            $checkUser = $curInfo ? intval($curInfo['referrer_id']) : 0;
            $visited2 = [];
            
            while ($checkUser && $checkUser > 0) {
                if (in_array($checkUser, $visited2, true)) break;
                $visited2[] = $checkUser;
                
                $stmtUser = $pdo->prepare("SELECT id, referrer_id, role_id FROM users WHERE id=?");
                $stmtUser->execute([$checkUser]);
                $userInfo = $stmtUser->fetch(PDO::FETCH_ASSOC);
                if (!$userInfo) break;
                
                if (in_array(intval($userInfo['role_id']), [13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39], true)) {
                    $stmtTL = $pdo->prepare("SELECT allow_partner_site FROM partner_team_leader_commission WHERE partner_id=? AND team_leader_id=? LIMIT 1");
                    $stmtTL->execute([$top_partner_id, $userInfo['id']]);
                    $tlConfig = $stmtTL->fetch(PDO::FETCH_ASSOC);
                    $allowPartnerSite = $tlConfig ? (intval($tlConfig['allow_partner_site'] ?? 1)) : 1;
                    if ($allowPartnerSite == 0) {
                        $team_leader_check_passed = false;
                        $stmtTLName = $pdo->prepare("SELECT username, nickname FROM users WHERE id=?");
                        $stmtTLName->execute([$userInfo['id']]);
                        $tlInfo = $stmtTLName->fetch(PDO::FETCH_ASSOC);
                        $team_leader_msg = str_replace(
                            '{name}',
                            htmlspecialchars($tlInfo['nickname'] ?: $tlInfo['username'], ENT_QUOTES, 'UTF-8'),
                            __t('partner_apply_team_closed', '您所属的运营中心（{name}）已关闭独立站购买权限')
                        );
                        break;
                    }
                    break;
                }
                $checkUser = intval($userInfo['referrer_id']);
            }
        }
        
        // 获取最近24小时充值
        $pwPerf = recharge_orders_partner_site_performance_where_sql('');
        $stmtSum24 = $pdo->prepare("SELECT SUM(amount) FROM recharge_orders WHERE user_id=? AND status='confirmed' AND created_at >= ?" . $pwPerf);
        $stmtSum24->execute([$current_user_id, date('Y-m-d H:i:s', time() - 86400)]);
        $recharge_24h = floatval($stmtSum24->fetchColumn() ?: 0);
        
        // 获取账户算力余额
        $stmtPts = $pdo->prepare("SELECT points FROM users WHERE id=?");
        $stmtPts->execute([$current_user_id]);
        $points = floatval($stmtPts->fetchColumn() ?: 0);
        
        $block_submit = (!$team_leader_check_passed) || ($recharge_24h < $final_price) || ($points < $min_balance);
        $already_has_shop = shop_apply_already_has_shop($pdo, $current_user_id);
        if (!empty($schemeApply)) {
            $team_leader_check_passed = true;
            $team_leader_msg = '';
            $final_price = 0;
            $daily_price = 0;
            $block_submit = $already_has_shop;
        }
        // 已开通：仍可查看/自测解析（换域参考），但不允许再次提交
        $allow_dns_preview = !empty($already_has_shop);
        ?>
        
        <!-- Hero Section -->
        <div class="hero-section">
            <h1>🚀 <?= !empty($schemeApply) ? htmlspecialchars(__t('partner_apply_cn_hero_title', '开通服务商站'), ENT_QUOTES, 'UTF-8') : __t('partner_apply_hero_title', '开通独立网站独立品牌管理员'); ?></h1>
            <p class="tagline"><?= !empty($schemeApply) ? htmlspecialchars($cnCopy('partner_apply_cn_tagline_v2', '免费开通独立OEM站；服务能力按已确认的真实技术服务规模评估，站内服务配置与合作服务结算调整由系统统一执行。'), ENT_QUOTES, 'UTF-8') : __t('partner_apply_hero_tagline_owner_access', '免费申请独立OEM站 · 独立域名 · 独立管理 · 本站服务包仅基于真实技术服务消费配置'); ?></p>
            <?php if (empty($schemeApply)): ?>
            <div class="countdown-badge">
                <i class="fas fa-fire"></i>
                <?php
                $todayPriceText = __t('partner_apply_today_price', '今日价格：{price} 算力');
                echo str_replace('{price}', number_format($final_price, 0), $todayPriceText);
                ?>
                <span class="urgent-label"><?= __t('partner_apply_badge_recheck', '提交时实时核验'); ?></span>
            </div>
            <?php else: ?>
            <div class="countdown-badge">
                <i class="fas fa-gift"></i> <?= htmlspecialchars($cnCopy('partner_apply_cn_badge_v2', '免费开独立站 · 真实服务结算 · 服务能力按规模升级'), ENT_QUOTES, 'UTF-8'); ?>
            </div>
            <?php endif; ?>
        </div>

        <?php if (!empty($myApply)): ?>
        <?php
            $applySt = strtolower(trim((string) ($myApply['status'] ?? '')));
            $applyStClass = $applySt === 'approved' ? 'success' : ($applySt === 'rejected' ? 'danger' : 'warning');
            $applyStLabel = $applySt === 'approved'
                ? __t('partner_apply_status_approved', '已通过')
                : ($applySt === 'rejected'
                    ? __t('partner_apply_status_rejected', '已拒绝')
                    : __t('partner_apply_status_pending', '审核中'));
            $applyTip = $applySt === 'pending'
                ? __t('partner_apply_status_tip_cn_pending', '须域名已完成 ICP 备案；备案与平台审核通过后才能正式接入。请刷新本页查看最新状态。')
                : ($applySt === 'approved'
                    ? __t('partner_apply_status_tip_cn_ok', '已开通。国内默认优先「自备机反代接入」：备案后绑定域名 → 填云主机 IP → 改 DNS → 远程安装。平台反代为备选。')
                    : __t('partner_apply_status_tip_rejected', '申请未通过，可修改资料后重新提交。'));
            $edgeSetupHref = function_exists('ggai_mu') ? ggai_mu('/user/partner_edge_setup.php') : 'partner_edge_setup.php';
            if ($applySt === 'approved') {
                $applyTip .= ' <a href="' . htmlspecialchars($edgeSetupHref, ENT_QUOTES, 'UTF-8') . '" style="color:#0d47a1;font-weight:700;">打开自备机反代接入</a>';
            }
        ?>
        <div class="status-check" style="margin-bottom: 18px;">
            <h3 style="color: #333; margin-bottom: 16px;"><i class="fas fa-file-alt"></i> <?= __t('partner_apply_my_status_title', '我的申请状态'); ?></h3>
            <div class="status-item <?= htmlspecialchars($applyStClass, ENT_QUOTES, 'UTF-8'); ?>">
                <i class="fas <?= $applySt === 'approved' ? 'fa-check-circle' : ($applySt === 'rejected' ? 'fa-times-circle' : 'fa-hourglass-half'); ?>"></i>
                <div class="status-text">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= htmlspecialchars($applyStLabel, ENT_QUOTES, 'UTF-8'); ?></div>
                    <div style="font-size: 0.95em; opacity: 0.9; line-height: 1.7;">
                        <?= __t('partner_apply_my_domain', '域名'); ?>：<code><?= htmlspecialchars((string) ($myApply['domain'] ?? ''), ENT_QUOTES, 'UTF-8'); ?></code>
                        <?php if (!empty($myApply['site_name'])): ?>
                            · <?= __t('partner_apply_label_site_name', '网站初始名称'); ?>：<?= htmlspecialchars((string) $myApply['site_name'], ENT_QUOTES, 'UTF-8'); ?>
                        <?php endif; ?>
                        <br><?= $applyTip; ?>
                        <?php if (!empty($myApply['updated_at'])): ?>
                            <br><span style="opacity:0.85;"><?= __t('partner_apply_my_updated', '更新时间'); ?>：<?= htmlspecialchars((string) $myApply['updated_at'], ENT_QUOTES, 'UTF-8'); ?></span>
                        <?php endif; ?>
                    </div>
                </div>
                <div class="status-value" style="font-size:1.1em;"><?= htmlspecialchars($applyStLabel, ENT_QUOTES, 'UTF-8'); ?></div>
            </div>
        </div>
        <?php endif; ?>

        <?php if (empty($schemeApply)): ?>
        <div class="price-card">
            <h3 style="text-align: center; color: #333; margin-bottom: 25px;">
                <i class="fas fa-tag"></i> <?= __t('partner_apply_current_rule_title', '当前申请核验信息'); ?>
            </h3>
            <div class="price-highlight">
                <div style="font-size: 1.2em; opacity: 0.9;"><?= __t('partner_apply_current_threshold', '当前申请核验值'); ?></div>
                <div class="price-big"><?php echo number_format($final_price, 0); ?> <span style="font-size: 0.5em;"><?php echo htmlspecialchars(__t('partner_apply_unit_power', '算力'), ENT_QUOTES, 'UTF-8'); ?></span></div>
                <div style="font-size: 1em; opacity: 0.85;">
                    <?php
                    $formula = __t('partner_apply_rule_formula_owner_access', '基础规则 {base} + 当前规则调整 {inc}{extra}');
                    $extraText = $extra_req > 0
                        ? str_replace('{extra}', number_format($extra_req,0), __t('partner_apply_rule_service_value', ' + 技术服务核验值 {extra}'))
                        : '';
                    $formula = str_replace(
                        ['{base}','{inc}','{extra}'],
                        [number_format($base,0), number_format($days * $daily_inc,0), $extraText],
                        $formula
                    );
                    echo $formula;
                    ?>
                </div>
                
                <div class="price-tomorrow">
                    <div style="font-size: 1.1em; margin-bottom: 8px;">⚠️ <?= __t('partner_apply_recheck_tip', '申请条件可能随平台规则调整，请以提交时核验为准'); ?></div>
                    <div style="font-size: 2em; font-weight: 800;"><?php echo number_format($tomorrow_price, 0); ?> <span style="font-size: 0.6em;"><?php echo htmlspecialchars(__t('partner_apply_unit_power', '算力'), ENT_QUOTES, 'UTF-8'); ?></span></div>
                    <div style="font-size: 0.95em; opacity: 0.9;">
                        <?php
                        $tomorrowText = __t('partner_apply_recheck_value', '当前规则调整参考值 {inc} 算力');
                        echo str_replace('{inc}', number_format($daily_inc,0), $tomorrowText);
                        ?>
                    </div>
                </div>
            </div>
        </div>
        <?php endif; ?>

        <!-- 资格检测 -->
        <div class="status-check">
            <?php if (!empty($schemeApply)): ?>
            <?php
                $applyDashUrl = htmlspecialchars(
                    function_exists('ggai_mu') ? ggai_mu('/user/partner_site_dashboard.php') : '/user/partner_site_dashboard.php',
                    ENT_QUOTES,
                    'UTF-8'
                );
            ?>
            <div style="margin-bottom: 18px; padding: 14px 16px; background: linear-gradient(135deg, #e8f5e9 0%, #f1f8e9 100%); border-radius: 10px; border-left: 4px solid #43a047; line-height: 1.6;">
                <div style="font-weight: 700; color: #2e7d32; margin-bottom: 6px;">
                    <i class="fas fa-seedling"></i>
                    <?= htmlspecialchars(function_exists('cn_partner_apply_phase_title') ? cn_partner_apply_phase_title() : __t('partner_apply_phase_title', '开店前 · 起始服务包测算'), ENT_QUOTES, 'UTF-8'); ?>
                </div>
                <div style="color: #555; font-size: 0.95em;">
                    <?= htmlspecialchars(function_exists('cn_partner_apply_phase_intro') ? cn_partner_apply_phase_intro() : __t('partner_apply_phase_intro', '以下数据决定审核通过后的落档，与开店后升档口径不同。'), ENT_QUOTES, 'UTF-8'); ?>
                </div>
            </div>
            <?php
                $cnTierLadder = function_exists('cn_partner_public_tier_ladder')
                    ? cn_partner_public_tier_ladder()
                    : [];
                $cnLadderYouTier = (int) ($cnOpenProgress['tier'] ?? $cnSuggestedTier);
            ?>
            <?php if (!empty($cnTierLadder)): ?>
            <div class="tier-ladder-wrap">
                <h3><i class="fas fa-table"></i> <?= htmlspecialchars(__t('partner_apply_tier_ladder_title', '公开档位一览'), ENT_QUOTES, 'UTF-8'); ?></h3>
                <div class="tier-ladder-intro"><?= htmlspecialchars(__t('partner_apply_tier_ladder_intro', '以下为现行起始落档标准：等级名、本站服务包比例、起始业绩门槛与简要权益。开通免费；门槛按「本人 + 名下非独立站下线」有效消费测算。'), ENT_QUOTES, 'UTF-8'); ?></div>
                <div class="tier-ladder-grid">
                    <?php foreach ($cnTierLadder as $row): ?>
                    <?php
                        $lt = (int) ($row['tier'] ?? 0);
                        $isYou = ($lt === $cnLadderYouTier);
                        $pctShow = $cnPctText($row['pct'] ?? 0);
                        $thr = floatval($row['threshold'] ?? 0);
                        $priceText = ($lt <= 15 || $thr <= 0)
                            ? __t('partner_apply_tier_ladder_free', '开站即享 · 无业绩门槛')
                            : str_replace('{amount}', number_format($thr, 0), __t('partner_apply_tier_ladder_price', '{amount} 元'));
                        $pctLine = str_replace('{pct}', $pctShow, __t('partner_apply_tier_ladder_pkg', '约 {pct}%'));
                    ?>
                    <div class="tier-ladder-card<?= $isYou ? ' is-you' : ''; ?>">
                        <?php if ($isYou): ?>
                        <div class="tier-ladder-you-badge"><?= htmlspecialchars(__t('partner_apply_tier_ladder_you', '您当前可申请'), ENT_QUOTES, 'UTF-8'); ?></div>
                        <?php endif; ?>
                        <div class="tier-ladder-name"><?= htmlspecialchars((string) ($row['title'] ?? ''), ENT_QUOTES, 'UTF-8'); ?> · <?= htmlspecialchars(str_replace('{n}', (string) $lt, __t('partner_apply_tier_plain', '档 {n}')), ENT_QUOTES, 'UTF-8'); ?></div>
                        <div class="tier-ladder-meta">
                            <?= htmlspecialchars(__t('partner_apply_tier_ladder_col_pct', '服务包比例'), ENT_QUOTES, 'UTF-8'); ?>：
                            <strong><?= htmlspecialchars($pctLine, ENT_QUOTES, 'UTF-8'); ?></strong><br>
                            <?= htmlspecialchars(__t('partner_apply_tier_ladder_col_price', '起始业绩门槛'), ENT_QUOTES, 'UTF-8'); ?>：
                            <span class="tier-ladder-price"><?= htmlspecialchars($priceText, ENT_QUOTES, 'UTF-8'); ?></span>
                        </div>
                        <?php if (!empty($row['bullets']) && is_array($row['bullets'])): ?>
                        <ul>
                            <?php foreach ($row['bullets'] as $bullet): ?>
                            <li><?= htmlspecialchars((string) $bullet, ENT_QUOTES, 'UTF-8'); ?></li>
                            <?php endforeach; ?>
                        </ul>
                        <?php endif; ?>
                    </div>
                    <?php endforeach; ?>
                </div>
                <div class="tier-ladder-footnote"><?= htmlspecialchars(__t('partner_apply_tier_ladder_footnote', '审核通过后按达标档落档；开通后升档口径见业绩看板（整站真客 + 站间 1 层）。比例与门槛以本页实时读取的后台配置为准。'), ENT_QUOTES, 'UTF-8'); ?></div>
            </div>
            <?php endif; ?>
            <?php endif; ?>
            <h3 style="color: #333; margin-bottom: 20px;"><i class="fas fa-clipboard-check"></i> <?= __t('partner_apply_check_title', '申请资格检测'); ?></h3>
            
            <?php if (!empty($schemeApply)): ?>
            <?php
                $op = is_array($cnOpenProgress ?? null) ? $cnOpenProgress : null;
                $opTier = (int) ($op['tier'] ?? $cnSuggestedTier);
                $opPct = $cnPctText($op['tier_pct'] ?? $cnInitialPct);
                $opVol = floatval($op['volume'] ?? $cnPersonalVol);
                $opNext = isset($op['next_tier']) ? (int) $op['next_tier'] : 0;
                $opNextPct = isset($op['next_tier_pct']) ? $cnPctText($op['next_tier_pct']) : '';
                $opRemain = floatval($op['remain'] ?? 0);
                $opNeed = floatval($op['need'] ?? 0);
                $opBar = floatval($op['pct'] ?? 0);
                $opAtCap = !empty($op['at_cap']) || $opNext <= 0;
                $opTierBrand = function_exists('cn_partner_tier_brand_title') ? cn_partner_tier_brand_title($opTier) : '';
                $opNextBrand = ($opNext > 0 && function_exists('cn_partner_tier_brand_title')) ? cn_partner_tier_brand_title($opNext) : '';
            ?>
            <div class="status-item success">
                <i class="fas fa-layer-group"></i>
                <div class="status-text" style="width:100%;">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= htmlspecialchars(__t('partner_apply_open_tier_title', '当前可申请起始档'), ENT_QUOTES, 'UTF-8'); ?></div>
                    <div style="font-size: 1.05em; font-weight: 700; margin-top: 6px;">
                        <?php if ($opTierBrand !== ''): ?><?= htmlspecialchars($opTierBrand, ENT_QUOTES, 'UTF-8'); ?> · <?php endif; ?><?= htmlspecialchars(strtr(__t('partner_apply_shop_pkg_tier_line', '本站服务包档 {n}（约 {pct}%）'), ['{n}' => (string) $opTier, '{pct}' => $opPct]), ENT_QUOTES, 'UTF-8'); ?>
                    </div>
                    <div style="font-size: 0.95em; opacity: 0.9; margin-top: 4px;">
                        <?= htmlspecialchars(__t('partner_apply_open_volume_label', '已计入起始业绩约'), ENT_QUOTES, 'UTF-8'); ?>
                        <?= htmlspecialchars(number_format($opVol, 2), ENT_QUOTES, 'UTF-8'); ?> <?= htmlspecialchars(__t('partner_apply_unit_cny', '元'), ENT_QUOTES, 'UTF-8'); ?>
                        （<?= htmlspecialchars(function_exists('cn_partner_apply_open_volume_scope') ? cn_partner_apply_open_volume_scope() : __t('partner_apply_open_volume_scope', '本人 + 名下非独立站下线有效消费'), ENT_QUOTES, 'UTF-8'); ?>）
                    </div>
                    <div style="font-size: 0.9em; opacity: 0.92; margin-top: 6px; font-weight: 600;">
                        <?= htmlspecialchars(function_exists('cn_partner_apply_self_deposit_note') ? cn_partner_apply_self_deposit_note() : __t('partner_apply_self_deposit_note', '您本人的充值会计入起始档测算。'), ENT_QUOTES, 'UTF-8'); ?>
                    </div>
                    <?php if (!$opAtCap): ?>
                    <div class="apply-tier-next" style="font-size: 0.98em; font-weight: 600; margin-top: 10px;">
                        <?= htmlspecialchars(__t('partner_apply_to_next_tier', '距下一档'), ENT_QUOTES, 'UTF-8'); ?><?php if ($opNextBrand !== ''): ?> <?= htmlspecialchars($opNextBrand, ENT_QUOTES, 'UTF-8'); ?><?php endif; ?> · <?= htmlspecialchars(str_replace('{n}', (string) $opNext, __t('partner_apply_tier_plain', '档 {n}')), ENT_QUOTES, 'UTF-8'); ?>：<?= htmlspecialchars(__t('partner_apply_volume_remaining_short', '还差业绩'), ENT_QUOTES, 'UTF-8'); ?>
                        <?= htmlspecialchars(number_format($opRemain, 2), ENT_QUOTES, 'UTF-8'); ?> <?= htmlspecialchars(__t('partner_apply_unit_cny', '元'), ENT_QUOTES, 'UTF-8'); ?>
                        <span class="apply-tier-muted"><?= htmlspecialchars(str_replace('{amount}', number_format($opNeed, 2), __t('partner_apply_threshold_cny', '（门槛 {amount} 元）')), ENT_QUOTES, 'UTF-8'); ?></span>
                    </div>
                    <div style="margin-top:8px;height:10px;background:rgba(255,255,255,0.35);border-radius:999px;overflow:hidden;">
                        <div style="height:100%;width:<?= htmlspecialchars((string) max(0, min(100, $opBar)), ENT_QUOTES, 'UTF-8'); ?>%;background:linear-gradient(90deg,#fff176,#ffffff);border-radius:999px;"></div>
                    </div>
                    <div class="apply-tier-progress-label" style="font-size:0.85em;margin-top:4px;"><?= htmlspecialchars(str_replace('{pct}', number_format($opBar, 1), __t('partner_apply_progress_pct', '进度 {pct}%')), ENT_QUOTES, 'UTF-8'); ?></div>
                    <?php else: ?>
                    <div class="apply-tier-cap" style="font-size: 0.98em; font-weight: 600; margin-top: 10px;">
                        <?php
                        $capBrand = function_exists('cn_partner_tier_brand_title')
                            ? cn_partner_tier_brand_title((int) ($op['max_public'] ?? $cnPublicTier))
                            : '';
                        ?>
                        <?php if ($capBrand !== ''): ?><?= htmlspecialchars($capBrand, ENT_QUOTES, 'UTF-8'); ?> · <?php endif; ?><?= htmlspecialchars(__t('partner_apply_at_cap_applicant', '已达最高起始档'), ENT_QUOTES, 'UTF-8'); ?><?= htmlspecialchars(str_replace('{n}', (string) (int) ($op['max_public'] ?? $cnPublicTier), __t('partner_apply_tier_num', '（档 {n}）')), ENT_QUOTES, 'UTF-8'); ?>
                    </div>
                    <?php endif; ?>
                    <div class="apply-tier-footnote" style="font-size: 0.85em; margin-top: 8px;">
                        <?php
                        $applyFootnote = function_exists('cn_partner_apply_phase_footnote')
                            ? cn_partner_apply_phase_footnote()
                            : __t('partner_apply_phase_footnote', '此为开店前口径。审核通过后，升档进度请前往{dash_link}（开店后口径，含站间 1 层）。');
                        $applyDashLabel = __t('partner_apply_phase_dash_label', '业绩看板');
                        $applyDashLink = '<a href="' . $applyDashUrl . '" style="color:inherit;font-weight:600;text-decoration:underline;">'
                            . htmlspecialchars($applyDashLabel, ENT_QUOTES, 'UTF-8') . '</a>';
                        echo str_replace('{dash_link}', $applyDashLink, htmlspecialchars($applyFootnote, ENT_QUOTES, 'UTF-8'));
                        ?>
                    </div>
                </div>
            </div>
            <div class="status-item success">
                <i class="fas fa-check-circle"></i>
                <div class="status-text">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= htmlspecialchars(__t('partner_apply_open_method_title', '开通方式'), ENT_QUOTES, 'UTF-8'); ?></div>
                    <div style="font-size: 0.95em; opacity: 0.9;"><?= htmlspecialchars(__t('partner_apply_open_mode_body', '免费申请开独立OEM站；审核通过后按上表起始档落档。开通后升档请前往业绩看板（开店后口径，含站间 1 层）。'), ENT_QUOTES, 'UTF-8'); ?></div>
                </div>
            </div>
            <?php else: ?>
            <?php if (!$team_leader_check_passed): ?>
            <div class="status-item danger">
                <i class="fas fa-times-circle"></i>
                <div class="status-text">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= __t('partner_apply_team_permission', '团队权限'); ?></div>
                    <div style="font-size: 0.95em; opacity: 0.9;"><?php echo $team_leader_msg; ?></div>
                </div>
            </div>
            <?php else: ?>
            <div class="status-item success">
                <i class="fas fa-check-circle"></i>
                <div class="status-text">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= __t('partner_apply_team_permission', '团队权限'); ?></div>
                    <div style="font-size: 0.95em; opacity: 0.9;"><?= __t('partner_apply_team_open', '已开通申请权限'); ?></div>
                </div>
            </div>
            <?php endif; ?>
            
            <div class="status-item <?php echo $recharge_24h >= $final_price ? 'success' : 'warning'; ?>">
                <i class="fas <?php echo $recharge_24h >= $final_price ? 'fa-check-circle' : 'fa-exclamation-triangle'; ?>"></i>
                <div class="status-text">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= __t('partner_apply_recharge_24h', '24小时充值'); ?></div>
                    <div style="font-size: 0.95em; opacity: 0.9;">
                        <?php if ($recharge_24h >= $final_price): ?>
                            <?php
                            $t = __t('partner_apply_recharge_ok', '已充值 {amount} USDT，满足条件');
                            echo str_replace('{amount}', number_format($recharge_24h,2), $t);
                            ?>
                        <?php else: ?>
                            <?php
                            $t = __t('partner_apply_recharge_lack', '已充值 {amount} USDT，还需 {diff} USDT');
                            $t = str_replace(
                                ['{amount}','{diff}'],
                                [number_format($recharge_24h,2), number_format($final_price - $recharge_24h,2)],
                                $t
                            );
                            echo $t;
                            ?>
                            <br>
                            <a href="<?= htmlspecialchars(ggai_mu('/user/deposit.php'), ENT_QUOTES, 'UTF-8') ?>" style="display: inline-block; margin-top: 10px; padding: 8px 20px; background: white; color: #FF6B6B; text-decoration: none; border-radius: 25px; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,0.15); transition: all 0.3s;" onmouseover="this.style.transform='scale(1.05)'; this.style.boxShadow='0 4px 12px rgba(0,0,0,0.2)';" onmouseout="this.style.transform='scale(1)'; this.style.boxShadow='0 2px 8px rgba(0,0,0,0.15)';">
                                <i class="fas fa-wallet"></i> <?= __t('partner_apply_btn_deposit_now', '立即充值'); ?>
                            </a>
                        <?php endif; ?>
                    </div>
                </div>
                <div class="status-value"><?php echo number_format($recharge_24h, 2); ?></div>
            </div>
            
            <div class="status-item <?php echo $points >= $min_balance ? 'success' : 'warning'; ?>">
                <i class="fas <?php echo $points >= $min_balance ? 'fa-check-circle' : 'fa-exclamation-triangle'; ?>"></i>
                <div class="status-text">
                    <div style="font-size: 1.1em; font-weight: 600;"><?= __t('partner_apply_points_balance', '算力余额'); ?></div>
                    <div style="font-size: 0.95em; opacity: 0.9;">
                        <?php if ($points >= $min_balance): ?>
                            <?php
                            $t = __t('partner_apply_points_ok', '当前余额 {points} 算力，满足条件');
                            echo str_replace('{points}', number_format($points,2), $t);
                            ?>
                        <?php else: ?>
                            <?php
                            $t = __t('partner_apply_points_lack', '当前余额 {points} 算力，还需 {diff} 算力');
                            $t = str_replace(
                                ['{points}','{diff}'],
                                [number_format($points,2), number_format($min_balance - $points,2)],
                                $t
                            );
                            echo $t;
                            ?>
                            <br>
                            <a href="<?= htmlspecialchars(ggai_mu('/user/deposit.php'), ENT_QUOTES, 'UTF-8') ?>" style="display: inline-block; margin-top: 10px; padding: 8px 20px; background: white; color: #FF6B6B; text-decoration: none; border-radius: 25px; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,0.15); transition: all 0.3s;" onmouseover="this.style.transform='scale(1.05)'; this.style.boxShadow='0 4px 12px rgba(0,0,0,0.2)';" onmouseout="this.style.transform='scale(1)'; this.style.boxShadow='0 2px 8px rgba(0,0,0,0.15)';">
                                <i class="fas fa-wallet"></i> <?= __t('partner_apply_btn_deposit_now', '立即充值'); ?>
                            </a>
                        <?php endif; ?>
                    </div>
                </div>
                <div class="status-value"><?php echo number_format($points, 2); ?></div>
            </div>
            <?php endif; ?>
        </div>

        <!-- 申请表单 -->
        <div class="form-card">
            <h3><i class="fas fa-edit"></i> <?= !empty($allow_dns_preview)
                ? __t('partner_apply_form_title_dns_guide', '域名解析参考（已开通·不可重复申请）')
                : __t('partner_apply_form_title', '提交申请信息'); ?></h3>
            <?php if (!empty($allow_dns_preview)): ?>
            <div style="margin:0 0 16px 0;padding:12px 14px;border-radius:8px;background:#E3F2FD;color:#1565C0;line-height:1.6;font-size:0.95em;">
                <i class="fas fa-info-circle"></i>
                <?= htmlspecialchars(__t('partner_apply_dns_guide_banner', '您已开通独立站，不能再次提交申请。本页保留解析示例与「检测解析」，方便换域前自查；正式换域请到「网站设置」。'), ENT_QUOTES, 'UTF-8'); ?>
            </div>
            <?php endif; ?>
            <form method="post" id="partnerApplyForm"<?php
            if ($block_submit) {
                $blockedAlert = !empty($allow_dns_preview)
                    ? __t('partner_apply_form_already_owner', '您已拥有独立网站或暂不可重复申请')
                    : __t('partner_apply_form_blocked_alert', '暂不满足申请条件，请先满足充值与算力余额要求');
                echo ' onsubmit="alert(' . json_encode($blockedAlert, JSON_UNESCAPED_UNICODE) . '); return false;"';
            }
            ?>>
                <div class="mb-4">
                    <label class="form-label"><i class="fas fa-phone"></i> <?= __t('partner_apply_label_contact', '微信/手机号'); ?></label>
                    <input type="text" name="contact_info" class="form-control" placeholder="<?= __t('partner_apply_placeholder_contact', '请输入您的微信或手机号'); ?>" <?php echo empty($schemeApply) ? 'required' : ''; ?> <?php echo $block_submit ? 'disabled' : ''; ?>>
                    <span class="hint">
                        <i class="fas fa-info-circle"></i> <?= __t('partner_apply_hint_contact', '独立网站有专门的管理服务群，请填写您的联系方式以便后续沟通'); ?>
                    </span>
                </div>
                
                <div class="mb-4">
                    <label class="form-label"><i class="fas fa-globe"></i> <?= !empty($schemeApply)
                        ? __t('partner_apply_label_domain_cn_optional', '网站域名（选填；可先不开域）')
                        : __t('partner_apply_label_domain', '网站域名（英文或英文加数字的 .com / .net / .cn，禁止中文）'); ?></label>
                    <div style="display: flex; gap: 8px; flex-wrap: wrap; align-items: stretch;">
                        <input type="text" name="domain" id="partnerApplyDomain" class="form-control" style="flex: 1 1 220px;font-size:1.28em;font-weight:700;letter-spacing:0.03em;font-family:Consolas,'Courier New',monospace;" placeholder="<?= !empty($schemeApply) ? __t('partner_apply_placeholder_domain_cn_optional', '可留空；有域名可先填意向域，如 mybrand.cn') : __t('partner_apply_placeholder_domain', '例如：myai.com（不要带 www.）'); ?>" <?= (empty($allow_dns_preview) && empty($schemeApply)) ? 'required' : ''; ?> value="<?= !empty($allow_dns_preview) && !empty($myApply['domain']) ? htmlspecialchars((string) $myApply['domain'], ENT_QUOTES, 'UTF-8') : ''; ?>" <?php echo ($block_submit && empty($allow_dns_preview)) ? 'disabled' : ''; ?>>
                        <button type="button" id="partnerApplyDnsCheckBtn" class="btn-submit" style="width: auto; margin: 0; padding: 10px 16px; font-size: 0.92em;" <?php echo ($block_submit && empty($allow_dns_preview)) ? 'disabled' : ''; ?>>
                            <i class="fas fa-search"></i> <?= __t('partner_apply_btn_dns_check', '检测解析与备案'); ?>
                        </button>
                    </div>
                    <div id="partnerApplyDnsResult" style="display:none; margin-top: 10px; padding: 10px 12px; border-radius: 8px; font-size: 0.92em; line-height: 1.6;"></div>
                    <span class="hint">
                        <i class="fas fa-info-circle"></i> <?= !empty($schemeApply)
                            ? __t('partner_apply_hint_domain_cn_defer', '国内 ICP 备案较慢：可先提交申请开通店主权限，继续用当前官网/原入口登录管理；备案并解析完成后再到「网站设置」自助绑定域名，无需平台再操作。「检测」仅供自查，不作为提交门槛。')
                            : __t('partner_apply_hint_domain', '请填写域名本身，不要带 www.（提交时会自动去掉）。仅限英文或英文加数字（.com / .net / .cn），禁止中文。填好后请先点「检测解析」：将核验 DNS + ICP 备案，均通过且未被占用才能提交。建议在 <a href="https://cloud.tencent.com/" target="_blank" style="color: #667eea; font-weight: 600;">腾讯云</a> 或 <a href="https://www.aliyun.com/" target="_blank" style="color: #667eea; font-weight: 600;">阿里云</a> 注册并完成 ICP 备案'); ?>
                    </span>
                </div>
                
                <div class="mb-4">
                    <label class="form-label"><i class="fas fa-signature"></i> <?= __t('partner_apply_label_site_name', '网站初始名称'); ?></label>
                    <input type="text" name="site_name" class="form-control" placeholder="<?= __t('partner_apply_placeholder_site_name', '例如：创世纪智能量化'); ?>" <?php echo empty($schemeApply) ? 'required' : ''; ?> <?php echo $block_submit ? 'disabled' : ''; ?>>
                    <span class="hint">
                        <i class="fas fa-info-circle"></i> <?= __t('partner_apply_hint_site_name', '您网站的品牌名称，后续可在管理后台修改'); ?>
                    </span>
                </div>
                
                <div class="mb-4">
                    <label class="form-label"><i class="fas fa-code"></i> <?= __t('partner_apply_label_code', '期望的6位推荐码'); ?></label>
                    <input type="text" name="desired_code" class="form-control" placeholder="<?= !empty($schemeApply) ? __t('partner_apply_placeholder_code_optional', '可留空，系统生成') : __t('partner_apply_placeholder_code', '示例：AB1234（2字母+4位字母或数字）'); ?>" <?php echo empty($schemeApply) ? 'required' : ''; ?> maxlength="6" style="text-transform: uppercase;" <?php echo $block_submit ? 'disabled' : ''; ?>>
                    <span class="hint">
                        <i class="fas fa-info-circle"></i> <?= __t('partner_apply_hint_code', '格式：前2位必须是大写字母，后4位可以是字母或数字'); ?>
                    </span>
                </div>
                
                <button type="submit" class="btn-submit" <?php echo $block_submit ? 'disabled' : ''; ?>>
                    <?php if (!empty($allow_dns_preview)): ?>
                        <i class="fas fa-lock"></i> <?= __t('partner_apply_btn_submit_already_owner', '已开通独立站 · 不可重复申请'); ?>
                    <?php elseif ($block_submit): ?>
                        <i class="fas fa-lock"></i> <?= __t('partner_apply_btn_submit_locked', '暂不满足申请条件'); ?>
                    <?php else: ?>
                        <i class="fas fa-rocket"></i> <?= __t('partner_apply_btn_submit', '立即提交申请'); ?>
                    <?php endif; ?>
                </button>
            </form>
        </div>

        <!-- 权益说明 -->
        <div class="benefits-card">
            <h3><i class="fas fa-crown"></i> <?= __t('partner_apply_benefits_title', '独立网站专属权益'); ?></h3>
            <?php if (!empty($schemeApply)): ?>
            <div class="benefit-item">
                <h4><i class="fas fa-briefcase" style="color: #E65100;"></i> <?= htmlspecialchars($cnCopy('partner_apply_cn_title_v2', '服务商站技术服务能力'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <p style="margin: 0; color: #555; line-height: 1.6;"><?= htmlspecialchars($cnCopy('partner_apply_cn_body_v2', '免费开通独立OEM站。审核通过后，系统按已确认的真实技术服务规模登记服务阶段；站内份额仅按实际服务角色配置，合作服务结算调整由系统按现行政策计算。'), ENT_QUOTES, 'UTF-8'); ?></p>
                <p style="margin: 10px 0 0 0; color: #666; font-size: 0.92em;"><?= htmlspecialchars(__t('partner_apply_tier_ladder_see_above', '各档比例、门槛与权益详见本页上方「公开档位一览」。'), ENT_QUOTES, 'UTF-8'); ?></p>
                <?php if ($cnSuggestedTier > 15): ?>
                <p style="margin: 10px 0 0 0; color: #0a7; font-weight: 600;"><?= htmlspecialchars(__t('partner_apply_cn_higher_stage_note', '当前已确认的有效服务规模符合更高服务阶段评估条件。'), ENT_QUOTES, 'UTF-8'); ?></p>
                <?php endif; ?>
            </div>
            <div class="benefit-item">
                <h4><i class="fas fa-star" style="color: #E65100;"></i> <?= htmlspecialchars(__t('partner_apply_benefit_core_title', '独立网站核心优势'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; color: #555; line-height: 1.8;">
                    <li><?= __t('partner_apply_benefit_core_li1', '独立域名：使用您自己的国际域名，树立专业品牌形象'); ?></li>
                    <li><?= __t('partner_apply_benefit_core_li2', '完全管理权：拥有最高管理权限，可自行设置运营中心等级和分配比例'); ?></li>
                    <li><?= __t('partner_apply_benefit_core_li3', '算力转账：管理员账号可对下属用户进行算力转账'); ?></li>
                    <li><?= __t('partner_apply_benefit_core_li4', '品牌独立：可自定义网站LOGO、名称等品牌元素'); ?></li>
                </ul>
            </div>
            <?php else: ?>
            <div class="benefit-item">
                <h4><i class="fas fa-percentage" style="color: #E65100;"></i> <?= htmlspecialchars(__t('partner_apply_benefit_service_title', '本站技术服务配置'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <p style="margin: 0; color: #555; line-height: 1.6;"><?= htmlspecialchars(__t('partner_apply_benefit_service_body', '免费申请开独立OEM站；本站服务包及其分配仅在真实技术服务消费发生并确认后按平台规则执行，不承诺固定回报。'), ENT_QUOTES, 'UTF-8'); ?></p>
            </div>
            <div class="benefit-item">
                <h4><i class="fas fa-layer-group" style="color: #E65100;"></i> <?= htmlspecialchars(__t('partner_apply_benefit_rules_title_owner_access', '本站服务包规则说明'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <p style="margin: 0 0 12px 0; color: #555; line-height: 1.6; font-weight: 600;"><?= htmlspecialchars(__t('partner_apply_benefit_rules_lead_owner_access', '服务包档位与可配置范围以系统当前登记为准，核算基础为已确认的真实技术服务消费：'), ENT_QUOTES, 'UTF-8'); ?></p>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; color: #555; line-height: 1.8;">
                    <li><?= __t('partner_apply_benefit_rules_li1', '业务累加机制：您下面所有独立站的业务都会累加到您这里，无论是自己的站还是直接的下级站点，全部累加计算。'); ?></li>
                    <li><strong><?= htmlspecialchars(__t('partner_apply_benefit_rules_li2_label', '提成升级示例：'), ENT_QUOTES, 'UTF-8'); ?></strong>
                        <ul style="margin: 8px 0 0 20px; padding-left: 15px; line-height: 1.7;">
                            <li><?= __t('partner_apply_benefit_rules_li2_sub1_owner_access', '服务包档位由系统按现行规则评估，页面展示仅供当前申请参考'); ?></li>
                            <li><?= __t('partner_apply_benefit_rules_li2_sub2_owner_access', '具体以系统登记的本站服务包与真实技术服务消费记录为准'); ?></li>
                        </ul>
                    </li>
                    <li><?= __t('partner_apply_benefit_rules_li3', '重复计算说明：下级独立站还可发展自己的下级站点；各站业绩在各自层级同样参与考核。业务统计规则以平台后台为准。'); ?></li>
                </ul>
            </div>
            <div class="benefit-item">
                <h4><i class="fas fa-star" style="color: #E65100;"></i> <?= htmlspecialchars(__t('partner_apply_benefit_core_title', '独立网站核心优势'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; color: #555; line-height: 1.8;">
                    <li><?= __t('partner_apply_benefit_core_li1', '独立域名：使用您自己的国际域名，树立专业品牌形象'); ?></li>
                    <li><?= __t('partner_apply_benefit_core_li2', '完全管理权：拥有最高管理权限，可自行设置运营中心等级和分配比例'); ?></li>
                    <li><?= __t('partner_apply_benefit_core_li3', '算力转账：管理员账号可对下属用户进行算力转账'); ?></li>
                    <li><?= __t('partner_apply_benefit_core_li4', '品牌独立：可自定义网站LOGO、名称等品牌元素'); ?></li>
                </ul>
            </div>
            <div class="benefit-item">
                <h4><i class="fas fa-chart-line" style="color: #E65100;"></i> <?= htmlspecialchars(__t('partner_apply_benefit_price_title', '价格与充值说明'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; color: #555; line-height: 1.8;">
                    <li><?= __t('partner_apply_benefit_price_li1_owner_access', '免费提交开独立OEM站申请，申请资格与服务包按系统现行规则核验'); ?></li>
                    <li><?php
                        $priceLi2 = __t('partner_apply_benefit_price_li2_owner_access', '申请前请核对当前规则；页面参考调整值为 {inc} 算力');
                        echo str_replace('{inc}', '<strong>' . number_format($daily_inc, 0) . '</strong>', $priceLi2);
                        ?></li>
                    <li><?= __t('partner_apply_benefit_price_li3', '所充算力可用于绑定账户进行交易，使用无期限'); ?></li>
                    <li><?= __t('partner_apply_benefit_price_li4', '算力由管理员权限账号转让或自行绑定账户交易'); ?></li>
                </ul>
            </div>
            <?php endif; ?>

            <div class="benefit-item">
                <h4><i class="fas fa-shield-alt" style="color: #E65100;"></i> <?= htmlspecialchars(__t('partner_apply_benefit_domain_title', '域名注册与解析说明'), ENT_QUOTES, 'UTF-8'); ?></h4>
                <p style="margin: 0; color: #555; line-height: 1.6;"><?= __t('partner_apply_benefit_domain_intro', '需自行注册域名。国内站建议在 <a href="https://cloud.tencent.com/" target="_blank" style="color: #667eea; font-weight: 600;">腾讯云</a> 或 <a href="https://www.aliyun.com/" target="_blank" style="color: #667eea; font-weight: 600;">阿里云</a> 注册 <strong>.com</strong>、<strong>.net</strong>、<strong>.cn</strong> 等英文或字母数字域名，<strong style="color: #E65100;">请勿使用中文域名</strong>：'); ?></p>
                <ul style="margin: 10px 0 0 0; padding-left: 20px; color: #555; line-height: 1.8;">
                    <li><?= __t('partner_apply_benefit_domain_li1', '✅ 购买最便宜云服务器 3 个月以上（腾讯云购买服务器可协助免费 ICP 备案）'); ?></li>
                    <li><?= __t('partner_apply_benefit_domain_li2', '✅ 只有完成 ICP 备案的域名才可以做解析接入独立站'); ?></li>
                    <li><?= __t('partner_apply_benefit_domain_li3', '✅ 建议独立站尽可能用公司主体运营：个人由平台代扣税；公司对公支付宝自行交税；便于软件著作权申请及融资上市等'); ?></li>
                </ul>
                <div style="margin-top: 16px; padding: 15px; background: #E8F5E9; border-left: 4px solid #43A047; border-radius: 8px;">
                    <h5 style="color: #2E7D32; margin: 0 0 10px 0; font-size: 1.05em;">
                        <i class="fas fa-list-ol"></i> <?= htmlspecialchars(__t('partner_apply_cn_reg_steps_title', '注册与备案流程参考'), ENT_QUOTES, 'UTF-8'); ?>
                    </h5>
                    <ol style="margin: 0; padding-left: 22px; color: #555; line-height: 1.8;">
                        <li><?= __t('partner_apply_cn_reg_step1', '在腾讯云或阿里云注册英文/字母数字域名（.com / .net / .cn 等，勿用中文域名）'); ?></li>
                        <li><?= __t('partner_apply_cn_reg_step2', '购买最便宜云服务器 3 个月以上（备案需绑定服务器；系统必须选 Ubuntu 22.04，严禁 Windows）'); ?></li>
                        <li><?= __t('partner_apply_cn_reg_step3', '提交 ICP 备案（腾讯云购买服务器可协助免费备案，阿里云同理）'); ?></li>
                        <li><?= __t('partner_apply_cn_reg_step4', '备案通过后，优先到「自备机反代接入」按自备机清单改 DNS 并远程安装（平台反代为备选）'); ?></li>
                        <li><?= __t('partner_apply_cn_reg_step5', '建议使用公司主体开通：便于对公支付宝、自行报税、软件著作权及后续融资上市'); ?></li>
                    </ol>
                </div>
                <?php if (!empty($schemeApply)): ?>
                <?php
                    $edgeSetupUrl = function_exists('ggai_mu') ? ggai_mu('/user/partner_edge_setup.php') : 'partner_edge_setup.php';
                ?>
                <div style="margin-top: 20px; padding: 15px; background: #E3F2FD; border-left: 4px solid #1565C0; border-radius: 8px;">
                    <h5 style="color: #0D47A1; margin: 0 0 12px 0; font-size: 1.1em;">
                        <i class="fas fa-server"></i> <?= htmlspecialchars(__t('partner_apply_cn_self_dns_title', '推荐：自备机反代（国内默认优先）'), ENT_QUOTES, 'UTF-8'); ?>
                    </h5>
                    <p style="margin: 0 0 10px 0; color: #333; font-size: 0.95em; line-height: 1.75;">
                        <?= __t('partner_apply_cn_self_dns_intro', '腾讯云买最便宜云主机（必须 Ubuntu 22.04，禁止 Windows）完成备案后：开通独立站 → 打开「自备机反代接入」→ 绑定已备案域名 → 填写公网 IP / SSH → 按下列解析 → 远程一键安装。申请阶段<strong>不强制</strong>先改 DNS。'); ?>
                        <a href="<?= htmlspecialchars($edgeSetupUrl, ENT_QUOTES, 'UTF-8'); ?>" style="font-weight:700;color:#0D47A1;">打开自备机反代接入</a>
                    </p>
                    <div style="background: white; padding: 16px; border-radius: 6px; line-height: 2.1;">
                        <div style="margin-bottom: 14px;">
                            <strong style="color: #1976D2;font-size:1.08em;">1. A 记录</strong><br>
                            <span style="color: #666;font-size:1.05em;">主机记录：</span> <?= partner_apply_dns_tok('@'); ?> /
                            <?= partner_apply_dns_tok('www'); ?><br>
                            <span style="color: #666;font-size:1.05em;">记录值：</span> <?= partner_apply_dns_tok('您的云主机公网 IP', 'value'); ?>
                        </div>
                        <div>
                            <strong style="color: #1976D2;font-size:1.08em;">2. A 记录（下载）</strong><br>
                            <span style="color: #666;font-size:1.05em;">主机记录：</span> <?= partner_apply_dns_tok('down'); ?> <span style="font-size:1.05em;">（只填 down）</span><br>
                            <span style="color: #666;font-size:1.05em;">记录值：</span> <?= partner_apply_dns_tok('您的云主机公网 IP', 'value'); ?>
                        </div>
                    </div>
                    <p style="margin:10px 0 0;color:#333;font-size:0.92em;">down 指到本机后，一键安装会在本机反代到 down.xcopy.cn 并申请证书，不必再 CNAME 到平台。</p>
                </div>
                <?php if (function_exists('partner_platform_proxy_enabled') && partner_platform_proxy_enabled()): ?>
                <details style="margin-top: 16px; padding: 12px 15px; background: #FFF8E1; border-left: 4px solid #FF8F00; border-radius: 8px;">
                    <summary style="cursor:pointer;color:#E65100;font-weight:700;font-size:1.05em;">
                        <i class="fas fa-cloud"></i> <?= htmlspecialchars(__t('partner_apply_cn_platform_dns_title', '备选：平台反代 DNS（web2 / down4）'), ENT_QUOTES, 'UTF-8'); ?>
                    </summary>
                    <p style="margin: 10px 0; color: #666; font-size: 0.92em;"><?= __t('partner_apply_cn_platform_dns_intro', '仅当管理员已开放平台反代、且不走自备机时使用。解析到 web2.xcopy.cn / down4.xcopy.cn。新开店默认仍是自备机。'); ?></p>
                    <div style="background: white; padding: 16px; border-radius: 6px; line-height: 2.1;">
                        <div style="margin-bottom: 14px;">
                            <strong style="color: #1976D2;font-size:1.08em;">1. A 记录</strong><br>
                            <span style="color: #666;font-size:1.05em;">主机记录：</span> <?= partner_apply_dns_tok('@'); ?><br>
                            <span style="color: #666;font-size:1.05em;">记录值：</span> <?= partner_apply_dns_tok(PARTNER_APPLY_DNS_ROOT_IP, 'value'); ?>
                        </div>
                        <div style="margin-bottom: 14px;">
                            <strong style="color: #1976D2;font-size:1.08em;">2. CNAME</strong>
                            <?= partner_apply_dns_tok('www'); ?> → <?= partner_apply_dns_tok(PARTNER_APPLY_DNS_WWW_CNAME, 'value'); ?>
                        </div>
                        <div>
                            <strong style="color: #1976D2;font-size:1.08em;">3. CNAME</strong>
                            <?= partner_apply_dns_tok('down'); ?> →
                            <?= partner_apply_dns_tok(partner_apply_dns_down_cname_display(), 'warn'); ?>
                            <span style="color:#B71C1C;font-weight:800;font-size:1.15em;"> ← 末尾必须带点</span>
                        </div>
                    </div>
                    <?= partner_apply_dns_down_cname_tip_html(); ?>
                </details>
                <?php endif; ?>
                <?php else: ?>
                <div style="margin-top: 20px; padding: 15px; background: #FFF3E0; border-left: 4px solid #FF6F00; border-radius: 8px;">
                    <h5 style="color: #E65100; margin: 0 0 12px 0; font-size: 1.1em;">
                        <i class="fas fa-exclamation-triangle"></i> <?= htmlspecialchars(__t('partner_apply_benefit_dns_warn_title', '域名 DNS 解析配置（提交前必须完成）'), ENT_QUOTES, 'UTF-8'); ?>
                    </h5>
                    <p style="margin: 0 0 10px 0; color: #666; font-size: 0.95em;"><?= __t('partner_apply_benefit_dns_warn_p', '在腾讯云/阿里云域名控制台添加以下解析记录（@ 为根域名）；检测通过后才能提交申请：'); ?></p>
                    <div style="background: white; padding: 16px; border-radius: 6px; line-height: 2.1;">
                        <div style="margin-bottom: 14px;">
                            <strong style="color: #1976D2;font-size:1.08em;">1. <?= htmlspecialchars(__t('partner_apply_dns_label_a', 'A记录'), ENT_QUOTES, 'UTF-8'); ?></strong><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_host', '主机记录：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok('@'); ?> <?= htmlspecialchars(__t('partner_apply_dns_host_root', '（域名本身）'), ENT_QUOTES, 'UTF-8'); ?><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_value', '记录值：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok(PARTNER_APPLY_DNS_ROOT_IP, 'value'); ?>
                        </div>
                        <div style="margin-bottom: 14px;">
                            <strong style="color: #1976D2;font-size:1.08em;">2. <?= htmlspecialchars(__t('partner_apply_dns_label_cname', 'CNAME记录'), ENT_QUOTES, 'UTF-8'); ?></strong><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_host', '主机记录：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok('www'); ?><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_value', '记录值：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok(PARTNER_APPLY_DNS_WWW_CNAME, 'value'); ?>
                        </div>
                        <div style="margin-bottom: 14px;">
                            <strong style="color: #1976D2;font-size:1.08em;">3. <?= htmlspecialchars(__t('partner_apply_dns_label_cname', 'CNAME记录'), ENT_QUOTES, 'UTF-8'); ?></strong>（下载）<br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_host', '主机记录：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok('down'); ?> <span style="font-size:1.05em;">（只填 down）</span><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_value', '记录值：'), ENT_QUOTES, 'UTF-8'); ?></span>
                            <?= partner_apply_dns_tok(partner_apply_dns_down_cname_display(), 'warn'); ?>
                            <span style="color:#B71C1C;font-weight:800;font-size:1.15em;"> ← 末尾必须带点</span>
                        </div>
                        <?= partner_apply_dns_down_cname_tip_html(); ?>
                        <div>
                            <strong style="color: #1976D2;font-size:1.08em;">4. <?= htmlspecialchars(__t('partner_apply_dns_label_cname', 'CNAME记录'), ENT_QUOTES, 'UTF-8'); ?></strong>
                            <span style="color: #888; font-size: 0.95em;">（<?= htmlspecialchars(__t('partner_apply_dns_optional_hint', '可选，不强制检测'), ENT_QUOTES, 'UTF-8'); ?>）</span><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_host', '主机记录：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok('*'); ?> <?= htmlspecialchars(__t('partner_apply_dns_host_wild', '（泛解析）'), ENT_QUOTES, 'UTF-8'); ?><br>
                            <span style="color: #666;font-size:1.05em;"><?= htmlspecialchars(__t('partner_apply_dns_label_value', '记录值：'), ENT_QUOTES, 'UTF-8'); ?></span> <?= partner_apply_dns_tok(defined('PARTNER_APPLY_DNS_WILDCARD_CNAME') ? PARTNER_APPLY_DNS_WILDCARD_CNAME : PARTNER_APPLY_DNS_WWW_CNAME, 'value'); ?>
                            <div style="margin-top: 6px; color: #888; font-size: 0.9em; font-family: system-ui, sans-serif;"><?= htmlspecialchars(__t('partner_apply_dns_wildcard_tip', '多数域名商支持将 * 做成 CNAME 指向入口；便于未单独配置的子域也能落到反代。提交申请时不检查此项。'), ENT_QUOTES, 'UTF-8'); ?></div>
                        </div>
                    </div>
                </div>
                <?php endif; ?>
            </div>
        </div>

    </div><!-- /.main-content -->
</div><!-- /.page-wrapper -->

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 推荐码自动转大写
    const codeInput = document.querySelector('input[name="desired_code"]');
    if (codeInput) {
        codeInput.addEventListener('input', function() {
            this.value = this.value.toUpperCase();
        });
    }

    const domainInput = document.getElementById('partnerApplyDomain');
    const dnsBtn = document.getElementById('partnerApplyDnsCheckBtn');
    const dnsResult = document.getElementById('partnerApplyDnsResult');
    const applyForm = document.getElementById('partnerApplyForm');
    let dnsPassDomain = '';

    function normalizeDomainInput(raw) {
        let d = String(raw || '').trim();
        d = d.replace(/[\uFF01-\uFF5E]/g, function (ch) {
            return String.fromCharCode(ch.charCodeAt(0) - 0xFEE0);
        });
        d = d.replace(/\u3000/g, ' ').replace(/。/g, '.');
        d = d.toLowerCase();
        d = d.replace(/[\s\u00A0\u200B\u200C\u200D\uFEFF]+/g, '');
        d = d.replace(/^https?:\/\//, '').replace(/\/.*$/, '').replace(/\.$/, '');
        if (d.indexOf('www.') === 0) d = d.slice(4);
        return d;
    }

    function showDnsResult(ok, msg, errors) {
        if (!dnsResult) return;
        dnsResult.style.display = 'block';
        dnsResult.style.background = ok ? '#E8F5E9' : '#FFEBEE';
        dnsResult.style.color = ok ? '#2E7D32' : '#C62828';
        dnsResult.style.border = '1px solid ' + (ok ? '#A5D6A7' : '#EF9A9A');
        let html = '<strong>' + (ok ? '✓ ' : '✗ ') + String(msg || '') + '</strong>';
        if (!ok && errors && errors.length) {
            html += '<ul style="margin:8px 0 0 18px;padding:0;">';
            errors.forEach(function(e) { html += '<li>' + String(e) + '</li>'; });
            html += '</ul>';
        }
        dnsResult.innerHTML = html;
    }

    function runDnsCheck(thenSubmit) {
        if (!domainInput || !dnsBtn) return Promise.resolve(false);
        const domain = normalizeDomainInput(domainInput.value);
        if (domainInput.value !== domain) domainInput.value = domain;
        if (!domain) {
            showDnsResult(false, <?= json_encode(__t('partner_apply_err_domain_empty', '请先填写域名'), JSON_UNESCAPED_UNICODE); ?>, []);
            return Promise.resolve(false);
        }
        dnsBtn.disabled = true;
        const prevHtml = dnsBtn.innerHTML;
        dnsBtn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> <?= __t('partner_apply_dns_checking', '检测中…'); ?>';
        const body = new URLSearchParams();
        body.set('action', 'check_dns');
        body.set('domain', domain);
        return fetch(window.location.href, {
            method: 'POST',
            headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' },
            body: body.toString(),
            credentials: 'same-origin'
        }).then(function(r) { return r.json(); }).then(function(data) {
            if (data && data.domain) domainInput.value = data.domain;
            const ok = !!(data && data.ok);
            showDnsResult(ok, data && data.msg, data && data.errors);
            dnsPassDomain = ok ? String(data.domain || domain) : '';
            if (ok && thenSubmit && applyForm) {
                applyForm.dataset.dnsVerified = '1';
                applyForm.submit();
            }
            return ok;
        }).catch(function() {
            showDnsResult(false, <?= json_encode(__t('partner_apply_dns_check_network', '检测失败，请稍后重试'), JSON_UNESCAPED_UNICODE); ?>, []);
            return false;
        }).finally(function() {
            dnsBtn.disabled = false;
            dnsBtn.innerHTML = prevHtml;
        });
    }

    if (dnsBtn) {
        dnsBtn.addEventListener('click', function() { runDnsCheck(false); });
    }
    if (domainInput) {
        domainInput.addEventListener('blur', function() {
            const n = normalizeDomainInput(domainInput.value);
            if (n && domainInput.value !== n) domainInput.value = n;
        });
        domainInput.addEventListener('input', function() {
            dnsPassDomain = '';
            if (applyForm) delete applyForm.dataset.dnsVerified;
            if (dnsResult) dnsResult.style.display = 'none';
        });
    }
    const schemeDeferDomain = <?= !empty($schemeApply) ? 'true' : 'false'; ?>;
    if (applyForm && !applyForm.getAttribute('onsubmit')) {
        applyForm.addEventListener('submit', function(e) {
            if (domainInput) {
                const n = normalizeDomainInput(domainInput.value);
                if (n) domainInput.value = n;
            }
            // 国内：域名选填，不强制先过 DNS/ICP
            if (schemeDeferDomain) {
                return;
            }
            if (applyForm.dataset.dnsVerified === '1') return;
            e.preventDefault();
            const cur = normalizeDomainInput(domainInput && domainInput.value || '');
            if (dnsPassDomain && dnsPassDomain === cur) {
                applyForm.dataset.dnsVerified = '1';
                applyForm.submit();
                return;
            }
            runDnsCheck(true);
        });
    }

});
</script>
<!-- 百度统计代码 -->
<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?210b186349457686b3e37a5b3da590aa";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<?php require __DIR__ . '/includes/support_fab.php'; ?>
</body>
</html>


