@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101319;--surface:#191e27;--muted:#a6afbf;--line:#313946;--ink:#f2f4f8;--accent:#eaff68;--voice:#c2a0ff;font-family:Inter,Arial,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.brand{text-decoration:none;color:var(--ink);font-weight:800;font-size:22px;letter-spacing:-.6px;display:flex;gap:7px;align-items:center}.brand>span:last-child{font-weight:400}.brandmark{background:var(--accent);color:#111;padding:3px 9px;margin-right:7px;border-radius:5px}.header-right{display:flex;align-items:center;gap:28px}time,.eyebrow,.chip,.track-times,.type,.timecode,footer,.count{font-family:'IBM Plex Mono',monospace}.eyebrow{font-size:12px;letter-spacing:1.1px;color:var(--muted)}#clock{font-size:20px;font-variant-numeric:tabular-nums}main{max-width:1500px;margin:auto;padding:36px 4vw}.topline{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}h1{font-family:'Barlow Condensed',Arial,sans-serif;font-size:60px;line-height:1;margin:10px 0 0;font-weight:700;letter-spacing:-1px}.topline p{color:var(--muted);line-height:1.6;margin:0;font-size:14px}.stations{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.station{position:relative;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--station);border-radius:8px;text-align:left;color:var(--ink);padding:20px;min-width:0;transition:background .2s}.station:hover,.station.selected{background:#242b35}.station.selected{outline:1px solid var(--station)}.station-head{display:flex;justify-content:space-between;align-items:center}.station-number{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--station)}.station h2{font-family:'Barlow Condensed',sans-serif;font-size:38px;text-transform:uppercase;line-height:1.1;margin:12px 0 4px}.station .format{color:var(--muted);font-size:14px;margin:0 0 20px}.station-now{display:flex;gap:10px;align-items:center;font-size:14px;border-top:1px solid var(--line);padding-top:14px}.station-now div{min-width:0}.station-now strong,.station-now small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.7}.station-now small{color:var(--muted);font-size:12px}.bars{display:flex;align-items:center;gap:3px;height:23px;color:var(--station)}.bars i{width:3px;height:8px;background:currentColor}.bars i:nth-child(2){height:20px}.bars i:nth-child(3){height:14px}.console{border:1px solid var(--line);border-radius:10px;background:#151a22;overflow:hidden}.console-head{padding:26px 28px 0;display:flex;justify-content:space-between;align-items:center}.console-head h2{font-size:22px;margin:8px 0}.chip{font-size:12px;color:var(--accent);border:1px solid #505638;padding:7px 10px;border-radius:4px}.onair{padding:24px 28px 28px;display:grid;grid-template-columns:1fr 350px;gap:44px;align-items:start}.now h3{font-family:'Barlow Condensed',Arial,sans-serif;font-size:44px;line-height:1.1;margin:17px 0 9px;overflow-wrap:anywhere}.now>p{margin:0;color:var(--muted);line-height:1.5}.live-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:6px}.progress{height:4px;background:#353d49;margin-top:25px;border-radius:4px;overflow:hidden}#progress{height:100%;background:var(--accent)}.track-times{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin:9px 0 20px}.transport{display:flex;gap:12px;align-items:center;flex-wrap:wrap}button.primary{border:0;background:var(--accent);color:#161a10;padding:12px 20px;font-weight:700;border-radius:5px}.secondary{border:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 15px;border-radius:5px}.volume{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}input[type=range]{width:90px;accent-color:var(--accent)}#playback-status{font-size:12px;margin-top:14px;max-width:600px}.player-panel{position:relative;min-width:0}#player{width:100%;aspect-ratio:16/9;background:#0b0e13;border-radius:5px}#player-empty{position:absolute;inset:0 0 auto;height:197px;display:flex;flex-direction:column;justify-content:center;padding:24px;pointer-events:none;background:linear-gradient(120deg,#202733,#11151c);border:1px solid var(--line);border-radius:5px}#player-empty span{font:12px 'IBM Plex Mono';color:var(--muted)}#player-empty strong{font-family:'Barlow Condensed';font-size:28px;margin-top:12px}#player-empty p,.playback-note{font-size:12px;color:var(--muted);line-height:1.5}.playback-note{margin:9px 0 0}.viewbar{padding:0 28px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}[role=tablist]{display:flex;gap:24px}[role=tab]{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:19px 0;font-size:14px}[role=tab][aria-selected=true]{color:var(--accent);border-color:var(--accent)}#view-meta{font-size:12px;color:var(--muted)}#view{padding:24px 28px;min-height:280px}.section-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.section-tools p{font-size:14px;color:var(--muted);margin:0}.section-tools label{font-size:14px;display:flex;gap:9px;align-items:center}.section-tools input[type=checkbox]{accent-color:var(--voice);width:17px;height:17px}.log-row{display:grid;grid-template-columns:100px 78px minmax(0,1fr) 70px;gap:14px;align-items:center;padding:13px 14px;border-bottom:1px solid #29313d;border-left:2px solid transparent}.log-row.is-current{background:#262d26;border-left-color:var(--accent)}.log-row.voice-row{background:#221e2e;border-left-color:var(--voice)}.timecode{font-size:13px;color:var(--muted)}.type{font-size:11px;letter-spacing:.5px;color:var(--muted)}.voice-row .type{color:var(--voice)}.log-title{font-size:14px;font-weight:500;overflow-wrap:anywhere}.log-title small{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:5px}.duration{font:12px 'IBM Plex Mono';color:var(--muted);text-align:right}.log-heading{border:none;padding-top:0;padding-bottom:12px;color:var(--muted);font:11px 'IBM Plex Mono';letter-spacing:.6px}.search{background:#10141b;border:1px solid var(--line);border-radius:5px;color:var(--ink);padding:10px 13px;width:280px;max-width:100%}.library-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.library-head p{font-size:14px;color:var(--muted)}.library-table{width:100%;border-collapse:collapse;text-align:left}.library-table th{font-size:12px;color:var(--muted);font-weight:500;padding:12px;border-bottom:1px solid var(--line)}.library-table td{font-size:14px;padding:13px 12px;border-bottom:1px solid #29313d}.library-table td:last-child{font-family:'IBM Plex Mono';font-size:12px}.library-table a{color:var(--ink);text-decoration:none}.library-table a:hover{text-decoration:underline}.dj-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:35px}.dj-name{font-family:'Barlow Condensed';font-size:52px;margin:8px 0}.dj-bio{color:var(--muted);line-height:1.7;font-size:14px}.voice-card{border:1px solid var(--line);border-radius:6px;padding:18px;margin-bottom:12px}.voice-card-head{display:flex;justify-content:space-between;gap:12px}.voice-card p{font-size:14px;color:var(--muted);line-height:1.7}.voice-card button{font-size:12px}.empty{padding:30px;color:var(--muted)}footer{display:flex;gap:20px;justify-content:space-between;padding:22px 0;font-size:11px;color:var(--muted);line-height:1.7}.hidden,[hidden]{display:none!important}
@media(max-width:900px){.onair{grid-template-columns:1fr 280px;gap:24px}#player-empty{height:158px}.station h2{font-size:30px}.station{padding:16px}.header-right .eyebrow{display:none}}@media(max-width:680px){header{height:70px}.brand{font-size:18px}#clock{font-size:16px}main{padding-top:24px}.topline{align-items:start}.topline p{display:none}h1{font-size:48px}.stations{grid-template-columns:1fr;gap:10px}.station h2{font-size:29px;margin:6px 0}.station .format{margin-bottom:10px}.station-now{padding-top:9px}.console-head{padding:20px 18px 0}.chip{display:none}.onair{grid-template-columns:1fr;padding:20px 18px;gap:18px}.now h3{font-size:38px}.player-panel{max-width:350px;width:100%}#player-empty{height:auto;aspect-ratio:16/9}.viewbar{padding:0 18px;align-items:start;flex-direction:column}#view-meta{padding-bottom:10px}#view{padding:18px 10px}.section-tools{align-items:start;padding:0 5px;flex-direction:column}.log-row{grid-template-columns:66px 52px minmax(0,1fr) 43px;gap:7px;padding:12px 5px}.timecode{font-size:12px}.type{font-size:10px}.library-head{flex-direction:column;align-items:start}.library-table th,.library-table td{padding:12px 6px}.dj-layout{grid-template-columns:1fr;gap:12px;padding:0 8px}footer{flex-direction:column;gap:6px}[role=tablist]{gap:20px}}

.connection-row{padding:14px 28px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);display:flex;gap:24px;align-items:baseline;flex-wrap:wrap}.connection-row details{flex:1;min-width:220px}.connection-row summary{cursor:pointer;color:var(--ink)}.setup-body{max-width:760px;line-height:1.8;font-size:14px;padding-top:10px}.setup-body a,.open-track{color:var(--accent)}.open-track{font-size:12px;display:inline-block;margin-top:4px}.setup-body li{margin-bottom:9px}.station .count{font-size:12px}

