/* v20 industrial live-radio deck, 100% genuine playback engine from v15 */
body{--v20-radio:#ed55f5;--v20-blue:#53dcfc;background-color:#040408!important}
body::before{background:radial-gradient(circle at 20% 28%,#8c0dad17,transparent 48%),radial-gradient(circle at 88% 65%,#03568c17,transparent 50%),repeating-linear-gradient(135deg,#0b0b11 0px,#0b0b11 2px,#06060a 3px,#06060a 8px)!important}
.mast{border-radius:0!important;padding:13px clamp(12px,3vw,40px)!important}
.mast .eyebrow{color:#d39de1!important}.mast h1 span{color:#e56cff!important;text-shadow:0 0 19px #ef4bff9a}
.mast-home{background:linear-gradient(#2c2336,#080a12)!important;border:1px solid #b45bd9!important;color:#f3dcff!important;border-radius:7px!important}
body main{width:100%!important;max-width:1750px!important;margin:0 auto!important;padding:0 clamp(8px,2vw,30px) 36px!important}
.onair-news-ticker{border-color:#ac4cdb!important;border-radius:5px!important;background:linear-gradient(90deg,#1b0a20,#160e23,#0b1820,#1b0a20)!important}
.onair-ticker-segment span{color:#f3d1ff!important}
.onair-cockpit{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;width:100%!important}
.onair-deck-stack{min-width:0}

.cdj-shell{background:linear-gradient(132deg,#373441,#101019 9%,#12111d 55%,#282332)!important;border:3px solid #464152!important;border-top-color:#bd6fdd!important;border-radius:15px!important;box-shadow:0 0 0 5px #05050a,0 17px 38px #000d,inset 0 2px #8b819d55,0 0 22px #a323af42!important;overflow:hidden!important}
.cdj-strip{background:linear-gradient(90deg,#281123,#080d15 62%,#2c172b)!important;border-bottom:2px solid #a83a9c!important;padding:12px clamp(12px,2vw,28px)!important;flex-wrap:wrap;gap:10px!important}
.cdj-strip .onair-header-name{font-size:clamp(16px,1.6vw,22px)!important;font-weight:950!important;color:#fff!important;text-shadow:0 0 15px #ff3edc77}
.cdj-broadcast-icon{color:#fa4c68!important;text-shadow:0 0 18px #f8316f!important}
.cdj-console{display:grid!important;grid-template-columns:minmax(245px,.82fr) minmax(0,1.3fr)!important;grid-template-areas:'hardware screen'!important;gap:clamp(12px,2vw,30px)!important;align-items:stretch!important;padding:clamp(12px,2vw,24px)!important}
.cdj-hardware{grid-area:hardware!important;border-radius:50%!important;aspect-ratio:1!important;width:min(100%,395px)!important;align-self:center!important;justify-self:center!important;padding:clamp(12px,1.2vw,20px)!important;background:radial-gradient(circle at 40% 40%,#3e364a,#0e0d16 52%,#312a35 72%,#090910 78%)!important;border:10px ridge #3e3846!important;box-shadow:inset 0 0 0 5px #9f35d561,inset 0 0 40px #000,0 0 0 4px #0a080e,0 14px 30px #000d,0 0 26px #c733d23d!important}
.cdj-jog{width:min(100%,315px)!important;max-width:none!important;filter:drop-shadow(0 0 12px #bc38e175)!important}
.cdj-jog-ring{border:3px solid #d458ff!important;border-radius:50%!important;box-shadow:0 0 12px #bd35ef,0 0 0 10px #7b278b44,0 0 22px #a533d189!important;background:repeating-radial-gradient(circle,#3c3643 0px,#07070d 5px,#24212e 7px,#0a0810 12px)!important}
.cdj-hardware-label{font-size:10px!important}.cdj-hardware-label b{color:#ffd8ff!important}.cdj-hardware-label span{color:#d2b6d4!important}
.cdj-screen{grid-area:screen!important;position:relative!important;min-width:0!important;padding:clamp(12px,2vw,25px)!important;background:linear-gradient(135deg,#090a13,#070b13 65%,#130a1b)!important;border:2px solid #534866!important;border-radius:7px!important;box-shadow:inset 0 0 30px #000b,0 0 0 4px #16141d!important}
.cdj-screen-top.onair-nowplaying-controls{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:10px!important;padding-bottom:12px!important;border-bottom:1px solid #614c6b!important}
.cdj-label{color:#e868ff!important;letter-spacing:.17em!important}
.onair-inline-transport{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-left:auto!important}
.onair-inline-transport button{border:1px solid #b95ce6!important;border-radius:5px!important;background:linear-gradient(145deg,#3a2c43,#151221)!important;color:#fff!important;box-shadow:inset 0 1px #ffffff33,0 4px 9px #000a!important;min-height:42px!important}
.onair-inline-transport .onair-main-toggle{background:linear-gradient(140deg,#842b9d,#38114f)!important;box-shadow:0 0 12px #ba40f566,inset 0 1px #ffcaff5c!important}
.onair-inline-transport button:active{transform:translateY(2px)}
.cdj-track img{border:2px solid #ad5bce!important;border-radius:4px!important;box-shadow:0 0 17px #a23dcd65!important}
.cdj-ident h2{color:#fff!important;font-size:clamp(20px,2.5vw,37px)!important}.cdj-ident p{color:#e876ff!important;font-size:clamp(13px,1.3vw,18px)!important}
.cdj-state{color:#ffd0ff!important;border-color:#8b3898!important;background:#3d14545c!important}
.cdj-progress{background:#2b2933!important;height:9px!important;border:1px solid #443b4b!important}.cdj-progress>div{background:linear-gradient(90deg,#7b34bd,#fb57ff)!important;box-shadow:0 0 14px #e54afc!important}
.onair-verification.v20-signal{margin:12px 0 4px!important;gap:7px!important;display:flex!important;flex-wrap:wrap!important}
.onair-verification .signal-tag{background:#16121f!important;color:#b7fbff!important;border:1px solid #4085a6!important;border-radius:5px!important;padding:6px 10px!important;font-size:11px!important;font-weight:900!important}
.cdj-metadata[hidden]{display:none!important}
.v20-levels{display:flex;gap:10px;align-items:center;margin-bottom:14px}.v20-level-name{color:#a5d8ec;font:800 9px monospace}.v20-level-track{height:8px;flex:1;background:repeating-linear-gradient(90deg,#161d21 0 8px,#05080a 8px 10px);border:1px solid #4a4353;overflow:hidden;border-radius:3px}.v20-level-track i{display:block;transform-origin:left center;transform:scaleX(.03);height:100%;width:100%;background:repeating-linear-gradient(90deg,#56e7fd 0 8px,#08131f 8px 10px);will-change:transform}
.cdj-foot{background:#140e1a!important;border-top:1px solid #8e3da3!important}
/* Existing legacy deck visualizer stays in the DOM for the engine but is not shown; controls above are authoritative. */
.onair-deck-stack .legacy-decks{display:none!important}
.onair-cockpit .setlist{position:relative!important;top:auto!important;grid-column:1/-1!important;display:block!important;border:2px solid #66516e!important;border-radius:10px!important;background:linear-gradient(130deg,#211827,#0a0b12 24%,#0a0b13 78%,#211827)!important;box-shadow:inset 0 1px #ffffff22,0 0 0 4px #08080e,0 15px 35px #000c!important;overflow:hidden!important}
.set-head{display:flex!important;align-items:center!important;justify-content:space-between!important;background:linear-gradient(100deg,#39133e,#120b19 47%,#0d0e16)!important;border-bottom:2px solid #a944ce!important;padding:17px 20px!important}.set-head h2{color:#fbe8ff!important;letter-spacing:.1em!important;font-size:clamp(20px,2vw,27px)!important}.library-kicker{color:#cb91dd!important}
.v20-vault-toggle{position:absolute;z-index:3;right:16px;top:21px;min-height:36px;cursor:pointer;color:#faf0ff;background:#32153d;border:1px solid #a04bc2;border-radius:6px;font-weight:850;padding:5px 13px;display:inline-flex;gap:10px;align-items:center}
#count{margin-right:132px}.v20-vault-content[hidden]{display:none!important}
#playlist{max-height:min(520px,60vh)!important;min-height:unset!important;padding:5px 12px 14px!important}
#playlist li[data-track]{border-radius:4px!important;border-bottom:1px solid #423348!important;min-height:62px!important;padding:8px 12px!important}
#playlist li[data-track].active{background:linear-gradient(90deg,#4b154f99,#14101bb5)!important;border:1px solid #bf53d9!important;box-shadow:inset 3px 0 #ec79ff,0 0 13px #b329cf26!important}
#playlist li .track-caption b{color:#f6efff!important;font-size:clamp(12px,1vw,15px)!important}
#playlist li img.track-art{border-color:#7a4d8e!important;border-radius:4px!important}
.library-search{border-color:#785088!important;background:#090b13!important}
.library-search:focus-within{border-color:#d366f5!important;box-shadow:0 0 0 2px #b451d84a!important}
.library-foot{background:#1b1023!important;color:#eacbfa!important;border-color:#64366f!important}
body>footer{padding:18px clamp(12px,2vw,36px)!important;display:flex!important;flex-wrap:wrap;justify-content:space-between;gap:10px;color:#cec0d7!important}
@media(max-width:900px){.cdj-console{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)!important}.cdj-hardware{border-width:6px!important}.cdj-screen{padding:12px!important}}
@media(max-width:700px){.cdj-console{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:'screen' 'hardware'!important}.cdj-hardware{aspect-ratio:1!important;width:min(100%,245px)!important}.cdj-screen-top{flex-wrap:wrap!important}.onair-inline-transport{margin-left:0!important}.v20-vault-toggle{right:10px;top:14px;font-size:11px;padding:5px 8px}.set-head{padding:14px 10px!important}.set-head #count{display:none!important}.set-head h2{font-size:19px!important}.library-kicker{font-size:8px!important}.cdj-track img{width:64px!important;height:64px!important}}
@media(prefers-reduced-motion:reduce){.v20-level-track i{transition:none!important}}

/* V20.1: no decorative jog wheel; single functional full-width console. */
.cdj-hardware,.cdj-jog,.cdj-jog-ring,.jog-reactive-spectrum,.jog-reactive-halo{display:none!important}
.cdj-console{display:block!important;padding:clamp(9px,1.5vw,20px)!important}
.cdj-screen{width:100%!important;max-width:none!important;grid-area:auto!important}
.cdj-track{min-height:128px!important;align-items:center!important}
.v20-level-track{height:12px!important}.v20-level-track i{transition:none!important}
.library-foot{display:none!important}
body>footer{padding:7px clamp(12px,2vw,30px)!important;min-height:36px!important;font-size:11px!important;gap:7px!important}
@media(max-width:700px){.cdj-console{display:block!important}.cdj-screen{width:100%!important}}

/* V20.2: compact in-console playlist on the right, not a separate bottom panel. */
.cdj-console{display:grid!important;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr)!important;gap:clamp(10px,1.3vw,20px)!important;align-items:stretch!important}
.cdj-console>.cdj-screen{min-width:0!important;grid-column:1!important;grid-row:1!important;width:100%!important}
.cdj-console>.setlist{min-width:0!important;grid-column:2!important;grid-row:1!important;position:relative!important;display:flex!important;flex-direction:column!important;align-self:stretch!important;border:1px solid #7e438a!important;border-radius:7px!important;overflow:hidden!important;background:linear-gradient(165deg,#1b1025,#080a12 45%,#100b16)!important}
.cdj-console>.setlist .set-head{padding:12px 13px!important;flex:none!important}
.cdj-console>.setlist .set-head h2{font-size:17px!important}
.cdj-console>.setlist .library-kicker{font-size:8px!important}
.cdj-console>.setlist .v20-vault-toggle{top:10px!important;right:9px!important;min-height:28px!important;font-size:10px!important;padding:3px 7px!important}
.cdj-console>.setlist #count{display:none!important}
.cdj-console>.setlist .v20-vault-content{display:flex!important;flex-direction:column!important;min-height:0!important;flex:1 1 auto!important}
.cdj-console>.setlist .v20-vault-content[hidden]{display:none!important}
.cdj-console>.setlist .library-tools{padding:8px!important;flex:none!important}
.cdj-console>.setlist .library-columns{display:none!important}
.cdj-console>.setlist #playlist{flex:1!important;overflow-y:auto!important;max-height:330px!important;min-height:0!important;padding:4px 7px!important;margin:0!important;overscroll-behavior:contain!important}
.cdj-console>.setlist #playlist li[data-track]{min-height:52px!important;padding:6px 7px!important}
.cdj-progress{display:block!important;position:relative!important;height:10px!important;box-sizing:border-box!important;overflow:hidden!important;cursor:default!important;user-select:none!important;touch-action:auto!important;pointer-events:none!important}
.cdj-progress>div#cdjProgress{display:block!important;position:absolute!important;top:0!important;bottom:0!important;left:0!important;height:100%!important;min-width:0!important;width:0;background:linear-gradient(90deg,#5f2aa9,#f561ef)!important;transition:width .16s linear!important;pointer-events:none!important}
@media(max-width:960px){.cdj-console{grid-template-columns:minmax(0,1fr)!important}.cdj-console>.cdj-screen,.cdj-console>.setlist{grid-column:1!important;grid-row:auto!important}.cdj-console>.setlist #playlist{max-height:230px!important}}
@media(prefers-reduced-motion:reduce){.cdj-progress>div#cdjProgress{transition:none!important}}

/* v20.2.9: visible playlist is three tracks high, with scrolling to browse the rest. */
.cdj-console>.setlist #playlist{display:block!important;flex:0 1 auto!important;height:auto!important;
 max-height:168px!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;
 scrollbar-width:thin;scrollbar-color:#b45bd9 #11101b;overscroll-behavior:contain!important}
.cdj-console>.setlist #playlist::-webkit-scrollbar{width:8px}
.cdj-console>.setlist #playlist::-webkit-scrollbar-track{background:#11101b}
.cdj-console>.setlist #playlist::-webkit-scrollbar-thumb{background:#9256b9;border:2px solid #11101b;border-radius:12px}
.cdj-console>.setlist .v20-vault-content[hidden],.cdj-console>.setlist [hidden] #playlist{display:none!important}
.cdj-console>.setlist:has(.v20-vault-content[hidden]){align-self:start!important}
@media(max-width:960px){.cdj-console>.setlist #playlist{max-height:168px!important}}

/* v20.6.1 viewport override located in /assets/shared/cleanup-v2031.css */
