/* ===== Submission Loader Overlay — Amplitech ===== */
:root{
  --loader-navy: #0B1B2B;
  --loader-navy-2: #12283F;
  --loader-steel: #7A8A9A;
  --loader-amber: #FFA630;
  --loader-line: #1E3550;
  --loader-success: #3DDC97;
}

.overlay{
  position:fixed;
  inset:0;
  background: rgba(6, 14, 24, 0.88);
  backdrop-filter: blur(3px);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition: opacity 0.25s ease;
  z-index:9999;
}
.overlay.active{
  opacity:1;
  pointer-events:all;
}

.loader-box{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1.6rem;
}

.signal-path{
  width:220px;
  height:70px;
  position:relative;
}
.signal-path svg{ width:100%; height:100%; }

.path-line{
  fill:none;
  stroke: var(--loader-line);
  stroke-width:2;
}

.path-pulse{
  fill:none;
  stroke: var(--loader-amber);
  stroke-width:3;
  stroke-linecap:round;
  stroke-dasharray: 40 400;
  stroke-dashoffset:0;
  animation: loader-travel 1.8s linear infinite;
  filter: drop-shadow(0 0 4px var(--loader-amber));
}

@keyframes loader-travel{
  from{ stroke-dashoffset: 0; }
  to{ stroke-dashoffset: -440; }
}

.node{
  fill: var(--loader-navy-2);
  stroke: var(--loader-steel);
  stroke-width:1.5;
}
.node.lit{
  stroke: var(--loader-amber);
}

.status-text{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:0.95rem;
  letter-spacing:0.03em;
  color:#fff;
  text-align:center;
  min-height:1.4em;
}

.status-sub{
  font-family:'Inter', sans-serif;
  font-size:0.78rem;
  color: var(--loader-steel);
  text-align:center;
  letter-spacing:0.02em;
}

.success-tick{
  display:none;
  align-items:center;
  justify-content:center;
  width:56px;
  height:56px;
  border-radius:50%;
  border:2px solid var(--loader-success);
}
.success-tick svg{ width:26px; height:26px; }
.success-tick.show{ display:flex; }