/* Control-room layout: keep the dial, live state and transport in one glance. */
@media(min-width:901px){
  main{padding-top:26px}
  .topline{margin-bottom:18px}
  h1{font-size:54px}
  .stations{gap:12px;margin-bottom:16px}
  .station{padding:14px 16px;border-top-width:2px}
  .station h2{font-size:31px;margin:8px 0 3px}
  .station .format{margin-bottom:12px}
  .station-now{padding-top:10px}
  .console{box-shadow:0 12px 40px #080a0e66}
  .console-head{padding:18px 24px 0}
  .onair{padding:18px 24px 22px;grid-template-columns:minmax(0,1fr) 300px;gap:30px}
  .now h3{font-size:48px;margin-top:12px}
  .progress{margin-top:18px}
  .viewbar{padding:0 24px}
  #view{padding:18px 24px}
}
@media(min-width:681px) and (max-width:1100px){
  main{padding-left:24px;padding-right:24px}
  .stations{grid-template-columns:repeat(3,minmax(190px,1fr))}
  .station h2{font-size:27px}
}
@media(max-width:680px){
  main{padding:16px 12px 24px}
  header{padding:0 16px}
  .header-right{gap:10px}
  .topline{margin-bottom:14px}
  h1{font-size:43px}
  .stations{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -12px 14px;padding:2px 12px 8px;scrollbar-width:none}
  .stations::-webkit-scrollbar{display:none}
  .station{flex:0 0 82vw;scroll-snap-align:start;padding:15px}
  .station h2{font-size:31px}
  .console{border-radius:8px}
  .console-head{padding:17px 15px 0}
  .console-head h2{font-size:20px}
  .onair{padding:16px 15px 18px}
  .now h3{font-size:42px;margin:12px 0 6px}
  .transport{gap:8px}
  button.primary,button.secondary{min-height:46px}
  .transport .primary{flex:1}
  .volume{width:100%;justify-content:space-between;margin-top:2px}
  .volume input[type=range]{flex:1;max-width:none;height:28px}
  .player-panel{max-width:none}
  .viewbar{position:sticky;bottom:0;z-index:5;background:#151a22;padding:0 15px;box-shadow:0 -8px 24px #080a0e99}
  [role=tablist]{width:100%;justify-content:space-between;gap:8px}
  [role=tab]{padding:15px 2px;font-size:13px}
  #view{padding:16px 8px;min-height:220px}
  .connection-row{padding:12px 15px}
}

/* Make the live deck visually distinct from the library below it. */
body{background:radial-gradient(ellipse at 50% -18%,#252d3b 0,#101319 48rem) fixed}
.console{position:relative;border-color:#465263}
.console:before{content:'LIVE CONTROL DECK';position:absolute;right:24px;top:-11px;background:var(--bg);padding:0 9px;color:var(--accent);font:11px 'IBM Plex Mono';letter-spacing:1.2px}
.station.selected{box-shadow:0 0 0 1px var(--station),0 12px 28px #0008;transform:translateY(-2px)}
.station:not(.selected){opacity:.84}
.station:not(.selected):hover{opacity:1;transform:translateY(-1px)}
.now{background:linear-gradient(135deg,#1e2631,#151a22);border:1px solid #394655;border-radius:8px;padding:20px 22px 18px}
.now h3{font-size:clamp(42px,4.4vw,68px);letter-spacing:-.8px}
.player-panel{background:#10141b;border:1px solid #303b49;border-radius:8px;padding:12px}
.player-panel #player-empty{position:relative;height:auto;aspect-ratio:16/9}
.player-panel .playback-note{margin:11px 2px 2px}
.transport{border-top:1px solid #35404d;padding-top:14px}
.viewbar{background:#11161e}
.art-stage{height:clamp(180px,24vw,300px);border-radius:7px;margin-bottom:22px;background:linear-gradient(145deg,#2b3443,#11151c 68%);border:1px solid #455363;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;color:var(--accent)}
.art-stage:before,.art-stage:after{content:'';position:absolute;border:1px solid currentColor;border-radius:50%;width:62%;aspect-ratio:1;opacity:.13}.art-stage:after{width:42%;opacity:.2}
.art-stage>span{position:absolute;left:18px;bottom:15px;color:#dfe6ee;font:11px 'IBM Plex Mono';letter-spacing:2px;line-height:1.5}.art-stage b{color:var(--accent)}
.art-bars{height:96px;display:flex;align-items:center;gap:7px;transform:skew(-12deg)}.art-bars i{display:block;width:9px;height:38px;background:currentColor;border-radius:6px;box-shadow:0 0 18px currentColor}.art-bars i:nth-child(2),.art-bars i:nth-child(6){height:72px}.art-bars i:nth-child(3),.art-bars i:nth-child(5){height:96px}.art-bars i:nth-child(4){height:52px}
@media(max-width:680px){
 .console:before{right:15px;font-size:9px}
 .now{padding:16px 15px 14px}
 .art-stage{height:180px;margin-bottom:17px}
 .player-panel{padding:8px}
}
