/* ======================================================================
   ADIMASTER RELEASE 45 — REACTOR PLAYER V15 — DESKTOP CTA CLEARANCE
   Precision desktop-only tightening over R44.
   Goal: keep the player entirely to the RIGHT of the Gateway CTA ejector
   arrows at the 1920px desktop composition while reducing black dead space.
   Mobile R41 and all JS/audio/radio logic remain untouched.

   Primary 1920px target:
   dock: 640px wide x 204px high, right:14px, bottom:14px
   header: 28px | body: 150px | footer: 18px | outer padding:4px
   body: 108px art | 170px metadata | flexible reactor field
   ====================================================================== */

@media (min-width:981px){
  /* Hard visual boundary: compact right-side instrument, no CTA overlap. */
  #adiPersistentPlayerDock{
    right:14px!important;
    bottom:14px!important;
    width:clamp(520px,33.2vw,640px)!important;
    max-width:calc(100vw - 28px)!important;
  }

  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34{
    height:204px!important;
    min-height:204px!important;
    max-height:204px!important;
    border-radius:15px!important;
    background:
      radial-gradient(42% 155% at 72% 108%,rgba(83,69,255,.17),transparent 60%),
      radial-gradient(31% 126% at 10% 96%,rgba(31,185,255,.115),transparent 62%),
      radial-gradient(23% 112% at 98% 42%,rgba(240,91,217,.08),transparent 66%),
      linear-gradient(180deg,rgba(2,8,18,.982),rgba(1,5,13,.995))!important;
  }

  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34::after{
    height:60px!important;
    opacity:.31!important;
  }

  /* Header: one thin command rail. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpTopline{
    height:28px!important;
    min-height:28px!important;
    padding:0 36px 0 14px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpModeSwitch{
    height:28px!important;
    gap:34px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpModeSwitch button{
    min-width:72px!important;
    height:28px!important;
    font-size:8.3px!important;
    letter-spacing:.18em!important;
  }

  /* Dense inner geometry — designed, not merely scaled. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpMain{
    height:150px!important;
    min-height:150px!important;
    max-height:150px!important;
    grid-template-columns:108px minmax(158px,.74fr) minmax(252px,1.20fr)!important;
    grid-template-rows:8px 24px 13px 57px 18px!important;
    column-gap:10px!important;
    row-gap:2px!important;
    padding:9px 10px!important;
    border-radius:11px!important;
    background:
      radial-gradient(132px 116px at 54px 72px,rgba(29,188,255,.105),transparent 70%),
      radial-gradient(220px 124px at 72% 55%,rgba(78,77,255,.105),transparent 66%),
      radial-gradient(145px 108px at 97% 48%,rgba(240,91,217,.062),transparent 73%),
      linear-gradient(180deg,rgba(2,10,21,.965),rgba(1,6,15,.985))!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpMain::after{
    right:12px!important;
    top:8px!important;
    width:270px!important;
    height:128px!important;
    opacity:.61!important;
  }

  /* Album is still a strong visual anchor, just no longer oversized. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCoverStage,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34.radioMode .qpCoverStage,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCoverStage img{
    width:108px!important;
    min-width:108px!important;
    height:108px!important;
    min-height:108px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCoverStage{
    border-radius:12px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCoverStage img{
    border-radius:10px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34.radioMode .qpCoverStage img{
    padding:16px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCorner{
    width:13px!important;
    height:13px!important;
  }

  /* Metadata fills the middle instead of floating in empty black space. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpEyebrow{
    font-size:6.2px!important;
    letter-spacing:.19em!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpData h2{
    font-size:17px!important;
    line-height:1!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpData p{
    font-size:7px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpWave{
    height:26px!important;
    padding:0 3px!important;
    gap:3px!important;
    opacity:.70!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpWave span{
    width:2.6px!important;
  }

  /* Reactor field: compressed horizontally, same visual importance. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34.radioMode .qpControls{
    height:92px!important;
    min-height:92px!important;
    padding:0 12px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::before,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::after{
    width:72px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::before{left:43px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::after{right:43px!important}

  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls button:not(.qpPlay){
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    flex:0 0 34px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 #qpPrev::before{
    left:12px!important;
    margin-top:-5px!important;
    border-top-width:5px!important;
    border-bottom-width:5px!important;
    border-right-width:7px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 #qpNext::before{
    right:12px!important;
    margin-top:-5px!important;
    border-top-width:5px!important;
    border-bottom-width:5px!important;
    border-left-width:7px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 #qpPrev::after,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 #qpNext::after{
    height:11px!important;
    margin-top:-5.5px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 #qpPrev::after{left:9px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 #qpNext::after{right:9px!important}

  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpPlay,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34.radioMode .qpPlay{
    width:64px!important;
    height:64px!important;
    min-width:64px!important;
    min-height:64px!important;
    flex:0 0 64px!important;
    font-size:17px!important;
    box-shadow:
      0 0 0 4px rgba(115,247,255,.045),
      0 0 0 9px rgba(123,97,255,.032),
      0 0 25px rgba(65,218,255,.31),
      0 0 41px rgba(123,97,255,.11),
      inset 0 0 20px rgba(145,251,255,.22),
      inset 0 -11px 18px rgba(5,18,55,.34)!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpPlay::before{inset:-9px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpPlay::after{inset:-15px!important}

  /* Energy rail stays long, but no longer stretches through a dead desert. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpSeekWrap{
    height:18px!important;
    gap:6px!important;
    font-size:5.8px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpSeekWrap span{
    width:27px!important;
    flex:0 0 27px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpContinuous{
    left:59%!important;
    bottom:6px!important;
  }

  /* Radio presets remain usable in the narrower instrument bay. */
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpRadioPresets{
    height:35px!important;
    gap:3px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpRadioPresets button{
    height:35px!important;
    min-height:35px!important;
    padding:3px 1px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpRadioPresets strong{font-size:6px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpRadioPresets span{font-size:5.1px!important}

  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpFooter{
    height:18px!important;
    min-height:18px!important;
    padding:3px 8px 0!important;
  }

  /* Exact note centering: SVG glyph with a 24x24 mathematical viewBox,
     not a font glyph with asymmetric side bearings. */
  #adiPersistentPlayerDock.collapsed #adiPlayerDockToggle{
    font-size:0!important;
    color:transparent!important;
    text-indent:-9999px!important;
  }
  #adiPersistentPlayerDock.collapsed #adiPlayerDockToggle::before{
    content:""!important;
    left:50%!important;
    top:50%!important;
    width:25px!important;
    height:25px!important;
    transform:translate(-50%,-50%)!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f2ffff' d='M12 3v10.55A4 4 0 1 0 14 17V7h4V3h-6z'/%3E%3C/svg%3E")!important;
    background-position:center!important;
    background-repeat:no-repeat!important;
    background-size:25px 25px!important;
    filter:drop-shadow(0 0 5px rgba(151,253,255,.98)) drop-shadow(0 0 10px rgba(73,186,255,.50))!important;
    text-shadow:none!important;
    animation:r45NoteSignal 2.0s ease-in-out infinite!important;
  }
}

