<?php
// ═══════════════════════════════════════════════
// student_report.php — جامعہ دارالعلوم حقانیہ
// انفرادی طالب علم رپورٹ
// ═══════════════════════════════════════════════
session_start();
if (!isset($_SESSION['haq_admin_logged_in']) || $_SESSION['haq_admin_logged_in'] !== true) {
    header('Location: login.php'); exit;
}

include 'db.php';
if (!isset($conn)) $conn = new mysqli('localhost','root','','haq_attendance');
$db_error = $conn->connect_error;
if (!$db_error) $conn->set_charset('utf8mb4');

$today       = date('Y-m-d');
$month_start = date('Y-m-01');
$year_start  = date('Y-01-01');
$admin_name  = isset($_SESSION['haq_admin_user']) ? $_SESSION['haq_admin_user'] : 'Admin';

$student   = null;
$sid       = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$search_q  = isset($_GET['search']) ? trim($_GET['search']) : '';

// ── AJAX: Search ──
if (isset($_GET['search_name']) && !$db_error) {
    header('Content-Type: application/json; charset=utf-8');
    $q = $conn->real_escape_string(trim($_GET['search_name']));
    $r = $conn->query("SELECT reg_no,student,father,darja FROM students_master WHERE student LIKE '%$q%' OR reg_no LIKE '%$q%' LIMIT 10");
    $res = array(); if ($r) while ($row=$r->fetch_assoc()) $res[] = $row;
    echo json_encode($res); exit;
}

// ── Load student data ──
$att_total=0;$att_present=0;$att_leave=0;$att_absent=0;
$monthly_data=array();$leave_history=array();
$rank_darja=0;$rank_jamia=0;$total_darja=0;$total_jamia=0;
$grade='';$grade_color='';

