/* SOUL ONE LIVE 4.6 — One song-progress surface, full-height filled player.
   The top duplicate arrangement strip is retired. Audio and section markers
   remain available via the original timeline and Secciones navigation.
*/
body>.app>.sl-arrangement-map{display:none!important}
/* The original .sl-np-track remains a semantic ARIA progressbar, but the
   visual fill now belongs to the entire now-playing rectangle. */
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing{
  --sl-card-progress:0%;
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  background:linear-gradient(110deg,#132c40,#173b4d)!important;
  color:#f2f8fd!important;
  border-top:1px solid #345f73!important;
  border-bottom:1px solid #356377!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
}
/* A continuous left-to-right fill covers the ENTIRE card height.
   It never creates a separate bar, handle, animated dot, or playhead. */
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:var(--sl-card-progress,0%);
  height:100%;
  z-index:0;
  border:0;
  border-radius:0;
  background:linear-gradient(100deg,rgba(24,130,185,.62),rgba(35,190,182,.55));
  box-shadow:inset 0 -2px 0 rgba(100,237,204,.32);
  pointer-events:none;
  transition:none!important;
  animation:none!important;
}
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing .sl-np-upper{
  display:flex!important;
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  min-width:0!important;
}
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing .sl-np-title,
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing .sl-np-time{
  color:#f6fcff!important;
  font-variant-numeric:tabular-nums;
  text-shadow:0 1px 3px rgba(3,27,38,.55);
}
/* Preserve screen-reader progress data, remove the duplicate THIN rail.
   Higher specificity defeats legacy CSS that explicitly displays it. */
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing .sl-np-track{
  display:block!important;
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-height:1px!important;
  max-height:1px!important;
  flex:none!important;
  left:0!important;
  top:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  clip-path:inset(50%)!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:none!important;
}
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing .sl-pro-context{
  position:relative!important;
  z-index:2!important;
}
html:not(.soulone-ipad-classic) body>.app .main-grid>.right.live-library-panel>.sl-now-playing .sl-pro-transport{
  position:relative!important;
  z-index:3!important;
}
@media(min-width:1000px) and (min-height:580px) and (pointer:fine){
  /* v39 reserved an extra 96px GRID ROW for the duplicate map.
     Remove that ghost row in EVERY mode, respecting the current faders
     and the compact header/window states. */
  html:not(.soulone-ipad-classic) body>.app{
    --sl-compact-header-row:76px;
  }
  html:not(.soulone-ipad-classic) body>.app.sl-header-minimized{
    --sl-compact-header-row:44px;
  }
  html:not(.soulone-ipad-classic) body>.app:not(.sl-mode-stage):not(.sl-mode-repertoire):not(.stage-mixer-collapsed),
  html:fullscreen body>.app:not(.sl-mode-stage):not(.sl-mode-repertoire):not(.stage-mixer-collapsed){
    grid-template-rows:var(--sl-compact-header-row) 43px minmax(0,1fr) 40px clamp(270px,35dvh,370px)!important;
  }
  html:not(.soulone-ipad-classic) body>.app.sl-mode-mix:not(.stage-mixer-collapsed):not(.sl-large-faders),
  html:fullscreen body>.app.sl-mode-mix:not(.stage-mixer-collapsed):not(.sl-large-faders){
    grid-template-rows:var(--sl-compact-header-row) 43px minmax(0,1fr) 40px clamp(300px,44dvh,490px)!important;
  }
  html:not(.soulone-ipad-classic) body>.app.sl-large-faders:not(.sl-mode-stage):not(.sl-mode-repertoire):not(.stage-mixer-collapsed),
  html:fullscreen body>.app.sl-large-faders:not(.sl-mode-stage):not(.sl-mode-repertoire):not(.stage-mixer-collapsed){
    grid-template-rows:var(--sl-compact-header-row) 43px minmax(0,1fr) 40px clamp(350px,55dvh,660px)!important;
  }
  html:not(.soulone-ipad-classic) body>.app.stage-mixer-collapsed:not(.sl-mode-stage):not(.sl-mode-repertoire),
  html:fullscreen body>.app.stage-mixer-collapsed:not(.sl-mode-stage):not(.sl-mode-repertoire),
  html:not(.soulone-ipad-classic) body>.app.sl-mode-stage,
  html:fullscreen body>.app.sl-mode-stage,
  html:not(.soulone-ipad-classic) body>.app.sl-mode-repertoire,
  html:fullscreen body>.app.sl-mode-repertoire{
    grid-template-rows:var(--sl-compact-header-row) 43px minmax(0,1fr)!important;
  }
  /* Map removal does not move the workspace into the mixer row.
     Fix an earlier leftover visual-slot constraint explicitly. */
  body>.app>.main-grid{
    grid-row:3!important;
    min-height:0!important;
  }
  body>.app:not(.sl-mode-stage):not(.sl-mode-repertoire):not(.stage-mixer-collapsed)>.meter-title{
    grid-row:4!important;
  }
  body>.app:not(.sl-mode-stage):not(.sl-mode-repertoire):not(.stage-mixer-collapsed)>#mixer{
    grid-row:5!important;
  }
}
/* Mobile keeps its own screen/window layout; the retired duplicate
   arrangement strip is hidden there as well, with no mixer changes. */
@media(prefers-reduced-motion:reduce){
  html:not(.soulone-ipad-classic) body>.app .right.live-library-panel>.sl-now-playing::before{
    transition:none!important;
  }
}
