/* ==========================================================================
   المجلس الأردني الطبي — الأدوات المساعدة والحركات وورقة الطباعة
   ========================================================================== */

/* ==========================================================================
   الظهور التدريجي عند التمرير
   --------------------------------------------------------------------------
   بديل مخصّص لمكتبة AOS: يعتمد IntersectionObserver الأصلي (~1KB مقابل 14KB)،
   بلا مراقب Scroll ثقيل، ويحترم prefers-reduced-motion بلا التفاف.
   الحالة الابتدائية تُطبَّق فقط عندما يكون JS نشطاً (الصنف js-enabled على html)،
   وإلا بقي المحتوى مخفياً لمن يعطّل جافاسكربت.
   ========================================================================== */

.js-enabled [data-reveal] {
  opacity: 0;
  transform: translateY(.75rem);
  transition: opacity var(--jmc-dur-slower) var(--jmc-ease-out),
              transform var(--jmc-dur-slower) var(--jmc-ease-out);
  transition-delay: var(--jmc-reveal-delay, 0ms);
}

.js-enabled [data-reveal].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-enabled [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ==========================================================================
   أدوات التخطيط
   ========================================================================== */

.jmc-stack        { display: flex; flex-direction: column; }
.jmc-stack--1     { gap: var(--jmc-space-1); }
.jmc-stack--2     { gap: var(--jmc-space-2); }
.jmc-stack--3     { gap: var(--jmc-space-3); }
.jmc-stack--4     { gap: var(--jmc-space-4); }
.jmc-stack--5     { gap: var(--jmc-space-5); }
.jmc-stack--6     { gap: var(--jmc-space-6); }

.jmc-row          { display: flex; align-items: center; flex-wrap: wrap; }
.jmc-row--2       { gap: var(--jmc-space-2); }
.jmc-row--3       { gap: var(--jmc-space-3); }
.jmc-row--4       { gap: var(--jmc-space-4); }
.jmc-row--between { justify-content: space-between; }
.jmc-row--end     { justify-content: flex-end; }
.jmc-row--center  { justify-content: center; }
.jmc-row--top     { align-items: flex-start; }

.jmc-spacer       { flex: 1 1 auto; }

/* ==========================================================================
   أدوات النص
   ========================================================================== */

.jmc-text-sm        { font-size: var(--jmc-fs-sm); }
.jmc-text-xs        { font-size: var(--jmc-fs-xs); }
.jmc-text-2xs       { font-size: var(--jmc-fs-2xs); }
.jmc-text-secondary { color: var(--jmc-text-secondary); }
.jmc-text-muted     { color: var(--jmc-text-muted); }
/*
  أدوات ألوان النص تستخدم رموز «النص الدلالي» لا الألوان الأساسية (F-19):
  الأساسية معايرة كخلفيات، واستخدامها نصّاً يخرق AA — خصوصاً في الليلي.
*/
.jmc-text-danger    { color: var(--jmc-text-danger-on); }
.jmc-text-success   { color: var(--jmc-text-success-on); }
.jmc-text-warning   { color: var(--jmc-text-warning-on); }
.jmc-text-info      { color: var(--jmc-text-info-on); }
.jmc-text-primary   { color: var(--jmc-text-primary-on); }
.jmc-text-center    { text-align: center; }
.jmc-text-end       { text-align: end; }
.jmc-fw-medium      { font-weight: var(--jmc-fw-medium); }
.jmc-fw-semibold    { font-weight: var(--jmc-fw-semibold); }
.jmc-fw-bold        { font-weight: var(--jmc-fw-bold); }
.jmc-nowrap         { white-space: nowrap; }

/* أرقام أحادية العرض: تُصفّ الأرقام عمودياً في الجداول */
.jmc-tabular        { font-variant-numeric: tabular-nums; }

/* اتجاه لاتيني داخل صفحة عربية — لأرقام الهوية والهاتف والبريد */
.jmc-ltr {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: start;
}

/* قصّ نص طويل بثلاث نقاط */
.jmc-truncate {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* قصّ على سطرين */
.jmc-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ==========================================================================
   أدوات المسافات
   ========================================================================== */

.jmc-mt-0 { margin-top: 0; }
.jmc-mt-2 { margin-top: var(--jmc-space-2); }
.jmc-mt-3 { margin-top: var(--jmc-space-3); }
.jmc-mt-4 { margin-top: var(--jmc-space-4); }
.jmc-mt-5 { margin-top: var(--jmc-space-5); }
.jmc-mt-6 { margin-top: var(--jmc-space-6); }
.jmc-mt-8 { margin-top: var(--jmc-space-8); }

.jmc-mb-0 { margin-bottom: 0; }
.jmc-mb-2 { margin-bottom: var(--jmc-space-2); }
.jmc-mb-3 { margin-bottom: var(--jmc-space-3); }
.jmc-mb-4 { margin-bottom: var(--jmc-space-4); }
.jmc-mb-5 { margin-bottom: var(--jmc-space-5); }
.jmc-mb-6 { margin-bottom: var(--jmc-space-6); }

/* ==========================================================================
   أدوات الإظهار والإخفاء
   ========================================================================== */

.jmc-hidden { display: none !important; }

@media (max-width: 767.98px) {
  .jmc-hide-mobile { display: none !important; }
}

@media (min-width: 768px) {
  .jmc-show-mobile-only { display: none !important; }
}

@media (max-width: 991.98px) {
  .jmc-hide-tablet-down { display: none !important; }
}

@media (min-width: 992px) {
  .jmc-show-tablet-down-only { display: none !important; }
}

/* ==========================================================================
   Select2 — مواءمة مع نظام التصميم
   --------------------------------------------------------------------------
   Select2 يحمل أنماطه الخاصة، وبلا هذه المواءمة يبدو غريباً وسط الحقول
   ويفقد دعم الوضع الليلي تماماً.
   ========================================================================== */

.select2-container--default .select2-selection--single {
  height: 2.625rem !important;
  border: 1px solid var(--jmc-border-strong) !important;
  border-radius: var(--jmc-radius) !important;
  background: var(--jmc-surface) !important;
  display: flex;
  align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding-inline: var(--jmc-space-3) !important;
  color: var(--jmc-text) !important;
  font-size: var(--jmc-fs-sm);
  line-height: 1.6 !important;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: var(--jmc-text-muted) !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 2.5rem !important;
  inset-inline-start: var(--jmc-space-2) !important;
  inset-inline-end: auto !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--jmc-primary-600) !important;
  box-shadow: 0 0 0 3px var(--jmc-focus-ring);
}

.select2-dropdown {
  border: 1px solid var(--jmc-border) !important;
  border-radius: var(--jmc-radius) !important;
  background: var(--jmc-surface) !important;
  box-shadow: var(--jmc-shadow-md);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--jmc-border-strong) !important;
  border-radius: var(--jmc-radius-sm) !important;
  background: var(--jmc-surface) !important;
  color: var(--jmc-text) !important;
  font-family: var(--jmc-font-sans);
  font-size: var(--jmc-fs-sm);
  padding: var(--jmc-space-2) !important;
}