if ($sid && !$db_error) {
    $r = $conn->query("SELECT * FROM students_master WHERE reg_no=$sid LIMIT 1");
    if ($r && $r->num_rows>0) {
        $student = $r->fetch_assoc();

        // Total working days (days with ANY attendance record)
        $r = $conn->query("SELECT COUNT(DISTINCT date_recorded) c FROM attendance_logs WHERE date_recorded>='$year_start'");
        $att_total = $r ? (int)$r->fetch_assoc()['c'] : 0;

        // Present
        $r = $conn->query("SELECT COUNT(*) c FROM attendance_logs WHERE student_id=$sid AND status='Present' AND date_recorded>='$year_start'");
        $att_present = $r ? (int)$r->fetch_assoc()['c'] : 0;

        // Leave
        $r = $conn->query("SELECT COUNT(*) c FROM student_leaves WHERE student_id=$sid AND leave_date>='$year_start'");
        $att_leave = $r ? (int)$r->fetch_assoc()['c'] : 0;

        // Absent = total - present - leave
        $att_absent = max(0, $att_total - $att_present - $att_leave);

        // Attendance percentage
        $att_pct = $att_total > 0 ? round(($att_present / $att_total) * 100) : 0;

        // Grade
        if ($att_pct>=90){$grade='A+';$grade_color='#059669';}
        elseif ($att_pct>=80){$grade='A';$grade_color='#0d9488';}
        elseif ($att_pct>=70){$grade='B';$grade_color='#c5a85c';}
        elseif ($att_pct>=60){$grade='C';$grade_color='#d97706';}
        else{$grade='D';$grade_color='#dc2626';}

        // Last 30 days daily data
        $d30_start = date('Y-m-d', strtotime('-30 days'));
        $r = $conn->query("SELECT date_recorded, status FROM attendance_logs WHERE student_id=$sid AND date_recorded>='$d30_start' ORDER BY date_recorded ASC");
        $att_map = array();
        if ($r) while ($row=$r->fetch_assoc()) $att_map[$row['date_recorded']] = $row['status'];

        $r2 = $conn->query("SELECT leave_date FROM student_leaves WHERE student_id=$sid AND leave_date>='$d30_start'");
        $leave_map = array();
        if ($r2) while ($row=$r2->fetch_assoc()) $leave_map[$row['leave_date']] = true;

        $cur = new DateTime($d30_start);
        $end = new DateTime($today);
        while ($cur <= $end) {
            $d = $cur->format('Y-m-d');
            $status = 'absent';
            if (isset($att_map[$d]) && $att_map[$d]==='Present') $status='present';
            elseif (isset($leave_map[$d])) $status='leave';
            $monthly_data[] = array('date'=>$d,'label'=>$cur->format('d'),'status'=>$status);
            $cur->modify('+1 day');
        }

        // Leave history
        $r = $conn->query("SELECT leave_date,end_date,reason FROM student_leaves WHERE student_id=$sid ORDER BY leave_date DESC LIMIT 20");
        if ($r) while ($row=$r->fetch_assoc()) $leave_history[] = $row;

        // Ranking in darja
        $darja = $conn->real_escape_string($student['darja']);
        $r = $conn->query("
            SELECT reg_no,
                COUNT(CASE WHEN al.status='Present' THEN 1 END) AS pres
            FROM students_master sm
            LEFT JOIN attendance_logs al ON al.student_id=sm.reg_no AND al.date_recorded>='$year_start'
            WHERE sm.darja='$darja' AND sm.status='Active'
            GROUP BY sm.reg_no ORDER BY pres DESC
        ");
        $total_darja = $r ? $r->num_rows : 0;
        if ($r) {
            $pos=1;
            while ($row=$r->fetch_assoc()) {
                if ($row['reg_no']==$sid) { $rank_darja=$pos; break; }
                $pos++;
            }
        }

        // Ranking in jamia
        $r = $conn->query("
            SELECT reg_no,
                COUNT(CASE WHEN al.status='Present' THEN 1 END) AS pres
            FROM students_master sm
            LEFT JOIN attendance_logs al ON al.student_id=sm.reg_no AND al.date_recorded>='$year_start'
            WHERE sm.status='Active'
            GROUP BY sm.reg_no ORDER BY pres DESC
        ");
        $total_jamia = $r ? $r->num_rows : 0;
        if ($r) {
            $pos=1;
            while ($row=$r->fetch_assoc()) {
                if ($row['reg_no']==$sid) { $rank_jamia=$pos; break; }
                $pos++;
            }
        }
    }
}

// ── Print / PDF Mode ──
if (isset($_GET['print']) && $student) {
    $att_pct_pr = $att_total>0?round(($att_present/$att_total)*100):0;
    ?><!DOCTYPE html><html lang="ur" dir="rtl"><head><meta charset="UTF-8">
<title>طالب علم رپورٹ — <?php echo htmlspecialchars($student['student']);?></title>
<link href="https://fonts.googleapis.com/css2?family=Noto+Nastaliq+Urdu:wght@400;700&family=DM+Sans:wght@400;700&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0;}body{font-family:'Noto Nastaliq Urdu',serif;direction:rtl;background:#fff;color:#111;padding:28px;font-size:13px;}
h1{font-size:24px;color:#012314;text-align:center;}h3{font-size:13px;color:#5c7368;text-align:center;margin-top:4px;}
.gl{height:2px;background:linear-gradient(90deg,transparent,#c5a85c,transparent);margin:12px 0 18px;}
.stu-hd{display:flex;align-items:center;gap:14px;background:#f5f5f0;border-radius:10px;padding:14px;margin-bottom:16px;border:1px solid #e0d8c8;}
.stu-av{width:52px;height:52px;border-radius:50%;background:#012314;border:2.5px solid #c5a85c;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.stu-info-name{font-size:18px;font-weight:700;color:#012314;}
.stu-info-meta{font-size:11px;color:#5c7368;margin-top:3px;}
.stats4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
.sc{border-radius:10px;padding:12px;text-align:center;}
.sc-lt{background:#f5f5f0;border:1px solid #e0d8c8;}
.sc-dk{background:#012314;border:1px solid rgba(197,168,92,.3);}
.sc-n{font-size:22px;font-weight:700;display:block;font-family:'DM Sans',sans-serif;}
.sc-lt .sc-n{color:#012314;}.sc-dk .sc-n{color:#e2cb8a;}
.sc-l{font-size:10px;}.sc-lt .sc-l{color:#5c7368;}.sc-dk .sc-l{color:rgba(197,168,92,.6);}
.pos4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
.pc{border-radius:10px;padding:12px;text-align:center;background:#f5f5f0;border:1px solid #e0d8c8;}
.pc-ic{font-size:22px;display:block;margin-bottom:4px;}
.pc-n{font-size:18px;font-weight:700;color:#012314;display:block;}
.pc-l{font-size:10px;color:#5c7368;}
.sec{font-size:13px;font-weight:700;color:#012314;border-bottom:2px solid rgba(197,168,92,.3);padding-bottom:6px;margin:16px 0 10px;}
table{width:100%;border-collapse:collapse;font-size:12px;}
thead th{background:#012314;color:#e2cb8a;padding:8px 10px;text-align:right;}
tbody td{padding:7px 10px;border-bottom:1px solid #eee;}
tbody tr:nth-child(even){background:#f9f9f7;}
.sign{display:flex;justify-content:space-between;margin-top:40px;}
.sb2{text-align:center;width:150px;}.sl2{border-top:1px solid #333;margin-bottom:5px;}
.ft{text-align:center;margin-top:16px;font-size:10px;color:#999;border-top:1px solid #eee;padding-top:10px;}
@media print {           
    .haq-sidebar,
    .haq-header,
    .haq-overlay,
    .sr-exports,
    .np { display:none !important; }
    .haq-main { margin-right:0 !important; }
    .haq-content { margin-top:0 !important; padding:0 !important; }
    .haq-layout { display:block !important; }
    a { text-decoration:none !important; color:inherit !important; }
    a[href]:after { content:none !important; }
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    @page { size:A4; margin:8mm; }
    body { font-size:11px !important; }
    .sr-stu-hd  { padding:10px !important; margin-bottom:8px !important; }
    .sr-stats   { gap:6px !important; margin-bottom:8px !important; }
    .sr-sc      { padding:8px !important; }
    .sr-sc-n    { font-size:18px !important; }
    .sr-charts  { gap:8px !important; margin-bottom:8px !important; }
    .sr-pos     { gap:6px !important; margin-bottom:8px !important; }
    .sr-pc      { padding:8px !important; }
    .sr-pc-ic   { font-size:18px !important; }
    .sr-pc-n    { font-size:15px !important; }
    .haq-table td, .haq-table th { padding:5px 8px !important; font-size:11px !important; }
    .sec-lbl    { margin-bottom:6px !important; }
    .gpanel     { margin-bottom:8px !important; }
    .gpanel-body{ padding:10px !important; }
    .cal-grid   { padding:8px !important; }
    .cal-dot    { width:20px !important; height:20px !important; font-size:8px !important; }
    canvas      { max-height:130px !important; }
}                   
</style></head><body>
<h1>جامعہ دارالعلوم حقانیہ</h1>
<h3>انفرادی حاضری رپورٹ</h3>
<div class="gl"></div>
<div class="stu-hd">
    <div class="stu-av">🎓</div>
    <div>
        <div class="stu-info-name"><?php echo htmlspecialchars($student['student']);?></div>
        <div class="stu-info-meta">والد: <?php echo htmlspecialchars($student['father']);?> | درجہ: <?php echo htmlspecialchars($student['darja']);?> | Reg# <?php echo $student['reg_no'];?></div>
        <div class="stu-info-meta">ضلع: <?php echo htmlspecialchars($student['Distt']??'—');?> | سال: <?php echo date('Y');?></div>
    </div>
    <div style="margin-right:auto;text-align:center;background:#012314;border-radius:8px;padding:10px 16px;">
        <span style="font-size:28px;font-weight:700;color:#e2cb8a;font-family:'DM Sans',sans-serif;display:block;"><?php echo $att_pct_pr;?>%</span>
        <span style="font-size:10px;color:rgba(197,168,92,.6);">حاضری شرح</span>
    </div>
</div>
<div class="stats4">
    <div class="sc sc-lt"><span class="sc-n"><?php echo $att_total;?></span><span class="sc-l">کل دن</span></div>
    <div class="sc sc-dk"><span class="sc-n"><?php echo $att_present;?></span><span class="sc-l">حاضر</span></div>
    <div class="sc sc-lt"><span class="sc-n"><?php echo $att_leave;?></span><span class="sc-l">رخصت</span></div>
    <div class="sc sc-dk"><span class="sc-n"><?php echo $att_absent;?></span><span class="sc-l">غیر حاضر</span></div>
</div>
<div class="sec">پوزیشن اور رینکنگ</div>
<div class="pos4">
    <div class="pc"><span class="pc-ic">🏅</span><span class="pc-n"><?php echo $rank_darja?:'—';?></span><span class="pc-l">درجے میں</span></div>
    <div class="pc"><span class="pc-ic">🏛️</span><span class="pc-n"><?php echo $rank_jamia?:'—';?></span><span class="pc-l">جامعہ میں</span></div>
    <div class="pc"><span class="pc-ic">⭐</span><span class="pc-n" style="color:<?php echo $grade_color;?>;"><?php echo $grade;?></span><span class="pc-l">گریڈ</span></div>
    <div class="pc"><span class="pc-ic">📊</span><span class="pc-n"><?php echo $att_pct_pr;?>%</span><span class="pc-l">فیصد</span></div>
</div>
<?php if (!empty($leave_history)): ?>
<div class="sec">رخصت کی تاریخ</div>
<table><thead><tr><th>#</th><th>تاریخ</th><th>اختتام</th><th>وجہ</th></tr></thead><tbody>
<?php foreach($leave_history as $i=>$lh):?>
<tr><td style="direction:ltr;text-align:center;"><?php echo $i+1;?></td><td style="direction:ltr;"><?php echo date('d M Y',strtotime($lh['leave_date']));?></td><td style="direction:ltr;"><?php echo $lh['end_date']?date('d M Y',strtotime($lh['end_date'])):'—';?></td><td><?php echo htmlspecialchars($lh['reason']?:'—');?></td></tr>
<?php endforeach;?>
</tbody></table>
<?php endif;?>
<div class="sign">
    <div class="sb2"><div class="sl2"></div><div style="font-size:11px;">دستخط ناظم</div></div>
    <div class="sb2"><div class="sl2"></div><div style="font-size:11px;">دستخط مہتمم</div></div>
    <div class="sb2"><div class="sl2"></div><div style="font-size:11px;">مہر دفتر</div></div>
</div>
<div class="ft">جامعہ دارالعلوم حقانیہ — نظام حاضری | رپورٹ تاریخ: <?php echo date('d M Y, h:i A');?></div>
<div class="np" style="text-align:center;margin-top:16px;">
    <button onclick="window.print()" style="padding:9px 24px;background:#012314;color:#e2cb8a;border:none;border-radius:8px;cursor:pointer;font-family:'Noto Nastaliq Urdu',serif;font-size:14px;margin-left:8px;">🖨️ پرنٹ / PDF</button>
    <button onclick="window.close()" style="padding:9px 24px;background:#eee;color:#333;border:none;border-radius:8px;cursor:pointer;font-size:13px;">✕ بند</button>
</div>
</body></html><?php exit; }

// ── Page data prep ──
$att_pct = $att_total>0 ? round(($att_present/$att_total)*100) : 0;
$chart_dates  = json_encode(array_column($monthly_data,'label'));
$chart_colors = json_encode(array_map(function($d){
    if($d['status']==='present') return 'rgba(5,150,105,.8)';
    if($d['status']==='leave')   return 'rgba(197,168,92,.8)';
    return 'rgba(220,38,38,.7)';
}, $monthly_data));
$chart_vals = json_encode(array_fill(0, count($monthly_data), 1));

$extra_head = '
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/xlsx@0.18.5/dist/xlsx.full.min.js"></script>
<style>
.sr-search-row{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.sr-inp{flex:1;padding:11px 14px;background:rgba(255,255,255,.85);border:1.5px solid rgba(1,35,20,.13);border-radius:11px;font-size:13.5px;font-family:"Noto Nastaliq Urdu",serif;color:#012314;outline:none;transition:all .22s;direction:rtl;min-width:200px;}
.sr-inp:focus{border-color:#012314;box-shadow:0 0 0 3px rgba(1,35,20,.07);background:#fff;}
.sr-btn{padding:11px 22px;background:linear-gradient(135deg,#012314,#023c22);color:#e2cb8a;border:none;border-radius:11px;font-family:"Noto Nastaliq Urdu",serif;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(1,35,20,.28);transition:all .22s;line-height:1.9;}
.sr-btn:hover{transform:translateY(-2px);}
.ac-wrap{position:relative;flex:1;}
.ac-list{position:absolute;top:100%;left:0;right:0;background:#fff;border:1.5px solid rgba(1,35,20,.15);border-radius:11px;box-shadow:0 8px 28px rgba(0,0,0,.12);z-index:100;max-height:220px;overflow-y:auto;display:none;margin-top:4px;}
.ac-list.open{display:block;}
.ac-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid rgba(1,35,20,.05);transition:background .15s;display:flex;align-items:center;justify-content:space-between;}
.ac-item:last-child{border-bottom:none;}.ac-item:hover{background:rgba(1,35,20,.04);}
.ac-name{font-family:"Noto Nastaliq Urdu",serif;font-size:13px;color:#012314;font-weight:700;}
.ac-meta{font-size:10.5px;color:#5c7368;direction:ltr;}
/* Student header */
.sr-stu-hd{background:linear-gradient(135deg,#00110c,#012314);border-radius:16px;padding:20px;margin-bottom:14px;border:1px solid rgba(197,168,92,.25);position:relative;overflow:hidden;}
.sr-stu-hd::before{content:"";position:absolute;top:-60px;left:-60px;width:220px;height:220px;border-radius:50%;background:rgba(197,168,92,.04);pointer-events:none;}
.sr-av{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#c5a85c,#e2cb8a);border:3px solid rgba(197,168,92,.4);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.sr-badges{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.sr-badge{padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;}
.sr-badge-g{background:rgba(5,150,105,.15);color:#4ade80;border:1px solid rgba(5,150,105,.3);}
.sr-badge-gold{background:rgba(197,168,92,.15);color:#e2cb8a;border:1px solid rgba(197,168,92,.3);}
.sr-badge-r{background:rgba(220,38,38,.15);color:#f87171;border:1px solid rgba(220,38,38,.3);}
/* Stats */
.sr-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;}
.sr-sc{border-radius:13px;padding:14px;text-align:center;animation:fadeUp .5s ease both;}
.sr-sc-lt{background:#faf8f2;border:1px solid #e8dfc7;box-shadow:0 3px 12px rgba(1,35,20,.07);}
.sr-sc-dk{background:linear-gradient(135deg,#00110c,#012314);border:1px solid rgba(197,168,92,.25);box-shadow:0 5px 20px rgba(0,0,0,.2);}
.sr-sc-n{font-size:24px;font-weight:700;display:block;font-family:"DM Sans",sans-serif;}
.sr-sc-lt .sr-sc-n{color:#012314;}.sr-sc-dk .sr-sc-n{color:#e2cb8a;}
.sr-sc-l{font-family:"Noto Nastaliq Urdu",serif;font-size:11px;line-height:1.9;}
.sr-sc-lt .sr-sc-l{color:#5c7368;}.sr-sc-dk .sr-sc-l{color:rgba(197,168,92,.6);}
/* Charts */
.sr-charts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.sr-donut-wrap{position:relative;display:flex;align-items:center;justify-content:center;padding:16px 0 8px;}
.sr-donut-center{position:absolute;text-align:center;pointer-events:none;}
.sr-donut-pct{font-size:28px;font-weight:700;color:#012314;display:block;font-family:"DM Sans",sans-serif;}
.sr-donut-lbl{font-family:"Noto Nastaliq Urdu",serif;font-size:10px;color:#5c7368;display:block;}
.sr-legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:10px;}
.sr-leg-item{display:flex;align-items:center;gap:5px;font-family:"Noto Nastaliq Urdu",serif;font-size:11px;color:#5c7368;}
.sr-leg-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;}
/* Position cards */
.sr-pos{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px;}
.sr-pc{border-radius:13px;padding:14px;text-align:center;background:#faf8f2;border:1px solid #e8dfc7;animation:fadeUp .5s ease both;}
.sr-pc:hover{transform:translateY(-3px);}
.sr-pc-ic{font-size:26px;display:block;margin-bottom:6px;}
.sr-pc-n{font-size:20px;font-weight:700;display:block;font-family:"DM Sans",sans-serif;color:#012314;}
.sr-pc-l{font-family:"Noto Nastaliq Urdu",serif;font-size:11px;color:#5c7368;display:block;}
.sr-pc-sub{font-size:10px;color:#5c7368;margin-top:3px;display:block;}
/* Export buttons */
.sr-exports{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.sr-exp{flex:1;padding:11px;border-radius:11px;border:1.5px solid rgba(1,35,20,.13);background:#fff;font-family:"Noto Nastaliq Urdu",serif;font-size:13px;cursor:pointer;color:#012314;text-align:center;transition:all .2s;min-width:120px;}
.sr-exp:hover{background:rgba(1,35,20,.05);}
.sr-exp-primary{background:linear-gradient(135deg,#012314,#023c22);color:#e2cb8a;border-color:#012314;}
.sr-exp-primary:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(1,35,20,.3);}
/* Calendar dots */
.cal-grid{display:flex;flex-wrap:wrap;gap:4px;padding:14px;}
.cal-dot{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;font-family:"DM Sans",sans-serif;font-weight:700;flex-shrink:0;}
.cal-present{background:#059669;}
.cal-leave{background:#c5a85c;}
.cal-absent{background:rgba(220,38,38,.6);}
@media(max-width:900px){.sr-stats{grid-template-columns:repeat(2,1fr);}.sr-charts{grid-template-columns:1fr;}.sr-pos{grid-template-columns:repeat(2,1fr);}}
</style>';

$page_title = 'طالب علم رپورٹ';
include 'leter.php';
include 'sidebar.php';
?>

<!-- ════ SEARCH ════ -->
<div class="sec-lbl"><div class="sec-dot"></div><h2 class="sec-text">طالب علم رپورٹ</h2><div class="sec-line"></div></div>

<div class="sr-search-row">
    <div class="ac-wrap">
        <input type="text" id="srSearch" class="sr-inp" placeholder="نام یا رجسٹریشن نمبر لکھیں..."
               value="<?php echo $student ? htmlspecialchars($student['student'].' (#'.$student['reg_no'].')') : htmlspecialchars($search_q); ?>"
               oninput="srAC(this.value)" autocomplete="off">
        <div class="ac-list" id="srAL"></div>
    </div>
    <button class="sr-btn" onclick="srGo()">🔍 رپورٹ دیکھیں</button>
</div>

<?php if (!$student && !$sid): ?>
<!-- Empty state -->
<div class="gpanel">
    <div style="text-align:center;padding:60px 20px;">
        <div style="font-size:48px;margin-bottom:14px;">📊</div>
        <h3 style="font-family:'Noto Nastaliq Urdu',serif;font-size:18px;color:#012314;margin-bottom:8px;line-height:1.9;">طالب علم کا نام یا نمبر لکھیں</h3>
        <p style="font-size:12px;color:#5c7368;">اوپر سرچ باکس میں نام یا رجسٹریشن نمبر لکھ کر رپورٹ دیکھیں</p>
    </div>
</div>

<?php elseif (!$student): ?>
<!-- Not found -->
<div class="haq-alert haq-alert-error">❌ یہ رجسٹریشن نمبر موجود نہیں — <?php echo $sid; ?></div>

<?php else: ?>

<!-- ════ EXPORT BUTTONS ════ -->
<div class="sr-exports">
    <button class="sr-exp sr-exp-primary" onclick="printReport()">🖨️ PDF / پرنٹ</button>
    <button class="sr-exp" onclick="exportExcel()">📊 Excel ڈاؤنلوڈ</button>
    <a href="leave.php" class="sr-exp" style="text-decoration:none;display:flex;align-items:center;justify-content:center;">← رخصت صفحہ</a>
</div>

<!-- ════ STUDENT HEADER ════ -->
<div class="sr-stu-hd">
    <div style="display:flex;align-items:center;gap:14px;">
        <div class="sr-av">🎓</div>
        <div style="flex:1;">
            <div style="font-family:'Noto Nastaliq Urdu',serif;font-size:20px;font-weight:700;color:#fff;"><?php echo htmlspecialchars($student['student']);?></div>
            <div style="font-size:12px;color:rgba(197,168,92,.7);margin-top:3px;">والد: <?php echo htmlspecialchars($student['father']??'—');?> | درجہ: <?php echo htmlspecialchars($student['darja']);?> | Reg# <?php echo $student['reg_no'];?></div>
            <div style="font-size:11px;color:rgba(255,255,255,.4);margin-top:2px;">ضلع: <?php echo htmlspecialchars($student['Distt']??'—');?> | سال: <?php echo date('Y');?></div>
        </div>
        <div style="text-align:center;flex-shrink:0;">
            <span style="font-size:38px;font-weight:700;color:<?php echo $grade_color;?>;display:block;font-family:'DM Sans',sans-serif;"><?php echo $grade;?></span>
            <span style="font-size:10px;color:rgba(255,255,255,.4);">گریڈ</span>
        </div>
    </div>
    <div class="sr-badges">
        <?php if ($att_pct>=75): ?>
        <span class="sr-badge sr-badge-g">✅ حاضری <?php echo $att_pct;?>%</span>
        <?php elseif ($att_pct>=50): ?>
        <span class="sr-badge sr-badge-gold">⚠️ حاضری <?php echo $att_pct;?>%</span>
        <?php else: ?>
        <span class="sr-badge sr-badge-r">❌ حاضری <?php echo $att_pct;?>%</span>
        <?php endif; ?>
        <?php if ($rank_darja): ?>
        <span class="sr-badge sr-badge-gold">🏅 درجے میں #<?php echo $rank_darja;?></span>
        <?php endif; ?>
        <?php if ($rank_jamia): ?>
        <span class="sr-badge sr-badge-gold">🏛️ جامعہ میں #<?php echo $rank_jamia;?></span>
        <?php endif; ?>
    </div>
</div>

<!-- ════ STAT CARDS ════ -->
<div class="sr-stats">
    <div class="sr-sc sr-sc-lt" style="animation-delay:.06s">
        <span class="sr-sc-n"><?php echo $att_total;?></span>
        <span class="sr-sc-l">کل دن (سالانہ)</span>
    </div>
    <div class="sr-sc sr-sc-dk" style="animation-delay:.12s">
        <span class="sr-sc-n"><?php echo $att_present;?></span>
        <span class="sr-sc-l">کل حاضر</span>
    </div>
    <div class="sr-sc sr-sc-lt" style="animation-delay:.18s">
        <span class="sr-sc-n"><?php echo $att_leave;?></span>
        <span class="sr-sc-l">کل رخصتیں</span>
    </div>
    <div class="sr-sc sr-sc-dk" style="animation-delay:.24s">
        <span class="sr-sc-n"><?php echo $att_absent;?></span>
        <span class="sr-sc-l">غیر حاضر</span>
    </div>
</div>

<!-- ════ CHARTS ════ -->
<div class="sec-lbl"><div class="sec-dot"></div><h2 class="sec-text">حاضری گراف</h2><div class="sec-line"></div></div>
<div class="sr-charts">

    <!-- Donut -->
    <div class="gpanel">
        <div class="gpanel-head"><div class="gpanel-dot"></div><span class="gpanel-title">مجموعی حاضری (سالانہ)</span></div>
        <div class="gpanel-body">
            <div class="sr-donut-wrap">
                <canvas id="donutChart" style="max-width:180px;max-height:180px;"></canvas>
                <div class="sr-donut-center">
                    <span class="sr-donut-pct"><?php echo $att_pct;?>%</span>
                    <span class="sr-donut-lbl">حاضری</span>
                </div>
            </div>
            <div class="sr-legend">
                <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#059669;"></div>حاضر <?php echo $att_present;?></div>
                <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#c5a85c;"></div>رخصت <?php echo $att_leave;?></div>
                <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#dc2626;"></div>غیر حاضر <?php echo $att_absent;?></div>
            </div>
        </div>
    </div>

    <!-- Bar chart (last 30 days) -->
    <div class="gpanel">
        <div class="gpanel-head"><div class="gpanel-dot"></div><span class="gpanel-title">آخری ۳۰ دن</span></div>
        <div class="gpanel-body">
            <div style="position:relative;height:180px;">
                <canvas id="barChart"></canvas>
            </div>
            <div class="sr-legend" style="margin-top:8px;">
                <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#059669;"></div>حاضر</div>
                <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#c5a85c;"></div>رخصت</div>
                <div class="sr-leg-item"><div class="sr-leg-dot" style="background:rgba(220,38,38,.7);"></div>غیر حاضر</div>
            </div>
        </div>
    </div>
</div>

<!-- ════ CALENDAR DOTS ════ -->
<div class="gpanel" style="margin-bottom:14px;">
    <div class="gpanel-head"><div class="gpanel-dot"></div><span class="gpanel-title">آخری ۳۰ دن — تفصیل</span></div>
    <div class="cal-grid">
        <?php foreach ($monthly_data as $d): ?>
        <div class="cal-dot cal-<?php echo $d['status'];?>" title="<?php echo $d['date'];?>">
            <?php echo (int)$d['label'];?>
        </div>
        <?php endforeach; ?>
    </div>
    <div style="padding:0 14px 12px;display:flex;gap:12px;">
        <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#059669;"></div>حاضر</div>
        <div class="sr-leg-item"><div class="sr-leg-dot" style="background:#c5a85c;"></div>رخصت</div>
        <div class="sr-leg-item"><div class="sr-leg-dot" style="background:rgba(220,38,38,.6);"></div>غیر حاضر</div>
    </div>
</div>

<!-- ════ POSITION CARDS ════ -->
<div class="sec-lbl"><div class="sec-dot"></div><h2 class="sec-text">پوزیشن اور رینکنگ</h2><div class="sec-line"></div></div>
<div class="sr-pos">
    <div class="sr-pc" style="animation-delay:.06s">
        <span class="sr-pc-ic">🏅</span>
        <span class="sr-pc-n"><?php echo $rank_darja ? '#'.$rank_darja : '—'; ?></span>
        <span class="sr-pc-l">درجے میں پوزیشن</span>
        <span class="sr-pc-sub"><?php echo htmlspecialchars($student['darja']);?> — <?php echo $total_darja;?> طلبہ</span>
    </div>
    <div class="sr-pc" style="animation-delay:.12s">
        <span class="sr-pc-ic">🏛️</span>
        <span class="sr-pc-n"><?php echo $rank_jamia ? '#'.$rank_jamia : '—'; ?></span>
        <span class="sr-pc-l">جامعہ میں پوزیشن</span>
        <span class="sr-pc-sub">کل <?php echo $total_jamia;?> طلبہ</span>
    </div>
    <div class="sr-pc" style="animation-delay:.18s">
        <span class="sr-pc-ic">⭐</span>
        <span class="sr-pc-n" style="color:<?php echo $grade_color;?>;"><?php echo $grade;?></span>
        <span class="sr-pc-l">گریڈ</span>
        <span class="sr-pc-sub"><?php echo $att_pct;?>% حاضری</span>
    </div>
    <div class="sr-pc" style="animation-delay:.24s">
        <span class="sr-pc-ic">📋</span>
        <span class="sr-pc-n"><?php echo count($leave_history);?></span>
        <span class="sr-pc-l">کل رخصتیں</span>
        <span class="sr-pc-sub">سالانہ ریکارڈ</span>
    </div>
</div>

<!-- ════ LEAVE HISTORY ════ -->
<?php if (!empty($leave_history)): ?>
<div class="sec-lbl"><div class="sec-dot"></div><h2 class="sec-text">رخصت کی تاریخ</h2><div class="sec-line"></div></div>
<div class="gpanel">
    <div class="gpanel-head"><div class="gpanel-dot"></div><span class="gpanel-title">آخری <?php echo count($leave_history);?> رخصتیں</span></div>
    <div style="overflow-x:auto;">
        <table class="haq-table" id="leaveHistTable">
            <thead><tr><th>#</th><th>آغاز تاریخ</th><th>اختتام</th><th>وجہ</th></tr></thead>
            <tbody>
            <?php foreach ($leave_history as $i=>$lh): ?>
            <tr>
                <td style="color:#5c7368;font-size:11px;"><?php echo $i+1;?></td>
                <td style="font-family:'DM Sans',sans-serif;font-size:12px;direction:ltr;"><?php echo date('d M Y',strtotime($lh['leave_date']));?></td>
                <td style="font-family:'DM Sans',sans-serif;font-size:12px;direction:ltr;"><?php echo $lh['end_date'] ? date('d M Y',strtotime($lh['end_date'])) : '—'; ?></td>
                <td style="font-family:'Noto Nastaliq Urdu',serif;font-size:11px;color:#5c7368;"><?php echo htmlspecialchars($lh['reason']?:'—');?></td>
            </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>
<?php endif; ?>

<!-- HIDDEN data for Excel -->
<div id="excelData" style="display:none;"
     data-name="<?php echo htmlspecialchars($student['student']);?>"
     data-reg="<?php echo $student['reg_no'];?>"
     data-darja="<?php echo htmlspecialchars($student['darja']);?>"
     data-father="<?php echo htmlspecialchars($student['father']??'');?>"
     data-total="<?php echo $att_total;?>"
     data-present="<?php echo $att_present;?>"
     data-leave="<?php echo $att_leave;?>"
     data-absent="<?php echo $att_absent;?>"
     data-pct="<?php echo $att_pct;?>"
     data-grade="<?php echo $grade;?>"
     data-rank-darja="<?php echo $rank_darja;?>"
     data-rank-jamia="<?php echo $rank_jamia;?>">
</div>

<?php endif; ?>

<!-- ════ JAVASCRIPT ════ -->
<script>
/* Autocomplete */
var srT=null;
function srAC(val){
    clearTimeout(srT);var al=document.getElementById('srAL');
    if(!val||val.length<1){al.classList.remove('open');return;}
    srT=setTimeout(function(){
        fetch('student_report.php?search_name='+encodeURIComponent(val)).then(function(r){return r.json();}).then(function(data){
            if(!data.length){al.classList.remove('open');return;}
            al.innerHTML=data.map(function(d){return '<div class="ac-item" onclick="srSelect('+d.reg_no+')"><span class="ac-name">'+d.student+'</span><span class="ac-meta">'+d.reg_no+' · '+d.darja+'</span></div>';}).join('');
            al.classList.add('open');
        }).catch(function(){al.classList.remove('open');});
    },280);
}
function srSelect(id){ window.location.href='student_report.php?id='+id; }
function srGo(){
    var val=document.getElementById('srSearch').value.trim();
    if(/^\d+$/.test(val)) srSelect(val);
    else { var al=document.getElementById('srAL'); if(al.querySelector('.ac-item')) al.querySelector('.ac-item').click(); }
}
document.addEventListener('click',function(e){
    if(document.getElementById('srAL')&&!document.getElementById('srSearch').contains(e.target))
        document.getElementById('srAL').classList.remove('open');
});
document.getElementById('srSearch').addEventListener('keydown',function(e){ if(e.key==='Enter')srGo(); });

<?php if ($student): ?>
/* Donut Chart */
(function(){
    var ctx=document.getElementById('donutChart');
    if(!ctx)return;
    var p=<?php echo (int)$att_present;?>,l=<?php echo (int)$att_leave;?>,a=<?php echo (int)$att_absent;?>;
    new Chart(ctx,{
        type:'doughnut',
        data:{
            labels:['حاضر','رخصت','غیر حاضر'],
            datasets:[{
                data:[p||0.001,l||0.001,a||0.001],
                backgroundColor:['rgba(5,150,105,.85)','rgba(197,168,92,.82)','rgba(220,38,38,.82)'],
                borderColor:['#059669','#c5a85c','#dc2626'],
                borderWidth:2.5,hoverOffset:10
            }]
        },
        options:{
            cutout:'70%',
            animation:{animateRotate:true,duration:1600,easing:'easeOutQuart'},
            plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){var tot=p+l+a;var pct=tot>0?Math.round((c.raw/tot)*100):0;return ' '+c.label+': '+Math.round(c.raw)+' ('+pct+'%)';}}}
        }}
    });
})();

/* Bar Chart */
(function(){
    var ctx=document.getElementById('barChart');
    if(!ctx)return;
    var data=<?php echo $chart_dates;?>;
    var colors=<?php echo $chart_colors;?>;
    new Chart(ctx,{
        type:'bar',
        data:{
            labels:data,
            datasets:[{
                data:<?php echo $chart_vals;?>,
                backgroundColor:colors,
                borderColor:colors,
                borderWidth:1,borderRadius:5,borderSkipped:false
            }]
        },
        options:{
            responsive:true,maintainAspectRatio:false,
            animation:{duration:1400,easing:'easeOutQuart'},
            scales:{
                x:{ticks:{color:'#6b8a78',font:{size:8},maxRotation:45},grid:{display:false}},
                y:{display:false,max:1.5}
            },
            plugins:{legend:{display:false},tooltip:{callbacks:{label:function(c){var statuses=<?php echo json_encode(array_column($monthly_data,'status'));?>;var s=statuses[c.dataIndex];return s==='present'?'✅ حاضر':s==='leave'?'📋 رخصت':'❌ غیر حاضر';}}}}
        }
    });
})();

/* Print */
function printReport(){
    window.open('student_report.php?id=<?php echo $sid;?>&print=1','_blank');
}

/* Excel Export */
function exportExcel(){
    var ed=document.getElementById('excelData');
    if(!ed){alert('کوئی ڈیٹا نہیں');return;}
    var name=ed.dataset.name;
    var wb=XLSX.utils.book_new();
    var info=[
        ['طالب علم رپورٹ — جامعہ دارالعلوم حقانیہ','','',''],
        ['','','',''],
        ['نام',name,'',''],
        ['رجسٹریشن',ed.dataset.reg,'',''],
        ['درجہ',ed.dataset.darja,'',''],
        ['والد',ed.dataset.father,'',''],
        ['','','',''],
        ['خلاصہ','','',''],
        ['کل دن',ed.dataset.total,'حاضری شرح',ed.dataset.pct+'%'],
        ['کل حاضر',ed.dataset.present,'گریڈ',ed.dataset.grade],
        ['کل رخصت',ed.dataset.leave,'درجے میں پوزیشن','#'+ed.dataset.rankDarja],
        ['غیر حاضر',ed.dataset.absent,'جامعہ میں پوزیشن','#'+ed.dataset.rankJamia],
    ];
    var ws1=XLSX.utils.aoa_to_sheet(info);
    XLSX.utils.book_append_sheet(wb,ws1,'خلاصہ');

    /* Leave history */
    var leaveData=[['#','آغاز تاریخ','اختتام','وجہ']];
    document.querySelectorAll('#leaveHistTable tbody tr').forEach(function(row,i){
        var cells=row.querySelectorAll('td');
        if(cells.length>=4) leaveData.push([i+1,cells[1].textContent.trim(),cells[2].textContent.trim(),cells[3].textContent.trim()]);
    });
    if(leaveData.length>1){var ws2=XLSX.utils.aoa_to_sheet(leaveData);XLSX.utils.book_append_sheet(wb,ws2,'رخصت ریکارڈ');}

    XLSX.writeFile(wb,'student_report_'+ed.dataset.reg+'.xlsx');
}
<?php endif; ?>
</script>

<?php include '_footer.php'; ?>