/* EONIA University — Cargador compartido
   UTF-8 sin BOM · CSS encapsulado para no alterar estilos de las páginas anfitrionas. */
.eonia-loader-overlay {
  --el-gold: var(--eonia-gold, #d4af37);
  --el-amber: var(--eonia-amber, #ffbf00);
  --el-ivory: var(--eonia-ivory, #f5f5f5);
  --el-muted: var(--eonia-text-muted, #aeb6c2);
  --el-red: #ff5938;
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(3, 6, 10, .88);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: var(--el-ivory);
  font-family: var(--eonia-font-body, Inter, "Segoe UI", Arial, sans-serif);
}
.eonia-loader-overlay[hidden] { display: none !important; }
.eonia-loader-dialog {
  width: min(760px, 100%);
  overflow: hidden;
  border: 1px solid rgba(212, 175, 55, .55);
  border-radius: 20px;
  background: radial-gradient(ellipse at 18% 15%, #14202b 0, #080d14 53%, #030508 100%);
  box-shadow: 0 24px 90px rgba(0,0,0,.58), 0 0 35px rgba(212,175,55,.08);
}
.eonia-loader-head { padding: 22px 26px 0; }
.eonia-loader-brand {
  color: var(--el-gold);
  font-family: var(--eonia-font-display, Cinzel, Georgia, serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
}
.eonia-loader-body {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(0, 1.2fr);
  gap: 20px;
  align-items: center;
  padding: 12px 26px 26px;
}
.eonia-loader-visual {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 220px;
  overflow: hidden;
  isolation: isolate;
}
.eonia-loader-orbit {
  position: absolute;
  width: min(68%, 190px);
  aspect-ratio: 1;
  border: 1px solid rgba(212,175,55,.24);
  border-radius: 50%;
  animation: eonia-loader-spin 12s linear infinite;
}
.eonia-loader-orbit::before,
.eonia-loader-orbit::after {
  position: absolute;
  inset: 12%;
  border: 1px dashed rgba(255,191,0,.42);
  border-radius: 50%;
  content: "";
}
.eonia-loader-orbit::after { inset: 27%; border-style: solid; border-color: rgba(212,175,55,.25); }
.eonia-loader-orbit--two { width: min(57%, 158px); animation-duration: 8s; animation-direction: reverse; }
.eonia-loader-orbit--three { width: min(43%, 120px); animation-duration: 5s; }
.eonia-loader-core {
  z-index: 2;
  width: 36px;
  height: 50px;
  background: linear-gradient(145deg, #fff4b2, #ffbf00 35%, #9e650c 78%, #fff0a0);
  clip-path: polygon(50% 0, 88% 30%, 75% 78%, 50% 100%, 22% 76%, 10% 30%);
  filter: drop-shadow(0 0 13px rgba(255,191,0,.9)) drop-shadow(0 0 28px rgba(255,191,0,.35));
  animation: eonia-loader-pulse 2.4s ease-in-out infinite;
}
.eonia-loader-particles { position: absolute; inset: 0; pointer-events: none; }
.eonia-loader-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #ffd65c;
  box-shadow: 0 0 10px #ffbf00;
  animation: eonia-loader-drift 3s ease-in-out infinite;
}
.eonia-loader-particle:nth-child(1) { left: 16%; top: 28%; }
.eonia-loader-particle:nth-child(2) { left: 77%; top: 24%; animation-delay: -1s; }
.eonia-loader-particle:nth-child(3) { left: 22%; top: 73%; animation-delay: -1.8s; }
.eonia-loader-particle:nth-child(4) { left: 82%; top: 68%; animation-delay: -.7s; }
.eonia-loader-particle:nth-child(5) { left: 49%; top: 12%; animation-delay: -1.4s; }
.eonia-loader-particle:nth-child(6) { left: 53%; top: 87%; animation-delay: -.4s; }
.eonia-loader-copy { min-width: 0; text-align: center; }
.eonia-loader-eyebrow {
  margin: 0 0 10px;
  color: var(--el-gold);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .23em;
  text-transform: uppercase;
}
.eonia-loader-title {
  margin: 0;
  color: var(--el-ivory);
  font-family: var(--eonia-font-display, Cinzel, Georgia, serif);
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 400;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.eonia-loader-message {
  min-height: 24px;
  margin: 12px 0 0;
  color: #c9cdd4;
  font-size: 14px;
  line-height: 1.55;
}
.eonia-loader-track {
  height: 8px;
  margin: 22px 0 8px;
  overflow: hidden;
  border: 1px solid rgba(212,175,55,.6);
  border-radius: 999px;
  background: #080a0d;
}
.eonia-loader-fill {
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #9c6b12, #ffbf00, #fff0a1);
  box-shadow: 0 0 14px rgba(255,191,0,.65);
  transition: width .35s ease;
}
.eonia-loader-track.is-indeterminate .eonia-loader-fill {
  width: 38%;
  animation: eonia-loader-indeterminate 1.5s ease-in-out infinite;
}
.eonia-loader-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--el-muted);
  font-size: 12px;
}
.eonia-loader-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin-top: 22px;
}
.eonia-loader-button {
  min-height: 42px;
  padding: 10px 15px;
  border: 1px solid rgba(212,175,55,.42);
  border-radius: 999px;
  background: #0b1016;
  color: var(--el-ivory);
  font: inherit;
  cursor: pointer;
}
.eonia-loader-button:hover { border-color: var(--el-gold); }
.eonia-loader-button:focus-visible { outline: 2px solid var(--el-amber); outline-offset: 3px; }
.eonia-loader-button--primary {
  border-color: var(--el-gold);
  background: linear-gradient(120deg, #d4af37, #ffca28);
  color: #15110a;
  font-weight: 700;
}
.eonia-loader-overlay[data-state="error"] .eonia-loader-orbit { border-color: rgba(255,89,56,.45); }
.eonia-loader-overlay[data-state="error"] .eonia-loader-core {
  background: linear-gradient(145deg, #ffb49f, #ff5938, #84220f);
  filter: drop-shadow(0 0 14px rgba(255,89,56,.7));
  animation: eonia-loader-shake .45s ease-in-out infinite alternate;
}
.eonia-loader-overlay[data-state="error"] .eonia-loader-fill { background: var(--el-red); }
.eonia-loader-overlay[data-state="complete"] .eonia-loader-core { animation: eonia-loader-pop .65s ease-out 1; }
.eonia-loader-overlay[data-state="complete"] .eonia-loader-track { border-color: rgba(212,175,55,.45); }
@keyframes eonia-loader-spin { to { transform: rotate(360deg); } }
@keyframes eonia-loader-pulse { 0%,100% { transform: scale(.9); opacity: .82; } 50% { transform: scale(1.08); opacity: 1; } }
@keyframes eonia-loader-drift { 0%,100% { transform: translate(0,0) scale(.7); opacity: .25; } 50% { transform: translate(9px,-12px) scale(1.35); opacity: 1; } }
@keyframes eonia-loader-indeterminate { 0% { transform: translateX(-120%); } 100% { transform: translateX(290%); } }
@keyframes eonia-loader-shake { to { transform: rotate(5deg) scale(1.05); } }
@keyframes eonia-loader-pop { 0% { transform: scale(.8); } 55% { transform: scale(1.3); } 100% { transform: scale(1); } }
@media (max-width: 600px) {
  .eonia-loader-overlay { padding: 10px; }
  .eonia-loader-dialog { border-radius: 15px; }
  .eonia-loader-head { padding: 18px 18px 0; }
  .eonia-loader-body { grid-template-columns: minmax(0,1fr); gap: 0; padding: 0 18px 20px; }
  .eonia-loader-visual { min-height: 155px; }
  .eonia-loader-orbit { width: 145px; }
  .eonia-loader-orbit--two { width: 120px; }
  .eonia-loader-orbit--three { width: 95px; }
  .eonia-loader-core { width: 29px; height: 41px; }
  .eonia-loader-copy { padding-bottom: 4px; }
  .eonia-loader-actions { margin-top: 16px; }
  .eonia-loader-button { flex: 1 1 135px; }
}
@media (prefers-reduced-motion: reduce) {
  .eonia-loader-overlay *,
  .eonia-loader-overlay *::before,
  .eonia-loader-overlay *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