.select2-container--default .select2-results__option {
  color: var(--jmc-text);
  font-size: var(--jmc-fs-sm);
  padding: var(--jmc-space-2) var(--jmc-space-3);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--jmc-primary-600) !important;
  color: #fff !important;
}

.select2-container--default .select2-results__option[aria-selected="true"] {
  background: var(--jmc-primary-50) !important;
  color: var(--jmc-primary-800) !important;
}

[data-theme="dark"] .select2-container--default .select2-results__option[aria-selected="true"] {
  background: rgba(14, 124, 102, .25) !important;
  color: var(--jmc-primary-200) !important;
}

/* ==========================================================================
   flatpickr — مواءمة مع نظام التصميم والوضع الليلي
   ========================================================================== */

.flatpickr-calendar {
  border: 1px solid var(--jmc-border) !important;
  border-radius: var(--jmc-radius-md) !important;
  background: var(--jmc-surface) !important;
  box-shadow: var(--jmc-shadow-md) !important;
  font-family: var(--jmc-font-sans) !important;
}

.flatpickr-months,
.flatpickr-month,
.flatpickr-weekdays,
span.flatpickr-weekday {
  background: var(--jmc-surface) !important;
  color: var(--jmc-text-secondary) !important;
  fill: var(--jmc-text-secondary) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year,
.flatpickr-day {
  color: var(--jmc-text) !important;
}

.flatpickr-day:hover {
  background: var(--jmc-surface-3) !important;
  border-color: var(--jmc-surface-3) !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  background: var(--jmc-primary-600) !important;
  border-color: var(--jmc-primary-600) !important;
  color: #fff !important;
}

.flatpickr-day.today {
  border-color: var(--jmc-primary-400) !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
  color: var(--jmc-text-muted) !important;
}

/* ==========================================================================
   ورقة الطباعة
   --------------------------------------------------------------------------
   التقارير تُطبَع فعلياً في المؤسسات الحكومية. هذه القواعد تُنتج ورقة
   نظيفة: بلا شريط جانبي ولا أزرار ولا ألوان خلفية تستهلك الحبر.
   ========================================================================== */

@media print {
  @page {
    size: A4;
    margin: 1.5cm 1cm;
  }

  html,
  body {
    background: #fff !important;
    color: #000 !important;
    font-size: 11pt;
  }

  /* إخفاء كل عناصر التنقّل والتفاعل */
  .jmc-sidebar,
  .jmc-sidebar__backdrop,
  .jmc-topbar,
  .jmc-footer,
  .jmc-toasts,
  .jmc-modal-backdrop,
  .jmc-offline-bar,
  .jmc-skip-link,
  .jmc-page-header__actions,
  .jmc-filters__toggle,
  .jmc-table__actions,
  .jmc-table__drag,
  .jmc-pager,
  .jmc-btn,
  .jmc-chart-data > summary,
  [data-print-hide] {
    display: none !important;
  }

  .jmc-main {
    margin: 0 !important;
  }

  .jmc-content {
    max-width: none !important;
    padding: 0 !important;
  }

  /* البطاقات تصبح إطارات بسيطة بلا ظل */
  .jmc-card,
  .jmc-kpi {
    border: 1px solid #999 !important;
    box-shadow: none !important;
    break-inside: avoid;
    background: #fff !important;
  }

  /* الجداول: ترويسة تتكرّر على كل صفحة، وصفوف لا تُقطع */
  .jmc-table-wrap {
    overflow: visible !important;
  }

  .jmc-table {
    width: 100% !important;
    font-size: 9pt;
  }

  .jmc-table thead {
    display: table-header-group;
  }

  .jmc-table thead th {
    position: static !important;
    background: #EEE !important;
    color: #000 !important;
    border-bottom: 1px solid #333 !important;
  }

  .jmc-table tr {
    break-inside: avoid;
  }

  .jmc-table th,
  .jmc-table td {
    border-bottom: 1px solid #CCC !important;
    padding: 4pt 6pt !important;
  }

  /* الشارات تُطبَع كنص بإطار لا بخلفية ملوّنة */
  .jmc-badge {
    background: transparent !important;
    color: #000 !important;
    border: 1px solid #666 !important;
  }

  /* الجدول المكافئ للرسم يُفتَح دائماً في الطباعة:
     الرسوم لا تُطبَع دائماً بجودة، والجدول يضمن وصول المعلومة */
  .jmc-chart-data {
    display: block !important;
  }

  .jmc-chart-data > * {
    display: block !important;
  }

  /* الروابط تُطبَع كنص عادي — عنوان URL لا قيمة له على الورق */
  a {
    color: #000 !important;
    text-decoration: none !important;
  }

  /* ترويسة الطباعة: تُظهر هوية الجهة على الورقة */
  .jmc-print-header {
    display: block !important;
    margin-bottom: 12pt;
    padding-bottom: 8pt;
    border-bottom: 2px solid #000;
    text-align: center;
  }
}

/* ترويسة الطباعة مخفيّة على الشاشة */
.jmc-print-header {
  display: none;
}

/* ── عرض ─────────────────────────────────────────────────────────────────── */
.jmc-d-block  { display: block; }
.jmc-d-inline { display: inline; }
.jmc-d-flex   { display: flex; }
.jmc-d-none   { display: none; }

.jmc-fw-regular { font-weight: var(--jmc-fw-regular); }

/* نموذج داخل خلية جدول: يبقى في سطر الإجراءات بدل أن يقطعه.
   موجود كصنف لا كنمط سطري لأنه يتكرّر في كل جدول فيه إجراء POST. */
.jmc-inline-form { display: inline; }

/* كسر أي سلسلة طويلة بلا فراغات (معرّف متصفح، JSON، رابط) داخل حاويتها.
   بلا هذا تُخرج سلسلة واحدة الجدول عن عرض الشاشة على الجوّال. */
.jmc-break-any { overflow-wrap: anywhere; word-break: break-word; }

/* ==========================================================================
   صفحة الطباعة المستقلّة (Reports/Print)
   --------------------------------------------------------------------------
   صفحة بلا تخطيط التطبيق: ما لا يُطبَع غير موجود فيها أصلاً لا مخفيّاً بأنماط
   طباعة يمكن أن تُنسى. ولذلك تحتاج تنسيقها الخاص لأنها لا تجري داخل .jmc-main.

   والترويسة تُعرَض **على الشاشة** هنا خلافاً للقاعدة العامة أعلاه: القاعدة
   العامة تُخفيها في شاشات التطبيق لأنها زينة ورقٍ لا شاشة، أما في هذه الصفحة
   فهي المحتوى نفسه — يقرؤها المستخدم قبل أن يطبع ليتأكّد من الفلاتر والتاريخ.
   ========================================================================== */

.jmc-print-page {
  max-width: 21cm;
  margin: 0 auto;
  padding: var(--jmc-space-6) var(--jmc-space-5);
  background: var(--jmc-bg);
  color: var(--jmc-text);
}

.jmc-print-page .jmc-print-header {
  display: flex;
  flex-wrap: wrap;
  gap: var(--jmc-space-4);
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--jmc-space-5);
  padding-bottom: var(--jmc-space-4);
  border-bottom: 2px solid var(--jmc-text);
  text-align: start;
}

