/* Instant splash styling so users see something immediately.
 *
 * Served from /public/splash.css with a <link> tag in index.html so vite's
 * html-inline-proxy plugin doesn't re-process this every build (which it
 * does flakily in 7.x — see f:\LMS\Sass\lms-app vite build issues, June 2026).
 */
html, body { margin: 0; padding: 0; background: #f4f7fe; }
#__early_splash {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 24px; z-index: 9999;
  background: radial-gradient(120% 120% at 50% 0%, #ffffff 0%, #f4f7fe 45%, #eaf0fb 100%);
  font-family: 'Cairo', 'Tajawal', system-ui, sans-serif;
}
#__early_splash .__es_ring {
  width: 76px; height: 76px; border-radius: 18px;
  background: linear-gradient(135deg, #1e3a8a, #3b82f6);
  box-shadow: 0 12px 30px rgba(30,58,138,0.30), 0 4px 10px rgba(30,58,138,0.25);
  display: flex; align-items: center; justify-content: center;
  animation: __es_pulse 1.6s ease-in-out infinite;
}
#__early_splash .__es_ring svg { width: 38px; height: 38px; color: #fff; }
#__early_splash .__es_name {
  color: #0f172a; font-size: 20px; font-weight: 800; letter-spacing: -0.02em;
  opacity: 0; animation: __es_fade 0.5s ease-out 0.1s forwards;
}
#__early_splash .__es_bar {
  width: 200px; height: 4px; border-radius: 99px; overflow: hidden;
  background: rgba(30,58,138,0.12); position: relative;
}
#__early_splash .__es_bar::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, #3b82f6, transparent);
  animation: __es_slide 1.2s ease-in-out infinite;
}
@keyframes __es_pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}
@keyframes __es_slide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
@keyframes __es_fade {
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  #__early_splash .__es_ring,
  #__early_splash .__es_bar::after { animation: none; }
}
