/* ===== Document rendering: A4 page, field overlays, barcodes, edit mode, print ===== */
.doc-outer{width:100%;display:flex;justify-content:center;overflow:auto;padding:6px 0 40px;}
.doc-scaler{transform-origin:top center;}
.doc-page{position:relative;width:1000px;height:1414px;box-shadow:var(--shadow-lg);background-color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.doc-scaler > .doc-page + .doc-page{margin-top:16px;}
.doc-page .bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:0;}
.doc-page .ov{z-index:1;}
.ov{position:absolute;font-weight:400;color:var(--ov-color,#0d0d0d);line-height:1.25;white-space:normal;overflow:hidden;overflow-wrap:break-word;word-wrap:break-word;font-family:Arial,Helvetica,sans-serif !important;font-size:var(--ov-fs,14px) !important;font-weight:var(--ov-fw,400) !important;}
/* إشعار التصفية: Times New Roman لكل خانات المستند، في المعاينة والطباعة والعرض العام */
.cn-page,.cn-page .cn-ov,.cn-page .cn-ov .cn-val{font-family:"Times New Roman",Times,serif !important;}
/* وصل القبض: كل الخانات Courier Prime افتراضيًا (لا يؤثر على باقي المستندات) */
.rn-page .ov,.rn-page .ov .rn-val{font-family:"Courier Prime","Courier New",monospace !important;}
/* وصل القبض: خانات «تم تسليم هذا الوصل إلى» و«الصفحة» و«طبع في» و«المبلغ بالحروف» و«اسم الموظف» و«الرمز والوصف» بخط Arial */
.ov.rn-times,.ov.rn-times .rn-val{font-family:Arial,Helvetica,sans-serif !important;}
/* ===== باركود PDF417 لوصل القبض — أبعاد وموضع ثابتة مطابقة للنموذج المرجعي ===== */
#pdf417Receipt{
  position:absolute;
  left:10.61%;
  top:87.28%;
  width:17.72%;
  height:6.32%;
  image-rendering:pixelated;
  direction:ltr;
  background:#ffffff;
  display:block;
  z-index:1;
}
#pdf417ReceiptFallback{
  position:absolute;
  left:10.61%;
  top:87.28%;
  width:17.72%;
  height:6.32%;
  direction:ltr;
  background:#ffffff;
  border:1px dashed #999;
  display:none;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:10px;
  color:#666;
  font-family:Arial,Helvetica,sans-serif;
  z-index:1;
  overflow:hidden;
}
#pdf417ReceiptFallback.show{display:flex;}
/* التفاف طبيعي لكل الخانات: عناصر flex-column لا تتجاوز حدود الخانة وتنزل للسطر التالي تلقائيًا */
.ov > *{display:block;width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;}
.ov .ar-sh{min-width:0;max-width:100%;overflow-wrap:break-word;word-wrap:break-word;}
/* المستورد: التفاف طبيعي ضمن حدود الخانة فقط */
.ov.importer,.ov.importer .ar-sh{white-space:normal;word-break:normal;overflow-wrap:break-word;word-wrap:break-word;}
/* اسم وكيل الإخراج يلتف طبيعيًا داخل حدود الخانة دون تجاوزها */
#f_agentName{white-space:normal;word-break:normal;overflow-wrap:break-word;word-wrap:break-word;}
.ov.agent-name{display:flex !important;flex-direction:column !important;flex-wrap:nowrap !important;align-items:stretch !important;justify-content:center !important;white-space:normal !important;word-break:normal !important;overflow-wrap:break-word;word-wrap:break-word;overflow:hidden !important;z-index:2;}
.ov.agent-name .ar-sh{display:block;width:100%;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;}
.ov .ar-sh{font-size:var(--ov-fs,16px) !important;font-weight:var(--ov-fw,900) !important;}
/* ثبّت اتجاه الخانات العربية، خصوصًا النص المختلط عربي/لاتيني عند الطباعة */
.cd-ov:not(.ltr),.cd-ov:not(.ltr)>.ar-sh{direction:rtl;unicode-bidi:plaintext;}
/* عزل رموز/أرقام LTR داخل خانات عربية (وصف البضاعة: رمز الصنف + الوصف) */
.ov .ltr-iso{direction:ltr;unicode-bidi:isolate;display:inline;font-family:Arial,Helvetica,sans-serif;font-size:var(--ov-fs,14px);font-weight:var(--ov-fw,400);white-space:nowrap;}
.ov .mixed-sh{display:block;width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word;word-wrap:break-word;unicode-bidi:plaintext;}
/* المحاذاة الأفقية عبر text-align فقط (مستقلة عن direction)；
     التوسيط الرأسي عبر flex-direction:column + justify-content (مستقل عن direction) */