.jmc-print-header__title {
  margin: 0;
  font-size: var(--jmc-fs-h3);
  font-weight: var(--jmc-fw-bold);
  line-height: var(--jmc-lh-tight);
}

.jmc-print-header__subtitle {
  margin: var(--jmc-space-1) 0 0;
  font-size: var(--jmc-fs-body);
  color: var(--jmc-text-secondary);
}

/* بيانات المطبوع: من طبع ومتى وكم — ثلاث خانات في سطر واحد */
.jmc-print-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--jmc-space-5);
  margin: 0;
  font-size: var(--jmc-fs-xs);
}

.jmc-print-meta dt {
  margin: 0;
  color: var(--jmc-text-secondary);
  font-weight: var(--jmc-fw-regular);
}

.jmc-print-meta dd {
  margin: 0;
  font-weight: var(--jmc-fw-semibold);
}

.jmc-print-footer {
  margin-top: var(--jmc-space-6);
  padding-top: var(--jmc-space-3);
  border-top: 1px solid var(--jmc-border);
  color: var(--jmc-text-secondary);
  font-size: var(--jmc-fs-2xs);
  text-align: center;
}

/* أزرار الصفحة: تظهر على الشاشة وتختفي في المطبوع (jmc-no-print) */
.jmc-print-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--jmc-space-3);
  justify-content: center;
  margin-top: var(--jmc-space-5);
}

@media print {
  .jmc-print-page {
    max-width: none;
    margin: 0;
    padding: 0;
  }

  /* الترويسة تتكرّر منطقياً في أعلى المطبوع، ولا تُقطَع بين صفحتين */
  .jmc-print-page .jmc-print-header {
    break-inside: avoid;
    break-after: avoid;
  }
}
