/* ADIMASTER 3.2.23 — persistent quantum player + isolated media engine */
#adiPersistentPlayerDock{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:2147482600;
  width:min(470px,calc(100vw - 36px));
  pointer-events:none;
  transition:transform .28s ease,opacity .28s ease;
}
#adiPersistentPlayerDock>*{pointer-events:auto}
#adiPersistentPlayerDock .quantumPlayer{
  width:100%!important;
  min-width:0!important;
  padding:10px!important;
  border-radius:24px!important;
  transform:none!important;
  box-shadow:0 24px 70px rgba(0,0,0,.52),0 0 50px rgba(42,220,255,.09),18px 0 55px rgba(222,44,184,.045)!important;
  background:linear-gradient(145deg,rgba(7,18,31,.94),rgba(4,8,16,.88))!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.25)!important;
  backdrop-filter:blur(24px) saturate(1.25)!important;
}
#adiPersistentPlayerDock .quantumPlayer:hover{transform:translateY(-2px)!important}
#adiPersistentPlayerDock .qpMain{
  grid-template-columns:118px minmax(0,1fr)!important;
  min-height:174px!important;
  gap:14px!important;
  padding:11px!important;
  border-radius:19px!important;
}
#adiPersistentPlayerDock .qpData h2{font-size:clamp(18px,1.5vw,25px)!important}
#adiPersistentPlayerDock .qpData p{font-size:9px!important;min-height:25px!important;margin:5px 0 8px!important}
#adiPersistentPlayerDock .qpWave{height:23px!important;margin:0 0 8px!important}
#adiPersistentPlayerDock .qpControls{gap:7px!important}
#adiPersistentPlayerDock .qpControls button{width:34px!important;height:34px!important;font-size:17px!important}
#adiPersistentPlayerDock .qpControls .qpPlay{width:42px!important;height:42px!important;font-size:14px!important}
#adiPersistentPlayerDock .qpContinuous{margin-top:9px!important;min-height:37px!important;padding:5px 8px!important}
#adiPersistentPlayerDock .qpFooter{min-height:27px!important;font-size:7px!important}
#adiPersistentPlayerDock .qpTopline{min-height:28px!important;font-size:7px!important}
#adiPersistentPlayerDock .qpModeSwitch button{padding:4px 8px!important;font-size:7px!important}
#adiPersistentPlayerDock .qpRadioPresets{gap:4px!important;margin-bottom:7px!important}
#adiPersistentPlayerDock .qpRadioPresets button{padding:5px 3px!important}
#adiPersistentPlayerDock .qpRadioPresets strong{font-size:7px!important}
#adiPersistentPlayerDock .qpRadioPresets span{font-size:6px!important}
#adiPersistentPlayerDock .qpSeekWrap{font-size:6px!important;margin-bottom:8px!important}

#adiPlayerDockToggle{
  position:absolute;right:9px;top:-13px;z-index:9;
  width:27px;height:27px;border-radius:50%;
  border:1px solid rgba(90,231,255,.26);
  background:rgba(5,13,23,.94);color:#93edff;
  display:grid;place-items:center;cursor:pointer;
  font:700 14px/1 Arial,sans-serif;
  box-shadow:0 0 15px rgba(65,223,255,.09);
}
#adiPersistentPlayerDock.collapsed{width:54px;height:54px}
#adiPersistentPlayerDock.collapsed #heroFeature{display:none!important}
#adiPersistentPlayerDock.collapsed #adiPlayerDockToggle{
  position:static;width:54px;height:54px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,rgba(85,239,255,.24),rgba(73,76,255,.18) 48%,rgba(232,55,179,.15));
  font-size:19px;
}

/* The media browsing contexts live outside all route/view layout. */
#adiMediaEngine{
  position:fixed!important;
  left:-10px!important;top:-10px!important;
  width:2px!important;height:2px!important;
  overflow:hidden!important;opacity:.001!important;
  pointer-events:none!important;z-index:-1!important;
  contain:strict!important;
}
#adiMediaEngine .mediaFrame{
  position:absolute!important;left:0!important;top:0!important;
  width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;
  opacity:.001!important;pointer-events:none!important;border:0!important;
  display:block!important;visibility:visible!important;
}
#adiMediaEngine .mediaFrameHidden{display:block!important;visibility:visible!important}

/* Old compact bottom player becomes control-state only; quantum dock is the single visible player. */
#player{display:none!important}

/* The new dock must sit above the isolated gateway, but below boot. */
#adiGatewayFrameShell{z-index:2147482000!important}
#adiPersistentPlayerDock{z-index:2147482600!important}

/* Route switches while audio is playing: avoid costly entrance CSS bursts. */
body.adiAudioRouteGuard main .view,
body.adiAudioRouteGuard main .view *{
  transition-duration:0s!important;
  animation-duration:0s!important;
  animation-delay:0s!important;
}
body.adiAudioRouteGuard #adiPersistentPlayerDock,
body.adiAudioRouteGuard #adiPersistentPlayerDock *{
  animation-duration:revert!important;
  transition-duration:revert!important;
}

/* Original home halos are no longer needed after the player is docked. */
.heroVisual>.qpHalo{display:none!important}

@media(max-width:760px){
  #adiPersistentPlayerDock{right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:min(390px,calc(100vw - 16px))}
  #adiPersistentPlayerDock .qpMain{grid-template-columns:82px minmax(0,1fr)!important;min-height:142px!important;gap:9px!important;padding:8px!important}
  #adiPersistentPlayerDock .qpTopline{padding:0 5px!important}
  #adiPersistentPlayerDock .qpData h2{font-size:17px!important}
  #adiPersistentPlayerDock .qpData p{display:none!important}
  #adiPersistentPlayerDock .qpWave{height:18px!important;margin-bottom:5px!important}
  #adiPersistentPlayerDock .qpContinuous{display:none!important}
  #adiPersistentPlayerDock .qpFooter{display:none!important}
  #adiPersistentPlayerDock .qpRadioPresets span{display:none!important}
  #adiPersistentPlayerDock:not(.userExpandedMobile){width:54px;height:54px}
  #adiPersistentPlayerDock:not(.userExpandedMobile) #heroFeature{display:none!important}
  #adiPersistentPlayerDock:not(.userExpandedMobile) #adiPlayerDockToggle{position:static;width:54px;height:54px;border-radius:50%;font-size:19px}
}