/* Mid-size desktop: keep the same density instead of allowing R44's 700px bay. */
@media (min-width:981px) and (max-width:1599px){
  #adiPersistentPlayerDock{width:clamp(500px,35vw,560px)!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpMain{
    grid-template-columns:98px minmax(142px,.72fr) minmax(226px,1.18fr)!important;
    column-gap:8px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCoverStage,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34.radioMode .qpCoverStage,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpCoverStage img{
    width:98px!important;min-width:98px!important;height:98px!important;min-height:98px!important;
  }
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpData h2{font-size:15.5px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpData p{font-size:6.5px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls{padding:0 8px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::before,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::after{width:54px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::before{left:38px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpControls::after{right:38px!important}
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34 .qpPlay,
  #adiPersistentPlayerDock #heroFeature.adiReactorPlayer34.radioMode .qpPlay{
    width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;flex-basis:60px!important;
  }
}

@media (prefers-reduced-motion:reduce) and (min-width:981px){
  #adiPersistentPlayerDock.collapsed #adiPlayerDockToggle::before{animation:none!important}
}

@keyframes r45NoteSignal{
  0%,100%{opacity:.88;filter:drop-shadow(0 0 5px rgba(151,253,255,.82)) drop-shadow(0 0 9px rgba(73,186,255,.38)) brightness(.96)}
  50%{opacity:1;filter:drop-shadow(0 0 7px rgba(151,253,255,1)) drop-shadow(0 0 14px rgba(73,186,255,.65)) brightness(1.18)}
}
