/* =====================================================================
   نظام إدارة الخطابات - القنصلية | تنسيق المحرر والطباعة (A4)
   ===================================================================== */
/* خطوط محلية (تعمل offline بالكامل) — بديلة عن Google Fonts */
@import url('../fonts/letter-fonts.css');

@page { size: A4; margin: 0 !important; }

@font-face { font-family: 'Sakkal Majalla'; src: local('Sakkal Majalla'), local('Traditional Arabic'); }
@font-face { font-family: 'Andalus'; src: local('Andalus'), local('Arabic Typesetting'); }
@font-face { font-family: 'Century'; src: local('Century'), local('Century Schoolbook'); }

/* ---------- صفحة A4 ---------- */
.letter-format-a4 {
  /* قيم افتراضية قابلة للضبط عبر شريط التحكم (JS يضبطها كخصائص مضمّنة) */
  --body-font-size: 19pt;
  --body-line-height: 1.8;
  --para-gap: 4mm;
  --meta-line-gap: 1.5mm;
  --meta-bottom: 8mm;
  --title-gap-top: 6mm;
  --title-gap-bottom: 8mm;
  --sign-gap-top: 8mm;
  --page-padding-y: 12mm;
  --meta-font-size: 17pt;
  --title-font-size: 22pt;
  --barcode-size: 24mm;

  font-family: 'Sakkal Majalla', 'Traditional Arabic', 'Amiri', serif;
  width: 210mm;
  min-height: 297mm;
  padding: var(--page-padding-y) 16mm;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
  direction: rtl;
  text-align: right;
  color: #000;
  background: #fff;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

/* ---------- الترويسة (بدون إطار، مطابقة لترويسة السفارة) ---------- */
.letter-format-a4 .header-container { margin-bottom: 10mm; }
.letter-format-a4 .letterhead {
  width: 100%;
  border-collapse: collapse;
  border: none;
  direction: rtl;
}
.letter-format-a4 .letterhead td {
  vertical-align: middle;
  padding: 0;
  border: none;
}
.letter-format-a4 .arabic-section { width: 38%; text-align: right; }
.letter-format-a4 .logo-section { width: 24%; text-align: center; }
.letter-format-a4 .english-section { width: 38%; text-align: left; }
.letter-format-a4 .head-logo { width: 26mm; height: auto; display: block; margin: 0 auto; }

.letter-format-a4 .head-ar {
  font-family: 'Sakkal Majalla', 'Traditional Arabic', 'Amiri', serif;
  line-height: 1.4;
  color: #000;
  font-weight: bold;
}
.letter-format-a4 .head-ar .ln1 { font-size: 20pt; }
.letter-format-a4 .head-ar .ln2 { font-size: 18pt; margin-top: 2px; }

.letter-format-a4 .head-en {
  font-family: 'Times New Roman', 'Century', serif;
  line-height: 1.3;
  color: #000;
  font-weight: bold;
}
.letter-format-a4 .head-en .ln1 { font-size: 11.5pt; white-space: nowrap; }
.letter-format-a4 .head-en .ln2 { font-size: 11.5pt; white-space: nowrap; }
.letter-format-a4 .head-en .ln3 { font-size: 11.5pt; margin-top: 2px; }

/* ---------- المحتوى ---------- */
.letter-format-a4 .document-content { padding-bottom: 40mm; }
/* احتواء التوقيع الطافي (float) داخل المحتوى كي يُقاس ارتفاعه بدقة في الاحتواء
   التلقائي — يمنع طفح التوقيع فوق الفوتر ويجعل الضغط/التصغير يعمل بشكل صحيح */
.letter-format-a4 .document-content::after {
  content: '';
  display: block;
  clear: both;
}

.letter-format-a4 .letter-meta {
  text-align: right;
  margin-bottom: var(--meta-bottom);
  font-size: var(--meta-font-size);
  font-weight: bold;
  line-height: 1.15;
  font-family: 'Sakkal Majalla', 'Traditional Arabic', 'Amiri', serif;
}
.letter-format-a4 .letter-meta .meta-line {
  display: table;
  border-bottom: 1.5pt solid #000;
  padding-bottom: 1px;
  margin-bottom: var(--meta-line-gap);
  line-height: 1.15;
}
.letter-format-a4 .letter-meta .meta-label { letter-spacing: 2px; }
.letter-format-a4 .letter-meta .meta-value { unicode-bidi: embed; }

.letter-format-a4 .doc-title-container { text-align: center; margin: var(--title-gap-top) 0 var(--title-gap-bottom); line-height: 1.2; }
.letter-format-a4 .doc-title {
  font-size: var(--title-font-size);
  font-weight: bold;
  display: inline-block;
  padding-bottom: 4px;
  border-bottom: 2pt solid #000;
  line-height: 1.2;
  font-family: 'Sakkal Majalla', 'Traditional Arabic', 'Amiri', serif;
  text-wrap: balance;
}

.letter-format-a4 .body-content {
  font-size: var(--body-font-size);
  line-height: var(--body-line-height);
  text-align: justify;
  font-family: 'Sakkal Majalla', 'Traditional Arabic', 'Amiri', serif;
}
.letter-format-a4 .body-content p {
  margin: 0 0 var(--para-gap) 0;
  /* معالجة الأسطر اليتيمة وتوازن اللف (متصفحات حديثة) */
  text-wrap: pretty;
  orphans: 2;
  widows: 2;
}
/* ---------- القوائم: تعداد نقطي / ترقيم / متعددة المستويات ---------- */
.letter-format-a4 .body-content ul,
.letter-format-a4 .body-content ol {
  margin: 0 0 var(--para-gap) 0;
  padding-right: 2.2em;
  padding-left: 0;
  list-style-position: outside;
}
.letter-format-a4 .body-content li {
  margin-bottom: calc(var(--para-gap) * 0.4);
  text-align: justify;
}
/* قوائم متداخلة: بلا هامش سفلي إضافي بين المستويات */
.letter-format-a4 .body-content li > ul,
.letter-format-a4 .body-content li > ol {
  margin-bottom: 0;
  margin-top: calc(var(--para-gap) * 0.4);
}
/* ترقيم بأرقام عربية، وأنماط مختلفة لكل مستوى */
.letter-format-a4 .body-content ol { list-style-type: arabic-indic; }
.letter-format-a4 .body-content ol ol { list-style-type: lower-alpha; }
.letter-format-a4 .body-content ol ol ol { list-style-type: lower-roman; }
/* تعداد نقطي بأشكال مختلفة لكل مستوى */
.letter-format-a4 .body-content ul { list-style-type: disc; }
.letter-format-a4 .body-content ul ul { list-style-type: circle; }
.letter-format-a4 .body-content ul ul ul { list-style-type: square; }

.letter-format-a4 .body-content b,
.letter-format-a4 .body-content strong { font-weight: bold; }
.letter-format-a4 .body-content i,
.letter-format-a4 .body-content em { font-style: italic; }
/* خط تحت النص بنمط الوورد: خط متصل لا ينقطع حول النقاط والحروف النازلة، منزل قليلاً عن النص */
.letter-format-a4 u,
.letter-format-a4 .body-content u,
.letter-format-a4 [style*="underline"] {
  text-decoration-line: underline;
  text-decoration-thickness: 0.06em;
  text-decoration-skip-ink: none;
  text-underline-offset: 0.16em;
}
/* الخانات المرتبطة داخل النص */
.letter-format-a4 .field-slot { font-weight: bold; }
.letter-format-a4 .field-slot.empty {
  display: inline-block;
  min-width: 90px;
  border-bottom: 1px dotted #000;
  min-height: 1em;
  vertical-align: bottom;
}

/* التوقيع */
.letter-format-a4 .signature {
  margin: var(--sign-gap-top) 15mm 0 auto;
  text-align: center;
  float: left;
  width: fit-content;
  clear: both;
}
.letter-format-a4 .signature p { margin: 3px 0; text-align: center; }
.letter-format-a4 .signature-name { font-weight: bold; font-size: 18pt; }
.letter-format-a4 .signature-title { font-weight: bold; font-size: 15pt; }

/* ---------- الباركود (QR: الاسم ورقم الجواز والرقم المتسلسل) ---------- */
.letter-format-a4 .letter-barcode {
  position: absolute;
  bottom: 30mm;
  right: 16mm;
  z-index: 10;
  user-select: none;
}
.letter-format-a4 .letter-barcode .barcode-img {
  width: var(--barcode-size, 24mm);
  height: var(--barcode-size, 24mm);
  display: block;
  background: #fff;
  padding: 0;
  border: none;
  box-sizing: content-box;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

/* ---------- علامة المستخدم المخفية (تدقيق داخلي) ----------
   نص رمادي دقيق جداً أسفل يسار الهامش — يُطبع على الورقة فعلياً
   لكن يصعب ملاحظته إلا عند التدقيق القريب. */
.letter-format-a4 .letter-issuer-mark {
  position: absolute;
  left: 4mm;
  bottom: 3mm;
  z-index: 2;
  max-width: 55mm;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  line-height: 1;
  white-space: nowrap;
  font-family: 'Courier New', Consolas, monospace;
  font-size: 5pt;
  font-weight: normal;
  letter-spacing: 0.2pt;
  color: #c8c8c8 !important;
  opacity: 1;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}
.letter-format-a4 .letter-issuer-mark-text {
  color: inherit !important;
}
/* تبقى مطبوعة حتى مع ترويسة خارجية (الترويسة/الفوتر فقط يُخفيان) */
.letter-format-a4.external-letterhead .letter-issuer-mark {
  visibility: visible !important;
}

/* ---------- الفوتر ---------- */
.letter-format-a4 .letter-footer {
  position: absolute;
  bottom: 10mm;
  left: 0;
  right: 0;
  width: 100%;
  text-align: center;
  padding: 0 16mm;
  box-sizing: border-box;
  font-family: 'Sakkal Majalla', 'Traditional Arabic', 'Amiri', serif;
}
.letter-format-a4 .footer-line {
  border-top: 4px double #000;
  width: 100%;
  margin-bottom: 4px;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.footer-content { display: flex; flex-direction: column; gap: 3px; align-items: center; }
.footer-text-ar {
  margin: 0;
  font-size: 12pt;
  font-family: 'Sakkal Majalla', 'Traditional Arabic', serif;
  font-weight: bold;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  white-space: nowrap;
}
.footer-text-en {
  margin: 0;
  font-size: 10.5pt;
  font-family: 'Times New Roman', serif;
  font-weight: bold;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  direction: ltr;
  white-space: nowrap;
}
.icon-contact {
  color: #b45f06 !important;
  font-family: sans-serif;
  font-size: 1.2em;
  margin: 0 2px;
  vertical-align: middle;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.num-span { unicode-bidi: embed; direction: ltr; }

/* ---------- طباعة بترويسة خارجية ----------
   تُخفى الترويسة والفوتر مع الإبقاء على حيّزهما فارغاً (للطباعة على ورق
   يحمل ترويسة مطبوعة مسبقاً)، فيبقى المحتوى في مكانه تماماً كما يظهر. */
.letter-format-a4.external-letterhead .header-container,
.letter-format-a4.external-letterhead .letter-footer {
  visibility: hidden !important;
}

/* ---------- الطباعة ---------- */
body { margin: 0; padding: 0; }
.print-page-wrapper {
  width: 210mm;
  margin: 0 auto;
  page-break-after: always;
}

@media print {
  @page { size: A4; margin: 0 !important; }
  html, body { margin: 0 !important; padding: 0 !important; width: 210mm !important; }
  .letter-format-a4 {
    box-shadow: none !important;
    margin: 0 !important;
    width: 210mm !important;
    min-height: 297mm !important;
    overflow: hidden !important;
  }
}
