<?php
if(!file_exists("baseInfo.php") || !file_exists("config.php")){
    form("فایل های مورد نیاز یافت نشد");
    exit();
}

require "baseInfo.php";
require "config.php";
include_once 'settings/jdf.php';
include_once 'settings/config_xui_api.php';
global $buttonValues;


if(isset($_REQUEST['id'])){
    $config_link = trim($_REQUEST['id']);
    $client_email = "";

    // ۱. استخراج ایمیل یا شناسه یکتا از انواع فرمت‌های لینک اتصال (Vless / Vmess / Trojan)
    if(preg_match('/^vmess:\/\/(.*)/', $config_link, $match)){
        $jsonDecode = json_decode(base64_decode($match[1]), true);
        $client_email = $jsonDecode['ps'] ?? $jsonDecode['add'] ?? '';
        // اگر شناسه ایمیل درون فلو نبود از آی‌دی استفاده کند
        if(strpos($client_email, '@') === false) $client_email = $jsonDecode['id'] ?? '';
    } elseif(preg_match('/\#(.*)/', $config_link, $match)) {
        // استخراج ایمیل به کمک ریمارک انتهای لینک کانفیگ
        $client_email = urlencode($match[1]);
    } elseif(preg_match('/^vless:\/\/(.*?)\@/', $config_link, $match)){
        $client_email = $match[1];
    } elseif(preg_match('/^trojan:\/\/(.*?)\@/', $config_link, $match)){
        $client_email = $match[1];
    } else {
        $client_email = $config_link;
    }

    $client_email = htmlspecialchars(stripslashes(trim($client_email)));

    // اول در دیتابیس ربات چک می‌کنیم که آیا شناسه ورودی متعلق به UUID یا Token کاربری هست یا خیر
    $stmtDb = $connection->prepare("SELECT `remark` FROM `orders_list` WHERE `uuid` = ? OR `token` = ?");
    if ($stmtDb) {
        $stmtDb->bind_param("ss", $client_email, $client_email);
        $stmtDb->execute();
        $dbRes = $stmtDb->get_result()->fetch_assoc();
        $stmtDb->close();
        if ($dbRes && !empty($dbRes['remark'])) {
            $client_email = $dbRes['remark'];
        }
    }

    // ۲. واکشی لیست سرورها جهت ارتباط با API رسمی جدید
    $stmt = $connection->prepare("SELECT * FROM `server_config`");
    $stmt->execute();
    $serversList = $stmt->get_result();
    $stmt->close();
    
    $found = false;
    $isMarzban = false;

    while($row = $serversList->fetch_assoc()){
        $serverId = $row['id'];
        $serverType = $row['type'];
        $panelUrl = rtrim($row['panel_url'], '/');
        $apiToken = trim($row['password']); // استفاده از توکن ذخیره شده در دیتابیس ربات

        if($serverType == "marzban"){
            $usersList = getMarzbanJson($serverId)->users;
            if(strstr(json_encode($usersList, JSON_UNESCAPED_UNICODE), $client_email) && !empty($client_email)){
                $found = true; $isMarzban = true;
                foreach($usersList as $key => $config){
                    if($config->username == $client_email || strstr(json_encode($config->links, JSON_UNESCAPED_UNICODE), $client_email)){
                        $remark = $config->username;
                        $total = $config->data_limit != 0 ? sumerize($config->data_limit) : "نامحدود";
                        $totalUsed = sumerize($config->used_traffic);
                        $state = $config->status == "active" ? $buttonValues['active'] : $buttonValues['deactive'];
                        $expiryTime = $config->expire != 0 ? jdate("Y-m-d H:i:s", $config->expire) : "نامحدود";
                        $leftMb = $config->data_limit != 0 ? $config->data_limit - $config->used_traffic : "نامحدود";
                        
                        if(is_numeric($leftMb)){
                            if($leftMb < 0) $leftMb = 0;
                            else $leftMb = sumerize($leftMb);
                        }
                        
                        $expiryDay = $config->expire != 0 ? floor(($config->expire - time()) / (60 * 60 * 24)) : "نامحدود";    
                        if(is_numeric($expiryDay) && $expiryDay < 0) $expiryDay = 0;
                        break;
                    }
                }
                if($found) break;
            }
        } 
        else {
            // ✨ متد خارق‌العاده کلاینت‌محور سنایی نسخه 3.1.0 (بدون نیاز به پورت و اینباند)
            // اگر کاربر ایمیل کامل (مثل User@tg.com) فرستاده بود، مستقیم به API متصل می‌شود
            // اگر آیدی سابسکریپشن فرستاده بود، ابتدا ایمیل یکتای آن را پیدا می‌کنیم
            $targetEmail = $client_email;
            
            if (strpos($client_email, '@') === false) {
                // این یعنی کاربر آیدی سابسکریپشن (SubId) یا UUID را وارد کرده است؛ پس ایمیل آن را پیدا می‌کنیم
                $list = callXuiApi($row, '/panel/api/clients/list');
                if ($list && isset($list->success) && $list->success && isset($list->obj)) {
                    foreach ($list->obj as $clRow) {
                        $clRowArr = (array)$clRow;
                        $cleanRowEmail = str_replace('@tg.com', '', $clRowArr['email'] ?? '');
                        if (($clRowArr['subId'] ?? '') == $client_email || ($clRowArr['email'] ?? '') == $client_email || $cleanRowEmail == $client_email || ($clRowArr['id'] ?? '') == $client_email || ($clRowArr['uuid'] ?? '') == $client_email) {
                            $targetEmail = $clRowArr['email']; break;
                        }
                    }
                }
            }

            // فراخوانی مستقیم اندپوینت رسمی ترافیک کلاینت بر اساس مستندات جدید شما
            // مسیر دقیق: /panel/api/clients/traffic/{email}
            $trafficRes = callXuiApi($row, '/panel/api/clients/traffic/' . urlencode($targetEmail));

            if ($trafficRes && isset($trafficRes->success) && $trafficRes->success == true && isset($trafficRes->obj)) {
                $found = true;
                $clientData = (array)$trafficRes->obj;

                // پر کردن دقیق متغیرها برای استفاده در قالب کدهای HTML پایینی سورس شما
                $remark = explode('@', $clientData['email'])[0]; // استخراج نام زیبای کانفیگ بدون دامنه‌ی فیک
                $upload = sumerize2($clientData['up']);
                $download = sumerize2($clientData['down']);
                $totalUsed = sumerize2($clientData['up'] + $clientData['down']);
                
                $totalBytes = $clientData['total'];
                $total = $totalBytes != 0 ? sumerize2($totalBytes) : "نامحدود";
                
                // محاسبه ترافیک باقی‌مانده
                if ($totalBytes != 0) {
                    $leftBytes = $totalBytes - $clientData['up'] - $clientData['down'];
                    $leftMb = $leftBytes < 0 ? 0 : sumerize2($leftBytes);
                } else {
                    $leftMb = "نامحدود";
                }

                // محاسبه زمان انقضا بر اساس میلی‌ثانیه سنایی
                $expTime = $clientData['expiryTime'];
                if ($expTime != 0) {
                    // تبدیل میلی ثانیه به ثانیه استاندارد پی‌اچ‌پی
                    $cleanTimestamp = substr($expTime, 0, -3);
                    $expiryTime = jdate("Y-m-d H:i:s", $cleanTimestamp);
                    $expiryDay = floor(($cleanTimestamp - time()) / (60 * 60 * 24));
                    if ($expiryDay < 0) $expiryDay = 0;
                } else {
                    $expiryTime = "نامحدود";
                    $expiryDay = "نامحدود";
                }

                // ست کردن وضعیت فعال/غیرفعال بودن اکانت
                // در اندپوینت ترافیک، اگر حجم تمام شده باشد یا زمان منقضی، سیستم به طور هوشمند وضعیت را ردگیری می‌کند
                $state = "فعال 🟢";
                if ($totalBytes != 0 && ($clientData['up'] + $clientData['down']) >= $totalBytes) {
                    $state = "پایان حجم 🔴";
                } elseif ($expTime != 0 && substr($expTime, 0, -3) < time()) {
                    $state = "منقضی شده 🔴";
                }
                
                break; // خروج از حلقه به دلیل یافتن کلاینت
            }
        }
    }

    if(!$found){
        form("اطلاعات وارد شده اشتباه می باشد یا سرویس یافت نشد.", $cancelKey);
        exit();
    } else {
        // هدایت مستقیم اسکریپت برای رندر کردن فرم HTML پایینی با متغیرهای پر شده فوق
        showForm("configInfo");
    }
} else {
    showForm("unknown");
    exit();
}
?>
<?php
function showForm($type){
    global $remark, $isMarzban, $totalUsed, $state, $upload, $download, $total, $leftMb, $expiryTime, $expiryDay;
    ?>
    <!DOCTYPE html>
    <html lang="fa" dir="rtl">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title><?php if($type=="unknown") echo "جستجوی اطلاعات کانفیگ";
            elseif ($type=="configInfo") echo "اطلاعات کانفیگ";
            ?></title>
        <link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap" rel="stylesheet">
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            
            body {
                font-family: 'Vazirmatn', sans-serif;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                min-height: 100vh;
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 20px;
            }
            
            .container {
                width: 100%;
                max-width: 500px;
            }
            
            .card {
                background: rgba(255, 255, 255, 0.95);
                backdrop-filter: blur(10px);
                border-radius: 24px;
                padding: 40px 30px;
                box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
                animation: slideUp 0.5s ease-out;
            }
            
            @keyframes slideUp {
                from {
                    opacity: 0;
                    transform: translateY(30px);
                }
                to {
                    opacity: 1;
                    transform: translateY(0);
                }
            }
            
            .header {
                text-align: center;
                margin-bottom: 30px;
            }
            
            .header h2 {
                color: #2d3748;
                font-size: 24px;
                font-weight: 700;
                margin-bottom: 8px;
            }
            
            .header .username {
                color: #667eea;
                font-size: 18px;
                font-weight: 600;
            }
            
            .status-badge {
                display: inline-flex;
                align-items: center;
                gap: 6px;
                padding: 8px 20px;
                border-radius: 50px;
                font-size: 14px;
                font-weight: 600;
                margin-top: 15px;
            }
            
            .status-active {
                background: linear-gradient(135deg, #84fab0 0%, #8fd3f4 100%);
                color: #065f46;
            }
            
            .status-inactive {
                background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
                color: #7f1d1d;
            }
            
            .stats-grid {
                display: grid;
                grid-template-columns: repeat(2, 1fr);
                gap: 20px;
                margin-top: 30px;
            }
            
            .stat-card {
                background: linear-gradient(135deg, #f6f8fb 0%, #ffffff 100%);
                border-radius: 16px;
                padding: 20px;
                text-align: center;
                border: 1px solid #e2e8f0;
                transition: transform 0.3s, box-shadow 0.3s;
            }
            
            .stat-card:hover {
                transform: translateY(-5px);
                box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
            }
            
            .stat-icon {
                width: 40px;
                height: 40px;
                margin: 0 auto 12px;
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 12px;
            }
            
            .stat-icon.download {
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            }
            
            .stat-icon.upload {
                background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
            }
            
            .stat-icon.remaining {
                background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
            }
            
            .stat-icon.total {
                background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
            }
            
            .stat-icon svg {
                width: 22px;
                height: 22px;
                fill: white;
            }
            
            .stat-label {
                color: #64748b;
                font-size: 13px;
                margin-bottom: 8px;
                font-weight: 500;
            }
            
            .stat-value {
                color: #1e293b;
                font-size: 20px;
                font-weight: 700;
            }
            
            .progress-wrapper {
                margin-top: 8px;
                height: 8px;
                background: #e2e8f0;
                border-radius: 10px;
                overflow: hidden;
            }
            
            .progress-bar {
                height: 100%;
                border-radius: 10px;
                transition: width 0.6s ease;
            }
            
            .progress-success {
                background: linear-gradient(90deg, #10b981 0%, #34d399 100%);
            }
            
            .progress-warning {
                background: linear-gradient(90deg, #f59e0b 0%, #fbbf24 100%);
            }
            
            .progress-danger {
                background: linear-gradient(90deg, #ef4444 0%, #f87171 100%);
            }
            
            .expiry-info {
                background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
                border-radius: 16px;
                padding: 20px;
                margin-top: 25px;
                text-align: center;
                border: 1px solid #fcd34d;
            }
            
            .expiry-label {
                color: #78350f;
                font-size: 13px;
                font-weight: 600;
                margin-bottom: 8px;
            }
            
            .expiry-value {
                color: #92400e;
                font-size: 16px;
                font-weight: 700;
                direction: ltr;
            }
            
            .footer {
                text-align: center;
                margin-top: 25px;
                padding-top: 20px;
                border-top: 1px solid #e2e8f0;
            }
            
            .footer a {
                color: #667eea;
                text-decoration: none;
                font-weight: 600;
                transition: color 0.3s;
            }
            
            .footer a:hover {
                color: #764ba2;
            }
            
            /* Search Form */
            .search-form {
                text-align: center;
            }
            
            .search-form h3 {
                color: #2d3748;
                font-size: 22px;
                font-weight: 700;
                margin-bottom: 25px;
            }
            
            .input-group {
                margin-bottom: 20px;
            }
            
            .input-group input {
                width: 100%;
                padding: 16px 20px;
                border: 2px solid #e2e8f0;
                border-radius: 12px;
                font-size: 15px;
                font-family: 'Vazirmatn', sans-serif;
                transition: all 0.3s;
                background: white;
            }
            
            .input-group input:focus {
                outline: none;
                border-color: #667eea;
                box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);
            }
            
            .btn-search {
                width: 100%;
                padding: 16px;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
                border: none;
                border-radius: 12px;
                font-size: 16px;
                font-weight: 600;
                cursor: pointer;
                transition: transform 0.2s, box-shadow 0.2s;
                font-family: 'Vazirmatn', sans-serif;
            }
            
            .btn-search:hover {
                transform: translateY(-2px);
                box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4);
            }
            
            .btn-search:active {
                transform: translateY(0);
            }
            
            /* Responsive Design */
            
            /* Mobile - Small (320px - 480px) */
            @media (max-width: 480px) {
                body {
                    padding: 10px;
                }
                
                .stats-grid {
                    grid-template-columns: 1fr;
                    gap: 15px;
                }
                
                .card {
                    padding: 25px 18px;
                    border-radius: 20px;
                }
                
                .header h2 {
                    font-size: 20px;
                }
                
                .header .username {
                    font-size: 16px;
                }
                
                .stat-card {
                    padding: 18px 15px;
                }
                
                .stat-value {
                    font-size: 18px;
                }
                
                .search-form h3 {
                    font-size: 18px;
                }
                
                .input-group input {
                    padding: 14px 16px;
                    font-size: 14px;
                }
                
                .btn-search {
                    padding: 14px;
                    font-size: 15px;
                }
            }
            
            /* Mobile - Medium (481px - 767px) */
            @media (min-width: 481px) and (max-width: 767px) {
                .container {
                    max-width: 450px;
                }
                
                .stats-grid {
                    grid-template-columns: 1fr;
                    gap: 18px;
                }
                
                .card {
                    padding: 35px 25px;
                }
            }
            
            /* Tablet - Portrait (768px - 991px) */
            @media (min-width: 768px) and (max-width: 991px) {
                .container {
                    max-width: 600px;
                }
                
                .stats-grid {
                    grid-template-columns: repeat(2, 1fr);
                    gap: 20px;
                }
                
                .card {
                    padding: 40px 35px;
                }
                
                .header h2 {
                    font-size: 26px;
                }
                
                .stat-card {
                    padding: 25px 20px;
                }
            }
            
            /* Tablet - Landscape & Small Desktop (992px - 1199px) */
            @media (min-width: 992px) and (max-width: 1199px) {
                .container {
                    max-width: 650px;
                }
                
                .stats-grid {
                    grid-template-columns: repeat(2, 1fr);
                    gap: 22px;
                }
                
                .card {
                    padding: 45px 40px;
                }
                
                .header h2 {
                    font-size: 28px;
                }
                
                .stat-card {
                    padding: 25px 22px;
                }
                
                .stat-value {
                    font-size: 22px;
                }
            }
            
            /* Desktop - Standard (1200px - 1599px) */
            @media (min-width: 1200px) and (max-width: 1599px) {
                .container {
                    max-width: 700px;
                }
                
                .stats-grid {
                    grid-template-columns: repeat(2, 1fr);
                    gap: 24px;
                }
                
                .card {
                    padding: 50px 45px;
                }
            }
            
            /* Desktop - Large (1600px+) */
            @media (min-width: 1600px) {
                .container {
                    max-width: 750px;
                }
                
                .stats-grid {
                    grid-template-columns: repeat(2, 1fr);
                    gap: 25px;
                }
                
                .card {
                    padding: 55px 50px;
                    border-radius: 28px;
                }
                
                .header h2 {
                    font-size: 28px;
                }
                
                .stat-card {
                    padding: 28px 25px;
                    border-radius: 18px;
                }
                
                .stat-value {
                    font-size: 24px;
                }
            }
            
            /* Landscape mode for mobile devices */
            @media (max-height: 600px) and (orientation: landscape) {
                body {
                    padding: 10px;
                }
                
                .card {
                    padding: 20px;
                }
                
                .header {
                    margin-bottom: 20px;
                }
                
                .stats-grid {
                    gap: 15px;
                    margin-top: 20px;
                }
                
                .stat-card {
                    padding: 15px;
                }
                
                .expiry-info {
                    padding: 15px;
                    margin-top: 20px;
                }
            }
        </style>
    </head>
    <body>
    <?php if ($type=="configInfo"){
        $downloadPercent = $download != 0 && $total != "نامحدود"? round(100 * $download / $total,2):0;
        $uploadPercent = $upload != 0 && $total != "نامحدود"? round(100 * $upload / $total,2):0;
        $leftPercent = $leftMb != "نامحدود" && $total != "نامحدود"?round(100 * $leftMb / $total,2):100;
        $totalUsedPercent = $totalUsed != "نامحدود" && $total != "نامحدود"?round(100 * $totalUsed / $total,2):0;
        
        $usedClass = $totalUsedPercent > 70 ? 'progress-danger' : ($totalUsedPercent > 50 ? 'progress-warning' : 'progress-success');
        $leftClass = $leftPercent < 30 ? 'progress-danger' : ($leftPercent < 50 ? 'progress-warning' : 'progress-success');
        ?>
        <div class="container">
            <div class="card">
                <div class="header">
                    <h2>اطلاعات کانفیگ</h2>
                    <div class="username"><?php echo $remark;?></div>
                    <div class="status-badge <?php echo (strpos($state, 'فعال') !== false) ? 'status-active' : 'status-inactive';?>">
                        <?php echo $state;?>
                    </div>
                </div>

                <div class="stats-grid">
                    <div class="stat-card">
                        <div class="stat-icon download">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 16l-6-6h4V4h4v6h4l-6 6zm-6 2h12v2H6v-2z"/></svg>
                        </div>
                        <div class="stat-label"><?php if($isMarzban) echo "دانلود + آپلود"; else echo "حجم دانلود";?></div>
                        <div class="stat-value"><?php if($isMarzban) echo $totalUsed; else echo $download;?></div>
                        <div class="progress-wrapper">
                            <div class="progress-bar <?php echo $usedClass;?>" style="width: <?php if($isMarzban) echo $totalUsedPercent; else echo $downloadPercent;?>%"></div>
                        </div>
                    </div>

                    <?php if(!$isMarzban){?>
                    <div class="stat-card">
                        <div class="stat-icon upload">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8l6 6h-4v6h-4v-6H6l6-6zm6 12v2H6v-2h12z"/></svg>
                        </div>
                        <div class="stat-label">حجم آپلود</div>
                        <div class="stat-value"><?php echo $upload;?></div>
                        <div class="progress-wrapper">
                            <div class="progress-bar progress-warning" style="width: <?php echo $uploadPercent;?>%"></div>
                        </div>
                    </div>
                    <?php }?>

                    <div class="stat-card">
                        <div class="stat-icon remaining">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2v-4h4v-2h-4V7h-2v4H7v2h5z"/></svg>
                        </div>
                        <div class="stat-label">حجم باقیمانده</div>
                        <div class="stat-value"><?php echo $leftMb;?></div>
                        <div class="progress-wrapper">
                            <div class="progress-bar <?php echo $leftClass;?>" style="width: <?php echo $leftPercent;?>%"></div>
                        </div>
                    </div>

                    <div class="stat-card">
                        <div class="stat-icon total">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/></svg>
                        </div>
                        <div class="stat-label">حجم کلی</div>
                        <div class="stat-value"><?php echo (is_numeric($total) ? $total . " GB": $total);?></div>
                    </div>
                </div>

                <div class="expiry-info">
                    <div class="expiry-label">تاریخ انقضا</div>
                    <div class="expiry-value"><?php echo $expiryTime;?></div>
                    <?php if(is_numeric($expiryDay)){?>
                    <div style="margin-top: 8px; color: #92400e; font-size: 14px;">
                        (<?php echo $expiryDay;?> روز باقیمانده)
                    </div>
                    <?php }?>
                </div>

                <div class="footer">
                    Made with 🖤 in <a href="https://wizwiz.villux.ir:8443" target="_blank">RamAi</a>
                </div>
            </div>
        </div>

    <?php }
    elseif($type=="unknown"){ ?>

        <div class="container">
            <div class="card">
                <form class="search-form" action="search.php" method="get">
                    <h3>جستجوی اطلاعات کانفیگ</h3>
                    <div class="input-group">
                        <input type="text" id="id" name="id" placeholder="لینک اتصال یا UUID کانفیگ را وارد کنید" autocomplete="off" required>
                    </div>
                    <button type="submit" class="btn-search">جستجو</button>
                    <div class="footer">
                        Made with 🖤 in <a href="https://wizwiz.villux.ir:8443" target="_blank">RamAi</a>
                    </div>
                </form>
            </div>
        </div>

    <?php } ?>
    </body>
    </html>
    <?php
}

function form($msg, $error = true){
    ?>
    <!DOCTYPE html>
    <html lang="fa" dir="rtl">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>خطا</title>
        <link href="https://fonts.googleapis.com/css2?family=Vazirmatn:wght@300;400;500;600;700&display=swap" rel="stylesheet">
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            
            body {
                font-family: 'Vazirmatn', sans-serif;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                min-height: 100vh;
                display: flex;
                align-items: center;
                justify-content: center;
                padding: 20px;
            }
            
            .error-container {
                width: 100%;
                max-width: 450px;
            }
            
            .error-card {
                background: rgba(255, 255, 255, 0.95);
                backdrop-filter: blur(10px);
                border-radius: 24px;
                padding: 50px 30px;
                box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
                text-align: center;
                animation: shake 0.5s ease-out;
            }
            
            @keyframes shake {
                0%, 100% { transform: translateX(0); }
                25% { transform: translateX(-10px); }
                75% { transform: translateX(10px); }
            }
            
            .error-icon {
                width: 80px;
                height: 80px;
                margin: 0 auto 25px;
                background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%);
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                animation: pulse 2s infinite;
            }
            
            @keyframes pulse {
                0%, 100% { transform: scale(1); }
                50% { transform: scale(1.05); }
            }
            
            .error-icon svg {
                width: 40px;
                height: 40px;
                stroke: white;
                stroke-width: 2;
            }
            
            .error-message {
                color: #2d3748;
                font-size: 18px;
                font-weight: 600;
                line-height: 1.8;
                margin-top: 20px;
            }
            
            .back-button {
                display: inline-block;
                margin-top: 30px;
                padding: 14px 40px;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                color: white;
                text-decoration: none;
                border-radius: 12px;
                font-weight: 600;
                transition: transform 0.2s, box-shadow 0.2s;
            }
            
            .back-button:hover {
                transform: translateY(-2px);
                box-shadow: 0 10px 25px rgba(102, 126, 234, 0.4);
            }
            
            /* Error Page Responsive */
            @media (max-width: 480px) {
                .error-card {
                    padding: 40px 20px;
                }
                
                .error-icon {
                    width: 70px;
                    height: 70px;
                }
                
                .error-icon svg {
                    width: 35px;
                    height: 35px;
                }
                
                .error-message {
                    font-size: 16px;
                }
                
                .back-button {
                    padding: 12px 30px;
                    font-size: 14px;
                }
            }
            
            @media (min-width: 768px) {
                .error-container {
                    max-width: 500px;
                }
                
                .error-card {
                    padding: 60px 40px;
                }
                
                .error-icon {
                    width: 90px;
                    height: 90px;
                }
                
                .error-icon svg {
                    width: 45px;
                    height: 45px;
                }
                
                .error-message {
                    font-size: 20px;
                }
            }
        </style>
    </head>
    <body>
        <div class="error-container">
            <div class="error-card">
                <?php if ($error == true){ ?>
                <div class="error-icon">
                    <svg fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24">
                        <circle cx="12" cy="12" r="10"></circle>
                        <line x1="15" y1="9" x2="9" y2="15"></line>
                        <line x1="9" y1="9" x2="15" y2="15"></line>
                    </svg>
                </div>
                <?php }?>
                <div class="error-message"><?php echo $msg; ?></div>
                <a href="search.php" class="back-button">بازگشت به صفحه جستجو</a>
            </div>
        </div>
    </body>
    </html>
    <?php
}
?>