.transition-root{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  pointer-events: none;
}
.transition-root.active{ display:flex; }

.transition-overlay{
  width: min(760px, calc(100% - 28px));
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(10, 18, 28, .62);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 30px 120px rgba(0,0,0,.55);
  padding: 18px 18px 16px;
  transform: translateY(10px) scale(.98);
  opacity: 0;
  transition: opacity .22s ease, transform .22s ease;
}
.transition-root.active .transition-overlay{ opacity: 1; transform: translateY(0) scale(1); }

.tr-head{ display:flex; gap:12px; align-items:center; }
.tr-icon{
  width: 44px; height: 44px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
  font-size: 18px;
}
.tr-title{ font-size: 18px; font-weight: 900; letter-spacing: .2px; }
.tr-sub{ color: var(--muted); margin-top: 2px; font-size: 12.5px; }

.tr-progress{ margin-top: 14px; height: 10px; border-radius: 999px; overflow:hidden; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.04); }
.tr-bar{
  height: 100%;
  width: 30%;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(43,212,212,.0), rgba(43,212,212,.90), rgba(56,128,255,.88));
  animation: trMove 1.05s ease-in-out infinite;
}

@keyframes trMove{
  0%{ transform: translateX(-60%); width: 30%; }
  55%{ transform: translateX(40%); width: 55%; }
  100%{ transform: translateX(140%); width: 30%; }
}

.tr-mini{ margin-top: 10px; display:flex; gap:10px; flex-wrap:wrap; }
.tr-chip{ display:inline-flex; align-items:center; gap:8px; padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.05); color: rgba(255,255,255,.88); font-size: 12px; }
.tr-chip b{ color: rgba(255,255,255,.92); }

.transition-root.fadeout .transition-overlay{ opacity: 0; transform: translateY(10px) scale(.98); }
