/* =========================================================
   DAWS Loader — Orbit Core (CSS-only)
   Prefijo: daws-
   ========================================================= */

:root{
  --dawsL-bg: rgba(5, 10, 25, .84);
  --dawsL-card: rgba(255,255,255,.06);
  --dawsL-border: rgba(255,255,255,.14);
  --dawsL-text: rgba(255,255,255,.92);
  --dawsL-muted: rgba(255,255,255,.62);

  --dawsL-blue: rgba(59,130,246,1);
  --dawsL-green: rgba(34,197,94,1);
  --dawsL-violet: rgba(168,85,247,1);

  --dawsL-shadow: 0 28px 90px rgba(0,0,0,.55);
}

.daws-loader{
  position: fixed;
  inset: 0;
  display: none;              /* se activa con .is-active */
  place-items: center;
  z-index: 99999;
  background: radial-gradient(circle at 20% 10%, rgba(59,130,246,.18), transparent 45%),
              radial-gradient(circle at 80% 20%, rgba(168,85,247,.14), transparent 50%),
              radial-gradient(circle at 50% 95%, rgba(34,197,94,.10), transparent 55%),
              var(--dawsL-bg);
  backdrop-filter: blur(10px);
}

.daws-loader.is-active{ display: grid; }

.daws-loader__wrap{
  width: min(560px, 92vw);
  border-radius: 26px;
  border: 1px solid var(--dawsL-border);
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  box-shadow: var(--dawsL-shadow);
  padding: 22px 20px 18px;
  position: relative;
  overflow: hidden;
}

/* Halo exterior */
.daws-loader__wrap::before{
  content:"";
  position:absolute;
  inset:-28px;
  background:
    radial-gradient(circle at 18% 22%, rgba(59,130,246,.22), transparent 48%),
    radial-gradient(circle at 82% 28%, rgba(168,85,247,.18), transparent 52%),
    radial-gradient(circle at 50% 85%, rgba(34,197,94,.14), transparent 58%);
  filter: blur(30px);
  opacity: .75;
  pointer-events:none;
}

/* Estrellitas sutiles */
.daws-loader__wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.18) 1px, transparent 2px),
    radial-gradient(circle, rgba(255,255,255,.12) 1px, transparent 2px);
  background-size: 60px 60px, 90px 90px;
  background-position: 0 0, 30px 15px;
  opacity: .25;
  mask-image: radial-gradient(circle at 50% 30%, black 35%, transparent 70%);
  pointer-events:none;
}

/* Badge */
.daws-loader__badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: var(--dawsL-text);
  font-weight: 900;
  letter-spacing:.08em;
  text-transform: uppercase;
  font-size: 12px;
  position: relative;
  z-index: 1;
}
.daws-loader__dot{
  width: 10px; height:10px; border-radius:50%;
  background: var(--dawsL-green);
  box-shadow: 0 0 18px rgba(34,197,94,.55);
  animation: dawsDot 1.2s ease-in-out infinite;
}
@keyframes dawsDot{
  0%,100%{ transform: scale(1); opacity:.9; }
  50%{ transform: scale(1.25); opacity:1; }
}

/* Orbit */
.daws-orbit{
  width: 170px;
  height: 170px;
  margin: 16px auto 10px;
  position: relative;
  z-index: 1;
}

/* Core */
.daws-orbit__core{
  position:absolute;
  inset: 50%;
  width: 28px; height:28px;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.95), rgba(59,130,246,.65), rgba(5,10,25,.1));
  box-shadow:
    0 0 24px rgba(59,130,246,.55),
    0 0 52px rgba(168,85,247,.22),
    inset 0 0 14px rgba(255,255,255,.35);
  animation: dawsCore 1.4s ease-in-out infinite;
}
@keyframes dawsCore{
  0%,100%{ transform: translate(-50%,-50%) scale(1); }
  50%{ transform: translate(-50%,-50%) scale(1.12); }
}

/* Rings */
.daws-orbit__ring{
  position:absolute;
  inset: 50%;
  transform: translate(-50%,-50%);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: inset 0 0 18px rgba(255,255,255,.06);
  filter: drop-shadow(0 0 10px rgba(59,130,246,.12));
}

.daws-orbit__ring--a{ width: 130px; height: 68px; transform: translate(-50%,-50%) rotate(18deg); }
.daws-orbit__ring--b{ width: 108px; height: 108px; transform: translate(-50%,-50%) rotate(0deg); border-color: rgba(168,85,247,.18); }
.daws-orbit__ring--c{ width: 150px; height: 86px; transform: translate(-50%,-50%) rotate(-18deg); border-color: rgba(34,197,94,.16); }

