<?php
declare(strict_types=1);

if (session_status() !== PHP_SESSION_ACTIVE) {
    session_start();
}

require_once __DIR__ . '/../db.php';
require_once __DIR__ . '/../inc/layout.php';

if (empty($_SESSION['user_id'])) {
    header('Location: ' . u('index.html?e=1'));
    exit;
}

if (!in_array(current_role(), ['OWNER', 'ADMIN', 'LAWYER', 'STAFF'], true)) {
    http_response_code(403);
    exit('غير مصرح');
}

function contract_h($v): string
{
    return htmlspecialchars((string)$v, ENT_QUOTES, 'UTF-8');
}

function contract_table_exists(PDO $pdo, string $table): bool
{
    static $cache = [];
    if (isset($cache[$table])) {
        return $cache[$table];
    }

    try {
        $st = $pdo->prepare("
            SELECT COUNT(*)
            FROM information_schema.tables
            WHERE table_schema = DATABASE()
              AND table_name = ?
        ");
        $st->execute([$table]);
        $cache[$table] = ((int)$st->fetchColumn() > 0);
        return $cache[$table];
    } catch (Throwable $e) {
        return false;
    }
}

function contract_post(string $key): string
{
    $text = trim((string)($_POST[$key] ?? ''));
    $text = str_replace(["\r\n", "\r"], "\n", $text);
    $text = preg_replace('/[ \t]+/u', ' ', $text);
    $text = preg_replace("/\n{3,}/u", "\n\n", $text);
    return trim((string)$text);
}

function contract_excerpt(string $text, int $limit = 240): string
{
    $text = trim($text);
    if (mb_strlen($text) <= $limit) {
        return $text;
    }
    return mb_substr($text, 0, $limit) . '...';
}

function contract_detect_type(string $text, string $inputType): string
{
    if ($inputType !== '') {
        return $inputType;
    }

    $t = mb_strtolower($text);

    $map = [
        'عقد عمل' => ['عقد عمل', 'موظف', 'العامل', 'صاحب العمل', 'راتب', 'فترة التجربة'],
        'عقد إيجار' => ['إيجار', 'المؤجر', 'المستأجر', 'بدل الإيجار', 'العين المؤجرة'],
        'عقد بيع' => ['بيع', 'المشتري', 'البائع', 'الثمن', 'المبيع'],
        'عقد خدمات' => ['خدمات', 'مزود الخدمة', 'مقدم الخدمة', 'مقابل الخدمات'],
        'عقد مقاولة' => ['مقاولة', 'المقاول', 'صاحب العمل', 'الأعمال', 'مدة التنفيذ'],
        'عقد شراكة' => ['شراكة', 'الشركاء', 'نسب الأرباح', 'الخسائر', 'رأس المال'],
        'اتفاقية سرية' => ['سرية', 'عدم إفشاء', 'المعلومات السرية', 'nda'],
        'عقد توريد' => ['توريد', 'المورد', 'الطلبية', 'التسليم', 'المواد'],
        'عقد استشارات' => ['استشارات', 'المستشار', 'أتعاب', 'الخدمات الاستشارية'],
    ];

    foreach ($map as $type => $keywords) {
        foreach ($keywords as $kw) {
            if (mb_stripos($t, mb_strtolower($kw)) !== false) {
                return $type;
            }
        }
    }

    return 'عقد عام';
}

function contract_has_any(string $text, array $keywords): bool
{
    $text = mb_strtolower($text);
    foreach ($keywords as $kw) {
        if (mb_stripos($text, mb_strtolower($kw)) !== false) {
            return true;
        }
    }
    return false;
}

function contract_detect_missing_clauses(string $text, string $type): array
{
    $items = [];

    if (!contract_has_any($text, ['المدة', 'مدة العقد', 'سريان', 'يبدأ', 'ينتهي'])) {
        $items[] = 'لا يظهر بند واضح يحدد مدة العقد أو تاريخ بدايته ونهايته.';
    }

    if (!contract_has_any($text, ['القيمة', 'الثمن', 'البدل', 'الأجر', 'الرسوم', 'المقابل المالي'])) {
        $items[] = 'لا يظهر بند مالي واضح يحدد قيمة العقد أو المقابل المالي وآلية السداد.';
    }

    if (!contract_has_any($text, ['الاختصاص', 'المحكمة المختصة', 'القانون الواجب التطبيق', 'القانون المطبق'])) {
        $items[] = 'لا يظهر بند واضح بشأن الاختصاص القضائي أو القانون الواجب التطبيق.';
    }

    if (!contract_has_any($text, ['الفسخ', 'إنهاء العقد', 'إنهاؤه', 'الإنهاء'])) {
        $items[] = 'لا يظهر بند منظم لحالات الفسخ أو الإنهاء وآثارهما.';
    }

    if (!contract_has_any($text, ['الإشعار', 'إخطار', 'تبليغ', 'التنبيه'])) {
        $items[] = 'لا يظهر بند واضح بشأن الإشعارات والإخطارات الرسمية بين الأطراف.';
    }

    if (!contract_has_any($text, ['المسؤولية', 'التعويض', 'الأضرار', 'الإخلال'])) {
        $items[] = 'لا يظهر بند كافٍ بشأن المسؤولية والتعويض عند الإخلال.';
    }

    if (in_array($type, ['اتفاقية سرية', 'عقد استشارات', 'عقد خدمات'], true)
        && !contract_has_any($text, ['سرية', 'عدم إفشاء', 'المعلومات السرية'])) {
        $items[] = 'ينصح بإضافة بند سرية وعدم إفشاء ملائم لطبيعة العلاقة التعاقدية.';
    }

    if ($type === 'عقد عمل' && !contract_has_any($text, ['فترة التجربة', 'الإجازة', 'ساعات العمل'])) {
        $items[] = 'ينصح بتوضيح فترة التجربة أو الإجازات أو ساعات العمل في عقد العمل.';
    }

    return $items;
}

function contract_detect_risks(string $text, string $type): array
{
    $risks = [];

    if (!contract_has_any($text, ['غرامة', 'جزاء', 'تعويض', 'شرط جزائي'])) {
        $risks[] = 'قد يكون العقد ضعيف الحماية عند الإخلال لعدم وضوح الجزاءات أو التعويضات.';
    }

    if (!contract_has_any($text, ['قوة قاهرة', 'الظروف الطارئة'])) {
        $risks[] = 'لا يظهر بند قوة قاهرة أو ظروف طارئة، وقد يسبب ذلك نزاعًا عند تعذر التنفيذ.';
    }

    if (!contract_has_any($text, ['تسوية ودية', 'تحكيم', 'وساطة', 'فض النزاع'])) {
        $risks[] = 'لا يوجد تنظيم واضح لآلية تسوية النزاعات قبل أو بدل اللجوء للقضاء.';
    }

    if ($type === 'عقد شراكة' && !contract_has_any($text, ['نسب الأرباح', 'الخسائر', 'الإدارة', 'الانسحاب'])) {
        $risks[] = 'في عقود الشراكة يجب تحديد الإدارة ونسب الأرباح والخسائر وآلية الانسحاب بوضوح.';
    }

    if ($type === 'عقد إيجار' && !contract_has_any($text, ['الصيانة', 'الضمان', 'التأمين'])) {
        $risks[] = 'في عقود الإيجار يفضّل تنظيم الصيانة والضمان والتأمين لتقليل الخلافات.';
    }

    if ($type === 'عقد بيع' && !contract_has_any($text, ['التسليم', 'المواصفات', 'الضمان'])) {
        $risks[] = 'في عقود البيع يجب توضيح التسليم والمواصفات والضمان بشكل أدق.';
    }

    return $risks;
}

function contract_detect_strengths(string $text): array
{
    $strengths = [];

    if (contract_has_any($text, ['الطرف الأول', 'الطرف الثاني', 'الطرفين'])) {
        $strengths[] = 'العقد يتضمن تعريفًا مبدئيًا بأطراف العلاقة التعاقدية.';
    }

    if (contract_has_any($text, ['المدة', 'مدة العقد', 'سريان'])) {
        $strengths[] = 'توجد إشارة إلى مدة العقد أو سريانه.';
    }

    if (contract_has_any($text, ['القيمة', 'الثمن', 'البدل', 'المقابل المالي', 'الأجر'])) {
        $strengths[] = 'يتضمن العقد بندًا ماليًا أو إشارة للمقابل المالي.';
    }

    if (contract_has_any($text, ['الاختصاص', 'المحكمة المختصة', 'القانون الواجب التطبيق'])) {
        $strengths[] = 'يتضمن العقد بندًا للاختصاص القضائي أو القانون الواجب التطبيق.';
    }

    if (contract_has_any($text, ['الفسخ', 'إنهاء العقد'])) {
        $strengths[] = 'يتضمن العقد أحكامًا خاصة بالفسخ أو الإنهاء.';
    }

    if (!$strengths) {
        $strengths[] = 'العقد يحتوي على نص قابل للمراجعة والتحسين القانوني.';
    }

    return $strengths;
}

function contract_extract_parties(string $partyA, string $partyB, string $text): string
{
    if ($partyA !== '' || $partyB !== '') {
        return trim($partyA . ($partyA !== '' && $partyB !== '' ? ' / ' : '') . $partyB);
    }

    if (contract_has_any($text, ['الطرف الأول', 'الطرف الثاني'])) {
        return 'تم رصد وجود طرف أول وطرف ثانٍ داخل النص، ويحتاجان لاستخراج يدوي أدق.';
    }

    return 'غير محدد بوضوح';
}

function contract_extract_duration(string $inputDuration, string $text): string
{
    if ($inputDuration !== '') {
        return $inputDuration;
    }

    if (preg_match('/مدة\s+العقد.{0,40}/u', $text, $m)) {
        return trim($m[0]);
    }

    if (preg_match('/سنة|سنوات|شهر|أشهر|يوم|أيام/u', $text)) {
        return 'توجد إشارة محتملة لمدة زمنية داخل النص وتحتاج مراجعة يدوية.';
    }

    return 'غير واضحة';
}

function contract_extract_value(string $inputValue, string $text): string
{
    if ($inputValue !== '') {
        return $inputValue;
    }

    if (preg_match('/\d[\d\.,\s]*(درهم|AED|دولار|ريال|USD)/ui', $text, $m)) {
        return trim($m[0]);
    }

    if (contract_has_any($text, ['القيمة', 'الثمن', 'الأجر', 'المقابل المالي'])) {
        return 'توجد إشارة مالية داخل النص، لكنها تحتاج تحديدًا أدق.';
    }

    return 'غير واضحة';
}

function contract_build_analysis(array $d): array
{
    $text = trim($d['contract_text']);
    $type = contract_detect_type($text, $d['contract_type']);

    $summary = 'هذا تحليل أولي آلي للعقد مبني على النص المدخل، ويحتاج دائمًا إلى مراجعة قانونية بشرية قبل الاعتماد أو التوقيع النهائي.';

    $strengths = contract_detect_strengths($text);
    $risks = contract_detect_risks($text, $type);
    $missing = contract_detect_missing_clauses($text, $type);

    $recommendations = [
        'مراجعة هوية الأطراف وصفاتهم القانونية وسلطات التوقيع.',
        'التأكد من تطابق البنود المالية مع الاتفاق التجاري الفعلي.',
        'إضافة أو تحسين بند الاختصاص القضائي والقانون الواجب التطبيق.',
        'مراجعة أحكام الفسخ والإنهاء والتعويضات والجزاءات.',
    ];

    if ($type === 'اتفاقية سرية') {
        $recommendations[] = 'التأكد من تعريف المعلومات السرية ومدد الالتزام بالسرية والاستثناءات.';
    }

    if ($type === 'عقد عمل') {
        $recommendations[] = 'مراجعة التوافق مع قانون العمل المعمول به واللوائح المرتبطة به.';
    }

    if ($type === 'عقد شراكة') {
        $recommendations[] = 'توضيح الإدارة والتوقيع البنكي وتوزيع الأرباح والخسائر وآلية الخروج من الشراكة.';
    }

    if (!$risks) {
        $risks[] = 'لا توجد مؤشرات خطر بارزة من القراءة الأولية، مع ضرورة المراجعة القانونية التفصيلية.';
    }

    if (!$missing) {
        $missing[] = 'لا توجد بنود ناقصة ظاهرة من القراءة الأولية، لكن قد يلزم تدقيق تفصيلي حسب نوع العقد.';
    }

    return [
        'contract_type' => $type,
        'parties'       => contract_extract_parties($d['party_a'], $d['party_b'], $text),
        'duration'      => contract_extract_duration($d['contract_duration'], $text),
        'value'         => contract_extract_value($d['contract_value'], $text),
        'summary'       => $summary,
        'strengths'     => array_values(array_unique($strengths)),
        'risks'         => array_values(array_unique($risks)),
        'missing'       => array_values(array_unique($missing)),
        'recommendations' => array_values(array_unique($recommendations)),
    ];
}

$pdo = db();
if (!$pdo instanceof PDO) {
    http_response_code(500);
    exit('DB not ready');
}

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

$msg = '';
$err = '';
$analysis = null;

$form = [
    'contract_name'     => '',
    'contract_type'     => '',
    'party_a'           => '',
    'party_b'           => '',
    'contract_duration' => '',
    'contract_value'    => '',
    'contract_text'     => '',
    'notes'             => '',
];

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $form = [
        'contract_name'     => contract_post('contract_name'),
        'contract_type'     => contract_post('contract_type'),
        'party_a'           => contract_post('party_a'),
        'party_b'           => contract_post('party_b'),
        'contract_duration' => contract_post('contract_duration'),
        'contract_value'    => contract_post('contract_value'),
        'contract_text'     => contract_post('contract_text'),
        'notes'             => contract_post('notes'),
    ];

    if ($form['contract_text'] === '') {
        $err = 'يرجى إدخال نص العقد لتحليله.';
    } else {
        $analysis = contract_build_analysis($form);

        if (isset($_POST['save_analysis']) && $_POST['save_analysis'] === '1') {
            try {
                if (contract_table_exists($pdo, 'legal_ai_contracts')) {
                    $st = $pdo->prepare("
                        INSERT INTO legal_ai_contracts
                        (contract_name, contract_type, party_a, party_b, contract_duration, contract_value, contract_text, analysis_summary, created_by, created_at)
                        VALUES
                        (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())
                    ");

                    $st->execute([
                        $form['contract_name'],
                        $analysis['contract_type'],
                        $form['party_a'],
                        $form['party_b'],
                        $form['contract_duration'],
                        $form['contract_value'],
                        $form['contract_text'],
                        $analysis['summary'],
                        (int)($_SESSION['user_id'] ?? 0),
                    ]);

                    $msg = 'تم تحليل العقد وحفظ النتيجة بنجاح.';
                } else {
                    $msg = 'تم تحليل العقد بنجاح. جدول legal_ai_contracts غير موجود لذلك لم يتم الحفظ.';
                }
            } catch (Throwable $e) {
                $err = 'تم تحليل العقد لكن تعذر حفظ النتيجة: ' . $e->getMessage();
            }
        } else {
            $msg = 'تم تحليل العقد بنجاح.';
        }
    }
}

render_layout_start('تحليل العقود بالذكاء القانوني');
?>

<style>
.contract-page{
  width:100%;
  max-width:100%;
}
.contract-hero{
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(135deg, rgba(0,106,122,.35), rgba(0,66,79,.18));
  border-radius:22px;
  padding:24px;
  margin-bottom:18px;
  box-shadow:0 10px 30px rgba(0,0,0,.14);
}
.contract-hero h1{
  margin:0 0 8px;
  font-size:28px;
  line-height:1.3;
}
.contract-hero p{
  margin:0;
  color:rgba(255,255,255,.78);
  line-height:1.8;
  font-size:14px;
}
.contract-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:16px;
}
.contract-card{
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  border-radius:18px;
  padding:16px;
  margin-bottom:16px;
}
.contract-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}
.contract-full{
  grid-column:1 / -1;
}
.contract-label{
  display:block;
  margin-bottom:8px;
  font-size:13px;
  color:var(--muted);
  font-weight:700;
}
.contract-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.contract-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:12px;
  margin-bottom:14px;
}
.contract-stat{
  border:1px solid var(--line);
  background:rgba(255,255,255,.04);
  border-radius:16px;
  padding:14px;
}
.contract-stat .k{
  font-size:12px;
  color:var(--muted);
  margin-bottom:6px;
}
.contract-stat .v{
  font-size:17px;
  font-weight:800;
  line-height:1.7;
}
.contract-list{
  margin:0;
  padding-right:18px;
}
.contract-list li{
  margin-bottom:10px;
  line-height:1.9;
}
.contract-text{
  white-space:pre-wrap;
  line-height:2;
  font-size:14px;
  color:rgba(255,255,255,.9);
  background:rgba(0,0,0,.10);
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  max-height:340px;
  overflow:auto;
}
.contract-note{
  border:1px dashed rgba(212,175,55,.45);
  background:rgba(212,175,55,.08);
  border-radius:16px;
  padding:14px;
  color:rgba(255,255,255,.88);
  line-height:1.9;
  margin-top:10px;
}
.contract-help{
  color:var(--muted);
  line-height:1.9;
  font-size:13px;
}
@media (max-width: 980px){
  .contract-grid{
    grid-template-columns:1fr;
  }
}
@media (max-width: 720px){
  .contract-form-grid{
    grid-template-columns:1fr;
  }
}
</style>

