/* أنماط مخصّصة تكمّل Tailwind */

/* رسم علامة الصح داخل المربع المخصّص */
.check-svg path { stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset .25s ease .05s; }
.exercise-item.done .check-svg path { stroke-dashoffset: 0; }

/* شطب اسم التمرين عند إكماله */
.exercise-item.done .ex-name { text-decoration: line-through; text-decoration-color: rgba(100,116,139,.55); color: #94a3b8; }

/* لمعان ناعم على شريط التقدّم */
.progress-fill::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transform: translateX(-100%);
  animation: shimmer 2.2s infinite;
}
@keyframes shimmer { 100% { transform: translateX(100%); } }

/* نبض حلقة حول المؤقّت العامل */
@keyframes ring-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(99,102,241,.45); }
  50%     { box-shadow: 0 0 0 6px rgba(99,102,241,0); }
}
.timer-running { animation: ring-pulse 1.6s infinite; }

/* دوران سهم "الشرح والخطوات" */
.chev { transition: transform .25s ease; }
.expanded .chev { transform: rotate(180deg); }

/* فتح/طيّ تفاصيل التمرين بسلاسة — دون إعادة رسم القائمة (يمنع الوميض) */
.details-wrap { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .3s ease, opacity .25s ease; }
.exercise-item.open .details-wrap { max-height: 480px; opacity: 1; }
.exercise-item.open .chev { transform: rotate(180deg); }

/* مؤشّر دوران عام (احتياطي) */
@keyframes spin { to { transform: rotate(360deg); } }
.spin { animation: spin .8s linear infinite; }