.daws-orbit__ring--a{ animation: dawsSpinA 1.6s linear infinite; }
.daws-orbit__ring--b{ animation: dawsSpinB 2.2s linear infinite; }
.daws-orbit__ring--c{ animation: dawsSpinC 1.9s linear infinite; }

@keyframes dawsSpinA{ to{ transform: translate(-50%,-50%) rotate(378deg);} }
@keyframes dawsSpinB{ to{ transform: translate(-50%,-50%) rotate(-360deg);} }
@keyframes dawsSpinC{ to{ transform: translate(-50%,-50%) rotate(342deg);} }

/* Satellites */
.daws-orbit__sat{
  position:absolute;
  width: 10px; height:10px;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  box-shadow: 0 0 16px rgba(255,255,255,.28);
}

.daws-orbit__sat--a{ top: 22px; left: 38px; background: rgba(59,130,246,.95); box-shadow: 0 0 18px rgba(59,130,246,.55); animation: dawsSatA 1.6s linear infinite; }
.daws-orbit__sat--b{ top: 112px; left: 120px; background: rgba(168,85,247,.95); box-shadow: 0 0 18px rgba(168,85,247,.48); animation: dawsSatB 2.2s linear infinite; }
.daws-orbit__sat--c{ top: 124px; left: 44px; background: rgba(34,197,94,.95); box-shadow: 0 0 18px rgba(34,197,94,.45); animation: dawsSatC 1.9s linear infinite; }

@keyframes dawsSatA{ to{ transform: rotate(360deg) translateX(0px);} }
@keyframes dawsSatB{ to{ transform: rotate(-360deg) translateX(0px);} }
@keyframes dawsSatC{ to{ transform: rotate(360deg) translateX(0px);} }

/* Sparks */
.daws-orbit__spark{
  position:absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.20), transparent 35%),
    radial-gradient(circle at 70% 70%, rgba(59,130,246,.16), transparent 38%),
    radial-gradient(circle at 25% 75%, rgba(34,197,94,.10), transparent 40%);
  filter: blur(10px);
  opacity: .55;
  animation: dawsSpark 1.6s ease-in-out infinite;
}
.daws-orbit__spark--2{ animation-duration: 2.1s; opacity:.45; }
.daws-orbit__spark--3{ animation-duration: 2.7s; opacity:.35; }
@keyframes dawsSpark{
  0%,100%{ transform: scale(1); }
  50%{ transform: scale(1.06); }
}

/* Text */
.daws-loader__title{
  text-align: center;
  margin-top: 6px;
  position: relative;
  z-index: 1;
}
.daws-loader__brand{
  display:block;
  color: var(--dawsL-text);
  font-weight: 1000;
  letter-spacing: .4px;
  font-size: 18px;
}
.daws-loader__tag{
  display:block;
  margin-top: 6px;
  color: var(--dawsL-muted);
  font-size: 12px;
  line-height: 1.5;
}

/* Progress bar (fake but wow) */
.daws-loader__bar{
  margin: 14px auto 0;
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  overflow:hidden;
  position: relative;
  z-index: 1;
}
.daws-loader__barFill{
  width: 44%;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(59,130,246,.95), rgba(34,197,94,.85), rgba(168,85,247,.85));
  box-shadow: 0 0 18px rgba(59,130,246,.32);
  animation: dawsBar 1.2s ease-in-out infinite;
}
@keyframes dawsBar{
  0%{ transform: translateX(-25%); width: 35%; opacity:.85; }
  50%{ transform: translateX(40%); width: 62%; opacity:1; }
  100%{ transform: translateX(-25%); width: 35%; opacity:.85; }
}

.daws-loader__hint{
  margin-top: 10px;
  text-align:center;
  color: var(--dawsL-muted);
  font-size: 12px;
  position: relative;
  z-index: 1;
}
.daws-loader__pulseText{
  color: rgba(255,255,255,.78);
  animation: dawsPulseText 1.1s ease-in-out infinite;
}
@keyframes dawsPulseText{
  0%,100%{ opacity:.70; }
  50%{ opacity:1; }
}

/* Mobile */
@media (max-width: 540px){
  .daws-orbit{ width: 150px; height: 150px; }
  .daws-loader__wrap{ padding: 18px 16px 16px; border-radius: 22px; }
  .daws-loader__brand{ font-size: 16px; }
}