<div class="contract-page">
  <div class="contract-hero">
    <h1>تحليل العقود بالذكاء القانوني</h1>
    <p>تحليل أولي للعقود لاكتشاف نوع العقد، البنود الرئيسية، المخاطر المحتملة، وأهم التوصيات القانونية قبل المراجعة النهائية.</p>
  </div>

  <?php if ($msg !== ''): ?>
    <div class="msg ok"><?= contract_h($msg) ?></div>
  <?php endif; ?>

  <?php if ($err !== ''): ?>
    <div class="msg err"><?= contract_h($err) ?></div>
  <?php endif; ?>

  <div class="contract-grid">
    <div>
      <div class="contract-card">
        <div class="cardHead">
          <div><strong>بيانات العقد</strong></div>
        </div>

        <form method="post" action="">
          <div class="contract-form-grid">
            <div>
              <label class="contract-label">اسم العقد</label>
              <input class="input" type="text" name="contract_name" value="<?= contract_h($form['contract_name']) ?>" placeholder="مثال: عقد خدمات تقنية">
            </div>

            <div>
              <label class="contract-label">نوع العقد</label>
              <select name="contract_type" class="input">
                <option value="">تحديد تلقائي</option>
                <option value="عقد عمل" <?= $form['contract_type'] === 'عقد عمل' ? 'selected' : '' ?>>عقد عمل</option>
                <option value="عقد إيجار" <?= $form['contract_type'] === 'عقد إيجار' ? 'selected' : '' ?>>عقد إيجار</option>
                <option value="عقد بيع" <?= $form['contract_type'] === 'عقد بيع' ? 'selected' : '' ?>>عقد بيع</option>
                <option value="عقد خدمات" <?= $form['contract_type'] === 'عقد خدمات' ? 'selected' : '' ?>>عقد خدمات</option>
                <option value="عقد مقاولة" <?= $form['contract_type'] === 'عقد مقاولة' ? 'selected' : '' ?>>عقد مقاولة</option>
                <option value="عقد شراكة" <?= $form['contract_type'] === 'عقد شراكة' ? 'selected' : '' ?>>عقد شراكة</option>
                <option value="اتفاقية سرية" <?= $form['contract_type'] === 'اتفاقية سرية' ? 'selected' : '' ?>>اتفاقية سرية</option>
                <option value="عقد توريد" <?= $form['contract_type'] === 'عقد توريد' ? 'selected' : '' ?>>عقد توريد</option>
                <option value="عقد استشارات" <?= $form['contract_type'] === 'عقد استشارات' ? 'selected' : '' ?>>عقد استشارات</option>
              </select>
            </div>

            <div>
              <label class="contract-label">الطرف الأول</label>
              <input class="input" type="text" name="party_a" value="<?= contract_h($form['party_a']) ?>" placeholder="اسم الطرف الأول">
            </div>

            <div>
              <label class="contract-label">الطرف الثاني</label>
              <input class="input" type="text" name="party_b" value="<?= contract_h($form['party_b']) ?>" placeholder="اسم الطرف الثاني">
            </div>

            <div>
              <label class="contract-label">مدة العقد</label>
              <input class="input" type="text" name="contract_duration" value="<?= contract_h($form['contract_duration']) ?>" placeholder="مثال: سنة واحدة تبدأ من...">
            </div>

            <div>
              <label class="contract-label">قيمة العقد</label>
              <input class="input" type="text" name="contract_value" value="<?= contract_h($form['contract_value']) ?>" placeholder="مثال: 50,000 درهم">
            </div>

            <div class="contract-full">
              <label class="contract-label">نص العقد</label>
              <textarea class="input" name="contract_text" rows="14" placeholder="ألصق نص العقد كاملًا هنا"><?= contract_h($form['contract_text']) ?></textarea>
            </div>

            <div class="contract-full">
              <label class="contract-label">ملاحظات إضافية</label>
              <textarea class="input" name="notes" rows="4" placeholder="أي ملاحظات داخلية إضافية"><?= contract_h($form['notes']) ?></textarea>
            </div>
          </div>

          <div class="contract-actions">
            <button class="btn" type="submit" name="analyze_only" value="1">تحليل العقد</button>
            <button class="btn ghost" type="submit" name="save_analysis" value="1">تحليل وحفظ</button>
            <a class="btn ghost" href="<?= contract_h(u('HLG-AI-Legal-Core/legal_ai.php')) ?>">العودة للذكاء القانوني</a>
          </div>
        </form>
      </div>

      <div class="contract-card">
        <div class="cardHead">
          <div><strong>تنبيه مهم</strong></div>
        </div>
        <div class="contract-help">
          هذا التحليل مساعد داخلي أولي، ولا يغني عن المراجعة القانونية البشرية، خصوصًا في العقود ذات القيم العالية أو الالتزامات المعقدة أو العلاقات العابرة للحدود.
        </div>
      </div>
    </div>

    <div>
      <?php if ($analysis): ?>
        <div class="contract-stats">
          <div class="contract-stat">
            <div class="k">نوع العقد</div>
            <div class="v"><?= contract_h($analysis['contract_type']) ?></div>
          </div>
          <div class="contract-stat">
            <div class="k">الأطراف</div>
            <div class="v"><?= contract_h($analysis['parties']) ?></div>
          </div>
          <div class="contract-stat">
            <div class="k">المدة</div>
            <div class="v"><?= contract_h($analysis['duration']) ?></div>
          </div>
          <div class="contract-stat">
            <div class="k">القيمة</div>
            <div class="v"><?= contract_h($analysis['value']) ?></div>
          </div>
        </div>

        <div class="contract-card">
          <div class="cardHead"><div><strong>الملخص الذكي</strong></div></div>
          <div class="contract-help"><?= contract_h($analysis['summary']) ?></div>
          <div class="contract-note">
            يوصى بمراجعة هذا العقد في ضوء التشريعات الواجبة التطبيق وطبيعة النشاط التجاري أو العلاقة القانونية بين الأطراف.
          </div>
        </div>

        <div class="contract-card">
          <div class="cardHead"><div><strong>نقاط القوة</strong></div></div>
          <ul class="contract-list">
            <?php foreach ($analysis['strengths'] as $item): ?>
              <li><?= contract_h($item) ?></li>
            <?php endforeach; ?>
          </ul>
        </div>

        <div class="contract-card">
          <div class="cardHead"><div><strong>المخاطر المحتملة</strong></div></div>
          <ul class="contract-list">
            <?php foreach ($analysis['risks'] as $item): ?>
              <li><?= contract_h($item) ?></li>
            <?php endforeach; ?>
          </ul>
        </div>

        <div class="contract-card">
          <div class="cardHead"><div><strong>البنود الناقصة أو غير الواضحة</strong></div></div>
          <ul class="contract-list">
            <?php foreach ($analysis['missing'] as $item): ?>
              <li><?= contract_h($item) ?></li>
            <?php endforeach; ?>
          </ul>
        </div>

        <div class="contract-card">
          <div class="cardHead"><div><strong>التوصيات</strong></div></div>
          <ul class="contract-list">
            <?php foreach ($analysis['recommendations'] as $item): ?>
              <li><?= contract_h($item) ?></li>
            <?php endforeach; ?>
          </ul>
        </div>

        <div class="contract-card">
          <div class="cardHead"><div><strong>مقتطف من نص العقد</strong></div></div>
          <div class="contract-text"><?= contract_h(contract_excerpt($form['contract_text'], 2000)) ?></div>
        </div>
      <?php else: ?>
        <div class="contract-card">
          <div class="contract-help">
            ألصق نص العقد في الحقل المخصص ثم اضغط "تحليل العقد" للحصول على قراءة مبدئية ذكية للعقد.
          </div>
        </div>
      <?php endif; ?>
    </div>
  </div>
</div>

<?php render_layout_end(); ?>