:root{font-family:Inter,system-ui,Arial,sans-serif;color:#eef2ff;background:#080c18;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 70% 10%,#1d244c 0,#080c18 46%)}header{height:76px;padding:0 max(5%,calc((100% - 1100px)/2));display:flex;align-items:center;gap:25px;border-bottom:1px solid #ffffff20}.brand{font-weight:900;letter-spacing:1px;margin-right:auto;font-size:18px}.brand span{color:#b9a3ff}a{color:#cfbfff;text-decoration:none}main{max-width:1100px;margin:0 auto;padding:20px 24px 70px}.hero{padding:40px 0 25px}.hero h1{font-size:clamp(32px,5vw,58px);margin:14px 0;letter-spacing:-2px}.hero p{color:#b6bdd6;max-width:720px;line-height:1.7}.onair{display:inline-block;border-radius:30px;padding:7px 13px;color:#ff8b98;background:#ff38631b;font-weight:800;font-size:12px;letter-spacing:1px}.panel{padding:27px;background:#14192b;border:1px solid #ffffff18;border-radius:18px;margin:20px 0;box-shadow:0 18px 55px #0003}.panel h2{margin-top:0}.panel h3{margin-top:30px}.panel label{display:block;margin:24px 0 14px;font-weight:600}.panel input:not([type=checkbox]){width:100%;margin-top:10px}input[type=text],input[type=password],input:not([type]){height:43px;background:#0c1020;color:#fff;padding:12px;border:1px solid #4b526d;border-radius:9px}input[type=range]{accent-color:#a28fff;cursor:pointer}.toggle{display:flex!important;align-items:center;gap:12px}.toggle input{accent-color:#a28fff}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}button{border:0;border-radius:9px;background:#9279fb;color:#0d1025;padding:12px 19px;cursor:pointer;font-weight:800}button:hover{filter:brightness(1.13)}button.secondary{background:#303956;color:#edf0ff}.hint,footer{color:#9da8c2;font-size:13px;line-height:1.65}.player{max-width:650px;margin:24px auto;min-height:180px;aspect-ratio:16/9;background:#090d17;border-radius:12px;overflow:hidden}.player iframe{width:100%;height:100%}.metrics{display:flex;gap:25px;margin-top:22px}.headrow{display:flex;align-items:center;justify-content:space-between}.share{display:flex;gap:10px}.share input{flex:1;min-width:0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}td,th{padding:11px;border-bottom:1px solid #ffffff16;font-size:13px}footer{margin-top:26px}@media(max-width:590px){header{gap:12px;padding:0 15px}.brand{font-size:13px}.hero{padding:25px 0 10px}.panel{padding:18px}.share{flex-direction:column}.actions button{flex:1}}
/* Canli konuk stüdyosu */
.guest-card{margin:15px 0;padding:18px;border:1px solid #ffffff2c;background:#0d1325;border-radius:12px}
.guest-card .share{margin:14px 0}.guest-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.guest-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.guest-controls label{flex:1;min-width:180px;margin:9px 0}
.guest-card .danger{margin-top:6px}.danger{background:#bd4265;color:white}
button:disabled{cursor:not-allowed;opacity:.5}.quiet{color:#a8bad7}
[hidden]{display:none!important}
@media(max-width:590px){.guest-head{align-items:flex-start}.guest-card .share button{width:100%}.guest-controls button{width:100%}}

/* v4: yayın kontrolü masaüstü ve mobil */
.air-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0 8px}
.air-button{min-height:82px;font-size:clamp(16px,2.5vw,23px);letter-spacing:.25px;box-shadow:0 7px 22px #0004;transition:filter .15s,transform .15s}
.air-button:not(:disabled):active{transform:translateY(2px)}
.air-go{color:#061b13;background:linear-gradient(135deg,#5bf0b0,#26bf81)}
.air-stop{color:#fff;background:linear-gradient(135deg,#fd5d7c,#ba2f55)}
.air-button:disabled{opacity:.35;filter:grayscale(.45)}
.air-notice{padding:13px 16px;border-radius:10px;border:1px solid #4c5b80;background:#202942;line-height:1.55}
.air-notice.is-on{border-color:#32956d;background:#143d30;color:#a4fbd0}
.air-notice.is-error{border-color:#b95472;color:#ffd6de}
@media(max-width:620px){.air-controls{grid-template-columns:1fr}.air-button{min-height:68px}}

/* v6: DJ microphone mastering and readable audio meter */
.mic-control-box{margin:22px 0;padding:18px 20px;background:#0c2130;border:1px solid #2d657b;border-radius:14px}
.mic-control-box h3{margin:0;font-size:19px}
.mic-control-box .onair{color:#b8fbe6;background:#215e5180}
.mic-control-box label{margin:16px 0 6px}
.level-track{height:16px;border-radius:999px;background:linear-gradient(90deg,#152334,#24384b);border:1px solid #3f5367;overflow:hidden;margin:18px 0 7px}
.level-fill{height:100%;width:0%;background:linear-gradient(90deg,#40d5c3 0%,#72e499 66%,#f5cf5b 87%,#f06c6c 100%);transition:width .11s linear}
.level-fill.level-too-high{background:#ee5475}
@media(max-width:590px){.mic-control-box{padding:15px}.mic-control-box .headrow{gap:10px}}

/* v7: Listener-return level indicators (not fabricated audio waveforms) */
.delivery-panel{margin:24px 0 12px;padding:18px 20px;background:#101e2f;border:1px solid #435b83;border-radius:14px}
.delivery-panel h3{margin:0;font-size:19px}
.delivery-panel .headrow{gap:12px;flex-wrap:wrap}
.delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.delivery-card{border:1px solid #40516e;border-radius:12px;background:#0b1527;padding:15px}
.delivery-title{display:flex;justify-content:space-between;align-items:center;gap:8px}
.delivery-title span{color:#a3bfd8;font-size:12px;white-space:nowrap}
.delivery-card .hint{margin-bottom:0;min-height:2.6em}
.remote-level{margin:13px 0 10px;height:16px}
.music-fill{background:linear-gradient(90deg,#6fa6f9,#9279fb,#e39cfd)}
#fxStatus{border-left:3px solid #7c86ac;padding:9px 12px;background:#111b31;border-radius:6px}
@media(max-width:670px){.delivery-grid{grid-template-columns:1fr}.delivery-panel{padding:14px}}

/* Responsive YouTube IFrame API: it replaces #yt/#djyt/#guestyt with an iframe. */
.youtube-frame{width:100%;max-width:650px;margin:22px auto;aspect-ratio:16/9;position:relative;overflow:hidden;border-radius:12px;background:#090d17}
.youtube-frame iframe,.youtube-frame #yt,.youtube-frame #djyt,.youtube-frame #guestyt{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:100%!important;display:block;border:0}
@media(max-width:660px){main{width:100%;min-width:0;padding:14px 12px 50px}.panel{min-width:0;overflow-wrap:anywhere}.metrics{flex-wrap:wrap;gap:8px 18px}.hero h1{letter-spacing:-1px}.youtube-frame{margin:14px auto}.delivery-title{flex-wrap:wrap}}

/* v8 speech studio */
.mic-device-row{display:flex;gap:10px;align-items:center;min-width:0;margin-bottom:14px}
.mic-device-row select{flex:1;min-width:0}
.mic-device-row button{flex:0 0 auto}
.mic-control-box select{width:100%;max-width:100%;padding:12px;border-radius:10px;background:var(--panel,#202536);color:inherit;border:1px solid rgba(150,155,170,.4);margin:5px 0 12px}
#micPreview{display:block;width:100%;max-width:100%;margin-top:8px}
#micPreview[hidden]{display:none}
@media(max-width:450px){.mic-device-row{flex-wrap:wrap}.mic-device-row select{flex:1 1 100%}}

/* v9.1: input source check and independent raw test */
.mic-capture-warning{border-left:4px solid #f2ad44;padding:11px 13px;background:#32301c;color:#ffeac0;border-radius:7px;line-height:1.5}
#micRawPreview{display:block;width:100%;margin:6px 0 14px}
#micRawPreview[hidden]{display:none}

/* v9.4: readable, mobile-friendly built-in sound effect cart */
.fx-library{margin-top:20px;padding:20px;background:#0b162b;border:1px solid #405579;border-radius:14px}
.fx-library h3{margin:0 0 6px}.fx-library-head{align-items:center;gap:16px;flex-wrap:wrap}
.fx-library-head p{margin:5px 0;max-width:680px}.fx-library-head .danger{white-space:nowrap}
.fx-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:12px;margin:15px 0}
.fx-filters label{margin:0;font-size:13px;color:#bec8e0}
.fx-filters select,.fx-filters input[type=search]{display:block;width:100%;height:42px;margin-top:7px;border:1px solid #52617e;border-radius:8px;background:#101a30;color:#fff;padding:8px 11px;min-width:0}
.fx-current{padding:11px 13px;background:#18304b;border:1px solid #426387;border-radius:9px;min-height:44px;font-size:13px;line-height:1.5}
.fx-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.fx-card{display:flex;flex-direction:column;gap:7px;border:1px solid #354a69;border-radius:11px;background:#111d33;padding:15px;min-width:0}
.fx-name{display:flex;align-items:center;gap:9px;font-size:15px;line-height:1.3}.fx-name span{font-size:23px;flex:0 0 auto}
.fx-meta{font-size:12px;color:#b6bff0}.fx-description{color:#b6c0d4;font-size:13px;line-height:1.5;margin:0 0 8px;flex:1}
.fx-actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}.fx-actions button{padding:10px 9px;flex:1 1 115px;white-space:normal;font-size:12px;line-height:1.3}
.fx-send{background:#3cd9a4;color:#06251d}.fx-extra{margin-top:15px;border:1px solid #34445f;border-radius:9px;padding:10px 16px}.fx-extra summary{cursor:pointer;font-weight:700;color:#c3b0ff}
@media(max-width:860px){.fx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.fx-library{padding:14px}.fx-grid{grid-template-columns:minmax(0,1fr)}.fx-filters{grid-template-columns:minmax(0,1fr)}.fx-library-head .danger{width:100%}}

/* v9.5: single-page radio desk, compact controls, keyboard/touch usable. */
.dj-page header{height:48px;padding:0 17px;position:sticky;top:0;z-index:30;background:#0c1120;border-bottom:1px solid #344267}
.dj-page header .brand{font-size:14px}
.dj-page main{max-width:none;margin:0;padding:8px 12px 12px}
.dj-page #console{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:10px;height:calc(100dvh - 68px);min-height:490px;overflow:hidden;align-content:start}
.dj-page #console[hidden]{display:none!important}
.dj-page #consoleTop{grid-column:1/-1;min-width:0;display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 12px;background:#111b2f;border:1px solid #3a4966;border-radius:12px;z-index:5}
.console-top-line{display:flex;min-width:0;gap:12px;align-items:center;justify-content:flex-start}
.console-top-line strong{white-space:nowrap;font-size:13px}
#quickNow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c1cbe1;font-size:12px;max-width:30vw}
.console-top-line .onair{margin-left:auto;font-size:10px;flex:0 0 auto;padding:5px 8px}
.quick-actions{display:flex;gap:7px;align-items:center}
.quick-actions button{font-size:12px;padding:9px 13px;white-space:nowrap}
.studio-tabs{grid-column:1/-1;display:flex;gap:6px;overflow-x:auto;min-width:0;scrollbar-width:thin}
.studio-tabs button{background:#273553;color:#d4dff0;min-width:0;flex:1;padding:10px 8px;white-space:nowrap;border-radius:7px;font-size:12px}
.studio-tabs button.active{background:#8b78f5;color:#0e1021}
.dj-page #console>.panel{margin:0;padding:14px;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#556687 transparent}
.dj-page #console>.panel h2{font-size:18px;margin:0 0 8px}
.dj-page #console>.panel h3{font-size:16px;margin:10px 0}
.dj-page .panel label{margin:8px 0 6px;font-size:13px}
.dj-page .panel input:not([type=checkbox]){margin-top:5px}
.dj-page .panel button{padding:9px 12px}
.dj-page .hint{font-size:11px;line-height:1.4;margin:6px 0}
.dj-page .air-controls{margin:6px 0;gap:8px}
.dj-page .air-button{min-height:46px!important;font-size:13px!important}
.dj-page .air-notice{font-size:12px;margin:6px 0;padding:8px 11px}
.dj-page #broadcastPanel{grid-column:1;display:block}
.dj-page #mixerPanel{grid-column:2;display:block}
.dj-page #console[data-view="effects"] #broadcastPanel,.dj-page #console[data-view="effects"] #mixerPanel,
.dj-page #console[data-view="guests"] #broadcastPanel,.dj-page #console[data-view="guests"] #mixerPanel,
.dj-page #console[data-view="listeners"] #broadcastPanel,.dj-page #console[data-view="listeners"] #mixerPanel{display:none}
.dj-page #effectsPanel,.dj-page #guestsPanel,.dj-page #listenersPanel{display:none;grid-column:1/-1}
.dj-page #console[data-view="effects"] #effectsPanel,
.dj-page #console[data-view="guests"] #guestsPanel,
.dj-page #console[data-view="listeners"] #listenersPanel{display:block}
.dj-page .fx-library{margin:8px 0;padding:10px}
.dj-page .fx-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.dj-page .fx-card{padding:10px}
.dj-page .fx-name{font-size:13px}
.dj-page .fx-name span{font-size:19px}
.dj-page .fx-card .fx-description{font-size:11px}
.dj-page .fx-actions button{flex:1 1 85px;padding:8px 5px}
.dj-page #effectsPanel>.fx-library{margin:10px 0}
.dj-page .mic-control-box,.dj-page .delivery-panel{margin:8px 0;padding:10px}
.studio-details{border:1px solid #374c6c;border-radius:9px;margin:8px 0;padding:5px 9px}
.studio-details>summary{cursor:pointer;color:#bbdafa;font-size:13px;font-weight:750;padding:5px;list-style:disclosure-closed}
.studio-details[open]>summary{list-style:disclosure-open}
.dj-page .studio-details .mic-control-box,.dj-page .studio-details .delivery-panel{border:0;padding:8px;background:transparent}
.dj-page .youtube-frame{width:min(100%,480px);max-width:100%;min-height:200px;aspect-ratio:16/9;margin:10px auto}
.queue-heading{gap:8px}
.queue-count{font-size:12px;color:#b9b7eb}
.queue-add{display:flex;gap:7px;align-items:stretch}
.queue-add input{flex:1;min-width:0;margin:0!important;height:39px}
.queue-add button{flex:0 0 auto;white-space:nowrap}
.queue-status{font-size:12px;color:#a9cbe9;min-height:1.2em;margin:6px 0}
.queue-now{background:#1a3550;border-left:4px solid #7de9c7;border-radius:8px;padding:9px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:700;margin-top:7px}
.queue-transport{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}
.queue-transport button{flex:1 1 auto;min-width:72px;font-size:11px;padding:7px 9px!important}
.queue-list{border:1px solid #3b4c69;background:#0a1424;border-radius:9px;max-height:25vh;min-height:76px;overflow-y:auto;scrollbar-width:thin}
.queue-row{display:flex;gap:7px;align-items:center;padding:5px 7px;border-bottom:1px solid #ffffff15;min-width:0}
.queue-row.current{background:#204a4a;color:#e6fff5}
.queue-row .queue-number{width:31px;flex-shrink:0;font-size:11px;color:#c2badc}
.queue-song{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.queue-buttons{display:flex;gap:2px;flex-shrink:0}
.queue-buttons .queue-mini{padding:3px 7px!important;min-width:26px;background:#303d5a;color:#fff;font-size:13px}
.queue-buttons .queue-remove{background:#73344c}
.queue-note{font-size:10px!important}
.playlist-import{border:1px dashed #5875a9;padding:12px;margin:12px 0}
.dj-page #loginPanel{max-width:520px;margin:4vh auto}
@media(max-width:940px){
 .dj-page #console{grid-template-columns:1fr;overflow-y:auto;height:calc(100dvh - 65px);min-height:400px}
 .dj-page #console>.panel{max-height:none;overflow:visible}
 .dj-page #broadcastPanel,.dj-page #mixerPanel{grid-column:1}
 .dj-page #consoleTop{position:sticky;top:0;grid-template-columns:1fr;z-index:15}
 .quick-actions{justify-content:stretch}.quick-actions button{flex:1}
 .dj-page .fx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dj-page main{padding:5px 8px 20px}
 .dj-page #console>.panel{padding:11px}
 .dj-page .youtube-frame{width:min(100%,500px);min-height:200px}
 .queue-list{max-height:260px}
}
@media(max-width:450px){
 .dj-page header{height:40px}
 .dj-page #console{height:calc(100dvh - 48px)}
 #quickNow{max-width:45vw}
 .console-top-line{gap:6px}.console-top-line strong{font-size:11px}
 .quick-actions button{padding:8px 5px;font-size:10px}
 .studio-tabs button{font-size:11px;padding:9px 6px}
 .queue-add{flex-wrap:wrap}.queue-add input{flex:1 1 100%}.queue-add button{width:100%}
 .queue-transport button{min-width:75px}
 .dj-page .fx-grid{grid-template-columns:1fr}
 .queue-row{gap:4px;padding:6px 4px}
 .queue-row .queue-number{width:24px}
 .queue-buttons .queue-mini{padding:4px 5px!important;min-width:25px}
 .dj-page .youtube-frame{min-height:200px}
}
/* All three views retain a responsive embedded YouTube iframe without horizontal overflow. */
.youtube-frame,.player{min-width:0;max-width:100%;overflow:hidden}
.youtube-frame iframe,.player iframe{max-width:100%!important}
/* Mobile rows must grow to content; otherwise the mixer can overlap the song queue. */
@media(max-width:940px){
 .dj-page #console{grid-auto-rows:max-content;align-content:start}
 .dj-page #console>.panel{min-height:0;height:auto;overflow:visible;position:relative}
 .dj-page #consoleTop{position:sticky;top:0}
}

/* v9.6: radio desk with permanently visible YouTube + built-in FX; no global page scroll on desktop */
.dj-page #broadcastPanel.radio-station{grid-column:1;display:flex!important;flex-direction:column;gap:5px;min-height:0;overflow:hidden;padding:10px}
.dj-page #broadcastPanel.radio-station>.headrow,.dj-page #broadcastPanel.radio-station>.air-notice{display:none}
.dj-page #broadcastPanel.radio-station>.air-controls{display:none}
.dj-page #broadcastPanel.radio-station>.queue-note,.dj-page #broadcastPanel.radio-station>.hint{display:none}
.station-workbench{display:grid;grid-template-columns:minmax(260px,1fr) minmax(300px,1.03fr) minmax(235px,.86fr);gap:9px;min-height:0;flex:1;overflow:hidden}
.station-workbench>section{min-height:0;min-width:0;overflow:hidden;border:1px solid #334560;background:#101c30;border-radius:10px;padding:9px}
.station-queue{display:flex;flex-direction:column;gap:5px}
.station-queue>.queue-add{flex:0 0 auto;min-height:38px}
.station-queue>.queue-list{flex:1 1 200px;min-height:70px;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.station-queue>.queue-transport{flex:0 0 auto;margin:2px 0}
.station-queue>.queue-now{flex:0 0 auto;margin:0}
.station-queue .queue-heading{margin:0}
.station-queue>.queue-status{margin:2px 0;font-size:11px;flex:0 0 auto}
.station-queue>.playlist-import{flex:0 0 auto}
.station-media{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px}
.station-media h3{margin:0 0 2px!important;font-size:14px!important}
.dj-page .station-media .youtube-frame{width:100%;max-width:100%;min-height:200px;max-height:280px;aspect-ratio:16/9;margin:0;flex:0 0 auto}
.station-effects{display:flex;flex-direction:column;min-height:0}
.dj-page #effectsPanel{display:flex!important;flex-direction:column;flex:1;min-height:0;grid-column:auto;overflow:hidden;padding:0;border:0;margin:0;box-shadow:none;background:transparent}
.dj-page #effectsPanel>h3,.dj-page #effectsPanel>p.hint{display:none}
.dj-page #effectsPanel>label{margin:1px 0 3px;font-size:11px}
.dj-page #effectsPanel>label.toggle{font-size:10px}
.dj-page #effectsPanel>#fxStatus{margin:2px 0;font-size:10px}
.dj-page #effectsPanel>.fx-library{display:flex;flex:1;flex-direction:column;min-height:0;margin:2px 0!important;padding:5px;border:0;background:transparent}
.station-effects .fx-library-head p,.station-effects .fx-library>p.hint,.station-effects .fx-meta,.station-effects .fx-description{display:none}
.station-effects .fx-library-head h3{margin:0!important;font-size:13px!important}
.station-effects .fx-library-head .danger{padding:5px 7px!important;font-size:10px}
.station-effects .fx-filters{margin:6px 0;grid-template-columns:1fr 1fr;gap:4px}
.station-effects .fx-filters label{font-size:10px}
.station-effects .fx-filters input,.station-effects .fx-filters select{height:33px;padding:4px!important;font-size:11px}
.station-effects .fx-current{padding:5px 7px;min-height:22px;font-size:10px}
.station-effects .fx-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;margin:4px 0}
.station-effects .fx-card{gap:3px;padding:6px;min-height:62px}
.station-effects .fx-name{font-size:11px;gap:3px}
.station-effects .fx-name span{font-size:14px}
.station-effects .fx-actions{gap:3px}
.station-effects .fx-actions button{font-size:10px!important;padding:5px 2px!important;flex:1 1 49px}
.station-effects .fx-extra{margin-top:4px;padding:5px;font-size:10px}
.dj-page #console{grid-template-columns:minmax(0,4fr) minmax(185px,1fr)}
.dj-page #mixerPanel{overflow-y:auto!important}
.dj-page #console[data-view="guests"] #broadcastPanel,.dj-page #console[data-view="listeners"] #broadcastPanel{display:none!important}
.dj-page #console[data-view="effects"] #broadcastPanel,.dj-page #console[data-view="effects"] #mixerPanel{display:flex!important}
.dj-page #console[data-view="effects"] #effectsPanel{display:flex!important}
@media(max-width:1450px) and (min-width:1051px){
 .station-workbench{grid-template-columns:minmax(230px,.94fr) minmax(255px,1fr) minmax(200px,.8fr);gap:6px}
 .station-effects .fx-grid{grid-template-columns:1fr}
}
@media(max-width:1050px){
 .dj-page #console{grid-template-columns:minmax(0,1fr);overflow-y:auto;height:calc(100dvh - 65px)}
 .dj-page #broadcastPanel.radio-station{grid-column:1;display:flex;flex-direction:column;overflow:visible;min-height:0}
 .dj-page #mixerPanel{grid-column:1;overflow:visible!important}
 .station-workbench{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"queue media" "fx fx";overflow:visible;min-height:0}
 .station-queue{grid-area:queue;min-height:245px}
 .station-media{grid-area:media;min-height:245px}
 .station-effects{grid-area:fx;height:240px}
 .station-effects .fx-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .dj-page .station-media .youtube-frame{min-height:200px;width:100%}
}
@media(max-width:640px){
 .dj-page #console{overflow-y:auto;grid-auto-rows:max-content}
 .station-workbench{display:flex;flex-direction:column;gap:6px;overflow:visible}
 .station-media{order:0;min-height:0;max-height:250px}
 .station-queue{order:1;min-height:0;max-height:calc(100dvh - 370px)}
 .station-effects{order:1;height:calc(100dvh - 360px);min-height:180px}
 .dj-page .station-media .youtube-frame{min-height:200px;max-height:240px;margin:0 auto}
 .dj-page #console[data-mobile-desk="effects"] .station-queue{display:none}
 .dj-page #console[data-mobile-desk="queue"] .station-effects{display:none}
 .station-effects .fx-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dj-page #mixerPanel{overflow:visible!important}
 .dj-page #consoleTop{position:sticky;top:0;z-index:20}
 .dj-page .studio-tabs button{padding:8px 5px}
 .dj-page .quick-actions button{padding:8px 5px}
}

/* v9.6.1: short contextual statuses, no stacked function explanations. */
.dj-page p.hint:empty,.dj-page p.queue-status:empty,.dj-page .fx-current:empty,.dj-page p.air-notice:empty,.dj-page p.mic-capture-warning:empty{display:none!important}
.dj-page #console>.panel p.hint{font-size:11px;line-height:1.25;margin:3px 0}
.dj-page #guestsPanel #guestList p.hint,.dj-page #listenersPanel p.hint{margin:3px 0}
.dj-page #relayStatus{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dj-page .station-effects .fx-grid{scrollbar-gutter:stable}
.dj-page .station-effects .fx-card .fx-actions{display:flex;flex-wrap:nowrap}
.dj-page .station-effects .fx-card .fx-actions button{min-width:0;white-space:nowrap}
.live-indicator{display:inline-flex;gap:6px;align-items:center;color:#70efae;font-weight:800;letter-spacing:.05em}
.live-indicator::before{content:'';width:7px;height:7px;border-radius:50%;background:#51e3a0;box-shadow:0 0 0 4px #51e3a024;animation:radioPulse 2s infinite}
@keyframes radioPulse{50%{box-shadow:0 0 0 9px #51e3a000}}
@media(max-width:420px){.dj-page .station-media .youtube-frame{max-height:205px;min-height:0;aspect-ratio:16/9}.dj-page .station-effects .fx-actions button{font-size:9px!important;padding:5px 2px!important}}

/* v9.7: no redundant Efektler tab. Effects are always in radio station. */
.dj-page #console[data-view="effects"] #broadcastPanel,.dj-page #console[data-view="effects"] #mixerPanel{display:revert!important}
.dj-page .station-media{min-height:0;overflow:hidden}
.dj-page .station-media .youtube-frame{flex:0 0 auto;min-height:0;max-height:none;width:100%;aspect-ratio:16/9}
.teaser-desk{min-height:0;display:flex;flex-direction:column;gap:5px;flex:1;overflow:hidden;border-top:1px solid #344862;padding-top:8px}
.teaser-head{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px}
#teaserStatus{font-size:10px;color:#a4d6ca;max-width:45%;text-align:right}
.teaser-row{display:flex;align-items:center;gap:5px;min-width:0}
.teaser-row select{min-width:0;flex:1;margin:0}
.teaser-row button{flex:0 0 auto;font-size:11px!important;padding:7px 9px!important}
#teaserTitle{width:100%;margin:0!important;padding:8px;font-size:12px}
#teaserEditor{flex:1;min-height:96px;width:100%;max-width:100%;resize:vertical;border-radius:8px;background:#091423;color:#f0f3ff;padding:12px;line-height:1.55;font-family:inherit;font-size:14px}
.teaser-buttons button{flex:1 1 auto}
.teaser-reader{position:fixed;z-index:1000;inset:0;background:#07101d;color:#f7f7ee;display:flex;flex-direction:column;padding:12px;overflow:hidden}
.teaser-reader[hidden]{display:none!important}
.reader-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:5px;border-bottom:1px solid #35516d}
.reader-tools strong{flex:1}.reader-tools label{display:flex;align-items:center;gap:6px;font-size:12px}
.reader-tools input{width:100px}
.reader-content{max-width:1000px;width:100%;margin:0 auto;white-space:pre-wrap;overflow-y:auto;overflow-wrap:anywhere;flex:1;padding:2rem clamp(10px,3vw,60px);font-size:24px;line-height:1.85;scroll-behavior:auto;outline:none}
.guest-uplink{background:#123b32;color:#a4f3cc;padding:9px 12px;border-radius:8px;font-size:12px}
@media(max-width:1050px){.dj-page .station-media{min-height:330px;max-height:none}.teaser-desk{min-height:260px;overflow:visible}.station-workbench{overflow:visible}.station-media{overflow:visible!important}.dj-page #broadcastPanel.radio-station{overflow:visible}.dj-page #console{overflow-y:auto}}
@media(max-width:640px){.dj-page .station-media{max-height:none!important;min-height:340px;order:0}.teaser-desk{min-height:300px;flex:0 0 auto}.reader-tools strong{flex-basis:100%}.reader-content{padding:12px 8px}}

/* v9.7 mobile: effects stay reachable in the main radio view without a separate tab. */
@media(max-width:640px){
 .dj-page #console[data-view="radio"] .station-effects,
 .dj-page #console[data-mobile-desk="queue"] .station-effects{display:flex!important;height:270px;min-height:225px}
 .dj-page #console[data-view="radio"] .station-queue{max-height:340px}
}

@media(max-width:640px){
 .station-effects .fx-filters{display:flex;gap:5px;flex-wrap:nowrap}
 .station-effects .fx-filters label{flex:1;min-width:0}
 .station-effects .fx-library-head{gap:4px}
 .station-effects .fx-current{max-height:26px;overflow:hidden}
 .station-effects #fxLibrary{min-height:105px!important;flex:1!important;overflow-y:auto!important}
}
@media(max-width:640px){
 .dj-page #console[data-view="radio"] .station-effects,.dj-page #console[data-mobile-desk="queue"] .station-effects{height:350px;min-height:350px}
}
