/* SoulOne LIVE 0.10 — independent repertoire and stage, fit-to-viewport console.
 * Loaded after v05-v08 so the stage geometry is authoritative on desktop.
 */
:root{--live-stage-gap:10px}
.live-library-header{padding:13px 15px 11px;background:linear-gradient(125deg,#f7fbff,#edf5fc);border-bottom:1px solid #dce8f3;display:flex;align-items:center;justify-content:space-between;gap:8px}
.live-library-header strong{display:block;color:#1d405e;font-size:15px;letter-spacing:.015em;font-weight:850}
.live-library-header small{display:block;color:#728ba0;font-size:11px;margin-top:2px}
.live-library-marker{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border:1px solid #cfe2f3;border-radius:9px;background:#fff;color:#3773a0;font-size:18px}
.live-bottom-controls{display:none!important}
.stage-field--bpm .live-original-tempo{border:0!important;background:transparent!important;box-shadow:none!important;padding:0 5px!important;font-size:10px!important;color:#4d7da5!important;min-width:0!important;height:19px!important;line-height:19px!important}
.stage-field--bpm .live-original-tempo:hover{text-decoration:underline;color:#075ca6!important}
.stage-library-status{font-size:10px;color:#55758f;font-weight:700}
.stage-mixer-action{font-size:12px!important;font-weight:800!important;border:1px solid #c7dced;background:#edf6fe;color:#245979;border-radius:8px;min-height:32px;padding:5px 12px;cursor:pointer}
.stage-mixer-action:hover{background:#e1f0fd}
.stage-mixer-action:focus-visible{outline:3px solid #55a5e9;outline-offset:2px}
.stage-mixer-action[hidden]{display:none!important}
#fullscreenOffer{display:none!important}
.stage-footer-note{padding:0 3px!important}
.stage-footer-note span{white-space:nowrap}
.stage-field--bpm{position:relative}
.timeline .heading .eyebrow{color:#174e79;font-size:12px;font-weight:900;letter-spacing:.09em}
.timeline #songNote{font-weight:600;letter-spacing:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45vw}
.right.live-library-panel{border:1px solid #c8deef;border-radius:13px;background:white;box-shadow:0 7px 25px #24597d10}
.right.live-library-panel .tabs{background:#f9fcff}
.right.live-library-panel .tabs button{font-size:11px;letter-spacing:.015em}
.right.live-library-panel .tabcontent{background:#fff;scrollbar-color:#b1cde3 transparent}
.right.live-library-panel .cloud-toolbar{max-width:none;margin:0 9px 9px;padding:7px 8px;min-height:0;flex-wrap:wrap;gap:5px;font-size:10px;justify-content:flex-start;background:#f1f7fd}
.right.live-library-panel .cloud-toolbar strong{font-size:10px;flex:1 1 100%}
.right.live-library-panel .cloud-toolbar a{font-size:10px}
.live-workspace .timeline{border:1px solid #c8ddec;box-shadow:0 7px 25px #24597d10}
.live-workspace .progress-panel{border:1px solid #d1e0ed;box-shadow:none}
.stage-section-caption{display:inline-flex;font-size:10px;color:#5c829d;font-weight:750;gap:5px;align-items:center}
.stage-separation-line{width:1px;background:#d9e6f0}
@media(min-width:1000px) and (min-height:580px){
  html:not(.soulone-ipad-classic),html:not(.soulone-ipad-classic) body{height:100%;overflow:hidden!important}
  .cloud-toolbar:not(.live-library-panel .cloud-toolbar){display:none}
  body>.app{height:100vh;height:100dvh;max-height:100dvh;width:100%;max-width:none;min-width:0;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto clamp(210px,25dvh,278px);gap:6px;padding:7px 12px 9px;margin:0 auto}
  body>.app>.stage-header{grid-row:1;min-height:0;margin:0;padding:8px 12px;box-shadow:none}
  body>.app>.stage-footer-note{grid-row:2;min-height:18px;margin:0;display:flex!important;justify-content:space-between}
  body>.app>.main-grid{grid-row:3;min-width:0;min-height:0;height:100%;margin:0;display:grid!important;grid-template-columns:minmax(266px,19.5vw) minmax(0,1fr);grid-template-areas:"library stage";gap:14px;overflow:hidden!important}
  body>.app>.main-grid>.right{grid-area:library;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden}
  body>.app>.main-grid>.right>.tabs{flex:0 0 auto}
  body>.app>.main-grid>.right>.tabcontent{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px}
  body>.app>.main-grid>.right .setlist{max-height:none;overflow:visible}
  body>.app>.main-grid>.live-workspace{grid-area:stage;min-width:0!important;min-height:0;display:flex!important;flex-direction:column;overflow:hidden}
  body>.app>.main-grid>.live-workspace>#downloadPanel:not([hidden]){flex:0 0 auto;max-height:138px;overflow-y:auto;margin-bottom:6px}
  body>.app>.main-grid>.live-workspace>.timeline{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:10px 12px}
  body>.app>.main-grid>.live-workspace>.timeline>.heading{flex:0 0 auto;margin-bottom:8px;align-items:center}
  body>.app>.main-grid>.live-workspace>.timeline>.segments{flex:0 0 31px;height:31px}
  body>.app>.main-grid>.live-workspace>.timeline>.stems-visual{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto!important;overscroll-behavior-y:contain;scrollbar-color:#a9c8df transparent}
  body>.app>.main-grid>.live-workspace>.timeline>.time-numbers{flex:0 0 18px;margin-top:5px}
  body>.app>.main-grid>.live-workspace>.timeline .wave-row{flex:0 0 auto;height:37px}
  body>.app>.main-grid>.live-workspace>.progress-panel{flex:0 0 auto;min-height:59px;margin-top:6px;padding:5px 10px;gap:9px;flex-wrap:nowrap}
  body>.app>.main-grid>.live-workspace>.progress-panel .clock{font-size:24px}
  body>.app>.main-grid>.live-workspace>.progress-panel .clock small{font-size:13px}
  body>.app>.main-grid>.live-workspace>.progress-panel .transport{flex:0 0 auto;gap:7px;flex-wrap:nowrap}
  body>.app>.main-grid>.live-workspace>.progress-panel .transport button{min-width:42px;height:43px;font-size:17px}
  body>.app>.main-grid>.live-workspace>.progress-panel .transport .start{min-width:62px;height:48px;font-size:22px}
  body>.app>.main-grid>.live-workspace>.progress-panel .length{min-width:80px;flex:1}
  body>.app>.meter-title{grid-row:4;min-height:29px!important;max-height:29px;margin:0!important;display:flex;align-items:center;justify-content:space-between}
  body>.app>#mixer.clean-mixer{grid-row:5;min-height:0;height:100%;overflow:hidden!important;padding:0 0 4px}
  body>.app>#mixer.clean-mixer .clean-group{min-height:0}
  body>.app>#mixer.clean-mixer .clean-rail{min-height:0}
  body>.app>#mixer.clean-mixer .clean-group--music .clean-rail{overflow-x:auto;overflow-y:hidden}
  body>.app>.bottomline{display:none!important}
  body>.app.stage-mixer-collapsed{grid-template-rows:auto auto minmax(0,1fr) auto}
  body>.app.stage-mixer-collapsed>#mixer{display:none!important}
  body>.app>.stage-header .stage-actions #status{max-width:170px}
}
@media(min-width:1000px) and (min-height:580px) and (max-height:810px){
  body>.app{grid-template-rows:auto auto minmax(0,1fr) auto 208px}
  body>.app .stage-footer-note{font-size:10px}
  body>.app .timeline .wave-row{height:33px!important}
  body>.app .main-grid .live-workspace .timeline{padding:7px 10px}
  body>.app #mixer .strip{min-height:200px}
  body>.app #mixer .strip .faderbox{height:105px}
  body>.app #mixer .strip .meter,body>.app #mixer .strip .v-range{height:88px}
  body>.app.stage-mixer-collapsed{grid-template-rows:auto auto minmax(0,1fr) auto}
}
@media(min-width:1000px) and (min-height:580px) and (max-width:1270px){
  body>.app .main-grid{grid-template-columns:minmax(246px,26vw) minmax(0,1fr);gap:9px}
  body>.app .right .tabs button{font-size:10px;padding:10px 4px}
  body>.app .right .tabcontent{padding:6px}
}
@media(min-width:921px) and (max-width:999px){
  .main-grid{grid-template-columns:minmax(0,1fr) 265px;gap:10px}
  .right.live-library-panel{display:flex;flex-direction:column}
  .right.live-library-panel .tabcontent{flex:1}
}
@media(max-width:920px){
  .live-library-header{padding:9px 11px}
  .right.live-library-panel .cloud-toolbar{margin:0 7px 8px}
  .timeline #songNote{max-width:80vw}
  .stage-mixer-action{display:none!important}
  .stage-field--bpm .live-original-tempo{font-size:9px!important}
}
@media(max-width:920px) and (pointer:coarse) and (orientation:landscape){
  .right.live-library-panel .cloud-toolbar{display:none}
  .right.live-library-panel .live-library-header{display:none}
}

/* Fullscreen element on <html> has more-specific v07 flex rules.
 * Keep the same grid geometry in native fullscreen as on first page load. */
@media(min-width:1000px) and (min-height:580px){
 html:fullscreen body>.app{
   display:grid!important;
   height:100dvh!important;
   max-height:100dvh!important;
   overflow:hidden!important;
   grid-template-rows:auto auto minmax(0,1fr) auto clamp(210px,25dvh,278px);
 }
 html:fullscreen body>.app.stage-mixer-collapsed{
   grid-template-rows:auto auto minmax(0,1fr) auto!important;
 }
 html:fullscreen body>.app>.main-grid{flex:none!important;overflow:hidden!important;height:100%;min-height:0}
 html:fullscreen body>.app>.main-grid>.live-workspace>.timeline>.stems-visual{max-height:none!important}
}
@media(min-width:1000px) and (min-height:580px) and (max-height:810px){
 html:fullscreen body>.app:not(.stage-mixer-collapsed){grid-template-rows:auto auto minmax(0,1fr) auto 208px}
}

/* Rehearsal reliability: show whether the next song really is decoded. */
.timeline .heading .next-song-readiness{
 display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
 border:1px solid #d6e4ee;border-radius:7px;background:#f2f7fb;
 color:#58748b;font-size:10px;font-weight:800;padding:6px 9px;line-height:1.2;
 max-width:220px;overflow:hidden;text-overflow:ellipsis;
}
.timeline .heading .next-song-readiness.ready{
 color:#146d51;background:#e9f7f0;border-color:#b9e4d0;
}
.timeline .heading .next-song-readiness[hidden]{display:none!important}
@media(max-width:1200px){
 .timeline .heading .next-song-readiness{font-size:9px;max-width:165px;padding:5px}
}
@media(max-width:920px){
 .timeline .heading .next-song-readiness{max-width:138px;white-space:normal;line-height:1.2}
}
