/* =====================================================================
   print.css — تصدير جلسة StepFace إلى PDF عبر طباعة المتصفّح.
   يُحمَّل ضمن سلسلة style.css. لا يؤثّر على العرض إطلاقًا (كل شيء داخل
   @media print أو خلف .sf-print-doc المخفيّ على الشاشة).

   لماذا طباعة المتصفّح لا jsPDF: العربية. jsPDF بلا خطّ تشكيل (reshaper+bidi)
   يُسقِط الحروف — مُختبَر: «الاستماع»→«لاستما» و«هذه»→«هذ». محرّك المتصفّح
   يُشكّل ويُرتّب صحيحًا، ويُنتج نصًّا متجهًا قابلًا للتحديد والبحث، ويدعم
   page-break-inside أصلًا، وبلا أي مكتبة خارجية.
   ===================================================================== */

/* حاوية المستند: مبنيّة في DOM لكنّها مخفيّة تمامًا على الشاشة. */
.sf-print-doc { display: none; }

@media print {
  /* أخفِ الواجهة كلّها واعرض المستند فقط. */
  body > *:not(.sf-print-doc) { display: none !important; }

  html, body {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  @page {
    size: A4;
    margin: 18mm 15mm;   /* ≥ 15مم كما تطلب المواصفة */
  }

  .sf-print-doc {
    display: block !important;
    background: #fff;
    color: #000;
    font-family: 'Tajawal', system-ui, sans-serif;
    font-size: 11pt;
    line-height: 1.7;
    direction: rtl;
  }

  .sf-print-doc * { box-shadow: none !important; }
  .sf-print-doc a { color: #000; text-decoration: none; }

  /* ---- الترويسة: تتكرّر أعلى كل صفحة (Chrome يكرّر العناصر الثابتة) ---- */
  .sf-pr-head {
    display: flex; align-items: baseline; gap: 8px;
    border-bottom: 1.5pt solid #000;
    padding-bottom: 4pt; margin-bottom: 10pt;
  }
  .sf-pr-head__t { font-size: 13pt; font-weight: 800; }
  .sf-pr-head__meta { margin-inline-start: auto; font-size: 9pt; color: #333; }

  /* ---- لافتة التقرير الجزئيّ (1.92.2) ----
     تُطبع أيضًا: من يقرأ الورقة يجب أن يعرف أنّها ناقصة عن عمد لا أنّ التصدير
     أخفق. بالنقاط كبقيّة الورقة لا بالبكسل. */
  .sf-pr-note {
    border: 1pt solid #000; border-radius: 3pt;
    padding: 6pt 9pt; margin-bottom: 8pt;
    font-size: 9.5pt; font-weight: 700; line-height: 1.6;
    page-break-inside: avoid; break-inside: avoid;
  }

  /* ---- بطاقة ملخّص النتيجة ---- */
  .sf-pr-sum {
    display: flex; flex-wrap: wrap; gap: 6pt 16pt;
    border: 1pt solid #000; border-radius: 3pt;
    padding: 7pt 10pt; margin-bottom: 12pt;
    page-break-inside: avoid; break-inside: avoid;
  }
  .sf-pr-sum b { font-size: 11pt; }
  .sf-pr-sum span { font-size: 9.5pt; color: #333; }

  /* ---- القطعة: تُطبع مرّة واحدة فوق أسئلتها ---- */
  .sf-pr-passage {
    border: 1pt solid #000; border-radius: 3pt;
    padding: 8pt 10pt; margin: 0 0 8pt;
    background: #fafafa;
    page-break-inside: avoid; break-inside: avoid;
  }
  .sf-pr-passage__t {
    font-size: 9pt; font-weight: 800; letter-spacing: .4pt;
    border-bottom: .5pt solid #999; padding-bottom: 3pt; margin-bottom: 5pt;
  }
  .sf-pr-passage__b {
    direction: ltr; text-align: left;
    font-family: 'IBM Plex Serif', Georgia, serif;
    font-size: 10.5pt; line-height: 1.75;
  }

  /* التظليل: يُطبع كخلفية رمادية + تسطير (يبقى مرئيًّا حتى بطابعة أبيض/أسود). */
  .sf-pr-passage__b mark.sf-hl {
    background: #e2e2e2 !important;
    color: #000 !important;
    border-bottom: 1pt solid #555;
    padding: 0 1pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* المجموعة (قطعة + أسئلتها) تبدأ صفحة جديدة إن لزم، ولا تنقسم القطعة. */
  .sf-pr-group { margin-bottom: 10pt; }

  /* ---- السؤال: لا ينقسم بين صفحتين (بند صريح) ---- */
  .sf-pr-q {
    page-break-inside: avoid; break-inside: avoid;
    border: .75pt solid #444; border-radius: 3pt;
    padding: 7pt 9pt; margin-bottom: 7pt;
  }
  .sf-pr-q__head {
    display: flex; align-items: baseline; gap: 7pt;
    font-size: 8.5pt; color: #333; margin-bottom: 4pt;
  }
  .sf-pr-q__n { font-weight: 800; font-size: 10pt; color: #000; }
  .sf-pr-q__badge { margin-inline-start: auto; font-weight: 800; }
  .sf-pr-q__time { margin-inline-start: auto; font-size: 9pt; color: #555; } /* الزمن قبل الشارة، والشارة تلتصق به (الصفّ 97) */
  .sf-pr-q__time + .sf-pr-q__badge { margin-inline-start: 10px; }
  .sf-pr-q__text {
    direction: ltr; text-align: left;
    font-size: 11pt; font-weight: 600; margin-bottom: 5pt;
  }

  /* ---- الخيارات ---- */
  .sf-pr-opts { list-style: none; margin: 0; padding: 0; }
  .sf-pr-opt {
    direction: ltr; text-align: left;
    display: flex; gap: 6pt; align-items: baseline;
    font-size: 10pt; padding: 1.5pt 0;
  }
  .sf-pr-opt__k { font-weight: 800; min-width: 12pt; }
  .sf-pr-opt__m { margin-inline-start: auto; font-weight: 800; font-size: 9pt; }
  .sf-pr-opt--correct { font-weight: 700; }
  .sf-pr-opt--correct .sf-pr-opt__k::after { content: " ✓"; }
  .sf-pr-opt--chosen-wrong { text-decoration: line-through; color: #444; }
  .sf-pr-opt--chosen-wrong .sf-pr-opt__k::after { content: " ✕"; }

  /* ---- التبويبات (شرح) — تُطبع فقط إن وُجدت ---- */
  .sf-pr-tabs {
    margin-top: 5pt; padding-top: 4pt;
    border-top: .5pt dashed #888;
    font-size: 9.5pt;
  }
  .sf-pr-tab { margin-bottom: 2.5pt; }
  .sf-pr-tab b { font-weight: 800; }

  .sf-pr-foot {
    margin-top: 12pt; padding-top: 5pt;
    border-top: .5pt solid #999;
    font-size: 8.5pt; color: #444; text-align: center;
  }
}