.ov.center{text-align:center;display:flex;flex-direction:column;justify-content:center;}
.ov.top{justify-content:flex-start;}
.ov.ltr{direction:ltr;unicode-bidi:isolate;}
.ov.right{text-align:right;display:flex;flex-direction:column;justify-content:center;}
.ov.left{text-align:left;display:flex;flex-direction:column;justify-content:center;}
/* المحاذاة الرأسية المستقلة (top/middle/bottom) — تتجاوز justify-content للخانات متعددة الأسطر */
.ov.vtop{justify-content:flex-start !important;}
.ov.vmid{justify-content:center !important;}
.ov.vbot{justify-content:flex-end !important;}
.ov.code{overflow:visible;}
.ov.code canvas{width:100%;height:100%;display:block;}

/* ===== Interactive Edit Mode (drag & resize) ===== */
.edit-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.edit-tools .btn{padding:9px 14px;font-size:13px;}
.edit-tools .btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.edit-hint{font-size:12px;color:var(--muted);font-weight:700;display:none;align-items:center;gap:6px;background:var(--primary-soft);border:1px dashed var(--primary);border-radius:10px;padding:8px 12px;margin-bottom:12px;}
.edit-hint.show{display:flex;}
.doc-page.edit-mode .ov.editable{outline:1.5px dashed var(--primary);outline-offset:1px;cursor:move;overflow:visible;background:rgba(31,95,139,.05);}
.doc-page.edit-mode .ov.editable.agent-name{overflow:hidden !important;white-space:normal !important;overflow-wrap:break-word !important;word-wrap:break-word !important;}
.doc-page.edit-mode .ov.editable:hover{outline-color:var(--accent);background:rgba(42,157,143,.10);}
.doc-page.edit-mode .ov.editable.selected{outline:2px solid var(--primary);background:rgba(31,95,139,.14);z-index:4;}
.pos-badge{position:absolute;bottom:-19px;left:0;display:none;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:5px;white-space:nowrap;direction:ltr;font-family:Consolas,'Courier New',monospace;pointer-events:none;z-index:5;line-height:1.3;}
.resize-handle{position:absolute;right:-6px;bottom:-6px;width:13px;height:13px;display:none;background:var(--accent);border:2px solid #fff;border-radius:50%;cursor:nwse-resize;z-index:6;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.doc-page.edit-mode .ov.editable.selected .pos-badge{display:block;}
.doc-page.edit-mode .ov.editable.selected .resize-handle{display:block;}
#alignBar{position:fixed;bottom:60px;left:50%;transform:translate(-50%,20px);display:none;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 12px;box-shadow:var(--shadow-lg);z-index:60;opacity:0;transition:opacity .2s,transform .2s;font-size:13px;}
#alignBar.show{display:flex;opacity:1;transform:translate(-50%,0);}
#alignBar .ab-label{font-weight:800;color:var(--text);white-space:nowrap;}
#alignBar .ab-field{color:var(--primary);font-weight:800;font-family:Consolas,'Courier New',monospace;direction:ltr;}
#alignBar .ab-sep{width:1px;height:20px;background:var(--line);}
#alignBar .ab-grp{display:flex;gap:4px;background:var(--bg-soft);border-radius:9px;padding:4px;}
#alignBar .ab-btn{border:none;background:transparent;color:var(--muted);padding:6px 12px;border-radius:7px;font-size:12.5px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:5px;transition:.12s;}
#alignBar .ab-btn:hover{color:var(--text);}
#alignBar .ab-btn.active{background:var(--card);color:var(--primary);box-shadow:var(--shadow);}
#alignBar .ab-input{width:64px;border:1px solid var(--line);border-radius:7px;padding:6px 8px;font-size:12.5px;font-weight:800;text-align:center;background:var(--card);color:var(--text);}
#alignBar .ab-color{width:36px;height:30px;border:1px solid var(--line);border-radius:7px;padding:2px;background:var(--card);cursor:pointer;}
#alignBar .ab-all{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--text-2);cursor:pointer;white-space:nowrap;font-size:12.5px;padding:4px 8px;border-radius:7px;transition:.12s;}
#alignBar .ab-all input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;margin:0;}
#alignBar .ab-all.active{color:var(--primary);background:var(--primary-soft);}

/* Print rules live in print.css (exact A4 mount). Keep a safe fallback here
   for callers that print without body.printing-ep. */
@media print{
  @page{size:A4 portrait;margin:0;}
  html,body{background:#fff;margin:0;padding:0;}
  .pos-badge,.resize-handle,#alignBar,#cdAlignBar,.edit-hint{display:none !important;}
  .doc-page{box-shadow:none !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .doc-page.edit-mode .ov.editable{outline:none !important;background:transparent !important;}
}
