:root{--bg:#0d0d0f;--surface:#191a1d;--surface2:#25262a;--gold:#d1bc82;--gold-dark:#7f6740;--text:#f5f1e9;--muted:#9e9e9d;--line:#343438;--green:#73d99b}
*{box-sizing:border-box}body{margin:0;font:15px/1.55 system-ui,Segoe UI,Arial,sans-serif;background:radial-gradient(ellipse at 15% 0%,#282419 0,transparent 36%),var(--bg);color:var(--text)}body:not([data-view=overlay]) #app{max-width:1510px;margin:0 auto;padding:22px 28px 44px}h1,h2,h3,p{margin:0}h1{font-weight:900;letter-spacing:.04em;font-size:clamp(23px,2.4vw,40px)}h1 em{font-style:normal;color:var(--gold)}h2{font-size:18px;line-height:1.35}.eyebrow{font-weight:800;letter-spacing:.18em;font-size:11px;color:var(--gold)}.topbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gold-dark);padding-bottom:16px;margin-bottom:18px}.logo{border:2px solid var(--gold);font-size:32px;color:var(--gold);width:58px;height:58px;border-radius:50%;display:grid;place-items:center}.layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:16px}.maincol,aside{display:flex;flex-direction:column;gap:16px}.panel{border:1px solid var(--line);background:rgba(26,26,29,.97);border-radius:16px;padding:20px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.pill{font-size:11px;letter-spacing:.07em;padding:5px 8px;border:1px solid #4d4739;border-radius:20px;color:var(--gold);white-space:nowrap}.pill.green{color:var(--green);border-color:#306b48}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin-top:14px}.quiz-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.cat{display:flex;align-items:center;justify-content:center;text-align:center;text-transform:uppercase;font-size:12px;font-weight:850;min-height:56px;color:var(--gold);background:#363124;border:1px solid #5a513b;border-radius:8px;padding:5px;overflow-wrap:anywhere}.tile{display:flex;align-items:center;justify-content:center;border:1px solid #51462d;background:#242329;border-radius:8px;min-height:68px;font-size:24px;font-weight:800;color:var(--gold)}button.tile:not(:disabled){cursor:pointer}.tile.selected{background:var(--gold);color:#17120e}.tile.used{opacity:.25}.question{min-height:142px}.question h2{font-size:clamp(18px,2vw,25px);margin:9px 0}.solution{margin-top:12px;padding:10px;background:#203126;color:var(--green);border-radius:8px}.winner{margin-top:12px;padding:10px;background:#30281a;color:var(--gold);border-radius:8px;font-weight:800}.controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}button{border-radius:8px;border:1px solid #55504a;background:#333236;color:white;cursor:pointer;padding:11px 8px;font:inherit;font-size:13px;font-weight:700}button:hover:not(:disabled){filter:brightness(1.18)}button:disabled{opacity:.4;cursor:not-allowed}.gold{background:var(--gold);color:#19160e;border-color:var(--gold-dark)}.dangerrow{display:flex;gap:10px;margin-top:20px;justify-content:flex-end}.dangerrow button{font-size:11px;color:#ceafa1}.scoregrid{display:grid;gap:7px}.contestant{border:1px solid var(--line);padding:9px 11px;border-radius:9px;background:#222327;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px}.contestant.buzzwin{border:2px solid var(--gold);background:#3a301a}.contestant small{font-size:12px;max-width:65%;overflow-wrap:anywhere}.contestant strong{font-size:23px;color:var(--gold);font-variant-numeric:tabular-nums}.scoreactions{display:flex;gap:5px;width:100%;justify-content:flex-end}.scoreactions button{font-size:11px;padding:4px 8px}.rank{display:flex;gap:7px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.rank span{flex:1}.rank b:last-child{color:var(--gold)}code{font:12px Consolas,monospace;color:var(--gold);display:inline-block;margin:4px 0}.login{max-width:480px;margin:80px auto}.login form{display:flex;gap:10px;margin-top:18px}input{padding:12px;color:white;border-radius:9px;border:1px solid #716243;background:var(--surface2);font-size:15px;min-width:0;flex:1}.playerwrap{max-width:880px;margin:auto;display:grid;gap:18px;text-align:center}.hero h2{font-size:32px}.bigpoints{font-size:20px;color:var(--gold)}.playerwrap .question{min-height:185px}.buzzer{font-size:30px;font-weight:900;min-height:175px;border-radius:22px;border:3px solid #916c35;background:#bc8e37;color:#15110c;box-shadow:0 12px 60px #b98d352c}.buzzer.active{background:#e8c980}.buzzer:disabled{background:#3b393a;color:#b5b0a3;box-shadow:none}.toast{position:fixed;bottom:20px;right:20px;max-width:500px;background:#713329;border:1px solid #eea997;color:white;padding:18px;border-radius:12px;z-index:999}.toast[hidden]{display:none}body[data-view=overlay]{background:transparent}body[data-view=overlay] #app{padding:24px}body[data-view=overlay] .overlay-main{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:12px}body[data-view=overlay] .topbar{background:#111d;padding:6px 20px;border-radius:12px}body[data-view=overlay] .panel{background:#111e}body[data-view=board] .quiz-board .tile{min-height:98px;font-size:36px}body[data-view=board] .quiz-board .cat{min-height:86px;font-size:17px}@media(max-width:950px){.layout{grid-template-columns:1fr}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{min-height:54px;font-size:18px}.cat{font-size:10px;min-height:54px}.scoregrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){body:not([data-view=overlay]) #app{padding:12px}.panel{padding:12px}.quiz-board{gap:4px}.tile{min-height:48px;font-size:15px}.cat{font-size:8px;min-height:50px}.controls{grid-template-columns:1fr 1fr}.scoregrid{grid-template-columns:1fr}h1{font-size:22px}.logo{display:none}}

/* v0.2 – Separate transparent OBS sources and draggable show slots */
.contestant.draggable{cursor:grab;user-select:none}.contestant.dragging{opacity:.5}.contestant.dragtarget{outline:2px dashed var(--gold)}
.slotlabel{color:var(--gold);font-size:10px;letter-spacing:.08em;margin-right:6px}
.inviteitem{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}
.inviteitem button{font-size:11px;padding:6px 10px;white-space:nowrap}
body[data-view=slots],body[data-view=slot],body[data-view=chat],body[data-view=question]{background:transparent!important;overflow:hidden}
body[data-view=slots] #app,body[data-view=slot] #app,body[data-view=chat] #app,body[data-view=question] #app{padding:0;max-width:none;margin:0;background:transparent}
body[data-view=slots] .scoregrid{display:flex;flex-direction:row;gap:8px}
body[data-view=slots] .contestant{flex:1;min-width:0;justify-content:space-between;border-color:#806c46;background:#141414df;padding:12px 15px;border-radius:10px}
body[data-view=slots] .contestant small{font-size:14px;max-width:75%}
body[data-view=slots] .contestant strong{font-size:25px}
body[data-view=chat] .panel,body[data-view=question] .panel{background:#111d;border-color:#806c46}
body[data-view=chat] .chat-overlay{max-width:420px}
body[data-view=question] .question-overlay{width:100%;max-width:1200px}
body[data-view=chat] .hint{display:none}

body[data-view=slot] .scoregrid{display:block}body[data-view=slot] .contestant{border-color:#806c46;background:#111e;padding:11px 14px}body[data-view=slot] .contestant small{font-size:15px}body[data-view=slot] .contestant strong{font-size:23px}

/* v0.3 – Episodenarchiv */
.episode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:18px 0}
.episode-tile{display:block;text-decoration:none;color:var(--text);border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:18px}
.episode-tile:hover{border-color:var(--gold)}
.episode-tile h2{margin:9px 0}.episode-tile p{color:var(--muted);font-size:13px}.history-intro{margin-bottom:10px;color:var(--muted)}
.history-detail{margin-top:20px}.history-detail h3{margin:20px 0 9px;color:var(--gold);font-size:15px}
.history-detail #viewerFilter{width:100%;max-width:500px;margin:12px 0}
.viewer-row[hidden]{display:none!important}.navlink{display:inline-block;margin-top:11px;color:var(--gold);text-decoration:none}
.viewer-row small{color:var(--muted);font-size:11px}

/* v0.4 – Episodenlinks, YouTube-Spoilerschutz */
.archive-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.archive-actions a{margin-top:0}
.video-link{display:inline-flex;align-items:center;background:#d1bc82;color:#171717;border-radius:8px;padding:8px 12px;text-decoration:none;font-size:13px;font-weight:800}
.video-link:hover{background:#f2d79c}
.spoiler-cover{border:1px dashed #bca56b;background:repeating-linear-gradient(135deg,#1d1b17,#1d1b17 14px,#24221d 14px,#24221d 28px);border-radius:12px;padding:24px;text-align:center;display:flex;align-items:center;flex-direction:column;gap:10px}
.spoiler-cover p{color:#c2bcae;max-width:510px;font-size:13px}
.spoiler-icon{font-size:28px}.spoiler-cover button{min-width:240px}

/* v0.5 Systemverwaltung */
.system-intro{margin-bottom:15px}.system-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.system-grid>div{display:flex;flex-direction:column;gap:16px}.system-panel{display:flex;flex-direction:column;align-items:stretch;gap:12px}.system-panel form{display:grid;gap:12px;margin-top:8px}.system-panel label{display:flex;flex-direction:column;gap:5px;font-size:13px}.system-panel input{width:100%}.system-panel button{align-self:flex-start}.system-panel h2{color:#e9d7aa}.inviteitem{flex-wrap:wrap}.invitebuttons{display:flex;gap:6px;flex-wrap:wrap}.settingurl{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--line);padding:5px 0}.settingurl button{padding:5px 8px;font-size:11px}.notice{position:fixed;bottom:20px;right:20px;background:#214e35;color:#f2f9f2;border:1px solid #67be85;border-radius:9px;padding:12px;max-width:400px;z-index:998}.notice[hidden]{display:none}@media(max-width:900px){.system-grid{grid-template-columns:1fr}}

.questioneditor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.questioneditor button{font-size:11px;text-align:left;padding:7px}.system-panel p{font-size:13px}

/* v0.6 VDO.Ninja-Kamerareg ie */
.contestant.eliminated{border-color:#a74848;background:#321819}.contestant.absent{opacity:.55}
#camera-stage[hidden]{display:none!important}.camera-stage{margin:18px auto;max-width:1500px;width:calc(100% - 24px);display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.camera-stage.cam-count-1{grid-template-columns:minmax(0,1fr);max-width:610px}.camera-stage.cam-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.camera-stage.cam-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.camera-stage.cam-count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-stage.cam-count-5{grid-template-columns:repeat(3,minmax(0,1fr))}
.camera-tile{background:#151515;border:2px solid #a8925b;border-radius:12px;overflow:hidden;position:relative;aspect-ratio:16/9;min-width:0}
.camera-tile iframe{width:100%;height:100%;border:0;display:block;background:#060606}.camera-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000d);text-shadow:0 1px 2px #000;padding:20px 10px 8px;text-align:center;font-weight:800;pointer-events:none}
.camera-placeholder{height:100%;min-height:110px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:4px;background:linear-gradient(145deg,#22201c,#111);color:#d9c28a;font-size:12px}
.camera-placeholder .big-x{font-size:95px;line-height:1;color:#e35757;font-weight:900}.camera-placeholder .camera-empty{font-size:34px;color:#786a45}
.camera-only-title{text-align:center;color:#d1bc82;letter-spacing:2px;font-weight:bold;padding:10px}
body[data-view=cameras] #app{background:transparent;margin:0;padding:0}body[data-view=cameras] #camera-stage{margin:0 auto;width:100%;max-width:none}
body[data-view=overlay] #camera-stage{margin-top:4px}body[data-view=player] #camera-stage{margin-top:16px}
#cameraForm{display:flex;flex-wrap:wrap;gap:8px}#cameraForm label{flex-basis:100%}#cameraForm input{flex:1;min-width:190px}
@media(max-width:790px){.camera-stage,.camera-stage.cam-count-3,.camera-stage.cam-count-5{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-stage.cam-count-1{grid-template-columns:1fr}}
@media(max-width:500px){.camera-stage,.camera-stage.cam-count-2,.camera-stage.cam-count-3,.camera-stage.cam-count-4,.camera-stage.cam-count-5{grid-template-columns:1fr}}

/* v0.7 A1 – shared director modes, six OBS camera layouts and animated stage */
@keyframes goldDrift {0%{transform:translate3d(-2%,0,0) scale(1)}50%{transform:translate3d(3%,-2%,0) scale(1.08)}100%{transform:translate3d(-2%,0,0) scale(1)}}
@keyframes pulseGold {0%,100%{box-shadow:inset 0 0 0 0 #d1bc8244}50%{box-shadow:inset 0 0 0 7px #d1bc8277}}
@keyframes introFly{from{opacity:0;transform:translateY(-16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ambientSweep{0%{background-position:0% 50%;opacity:.42}50%{background-position:100% 50%;opacity:.78}100%{background-position:0% 50%;opacity:.42}}
.mode-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.mode-controls button{white-space:normal;font-size:12px}
.show-director{border:1px solid var(--gold-dark)}.viewer-sum{border:1px dashed #655637;background:#211e18;padding:10px;border-radius:8px;margin-bottom:11px;font-size:12px}.viewer-sum strong{font-size:18px;color:var(--gold);padding:0 5px}.viewer-sum small{display:block;color:var(--muted)}
body[data-view="overlay"],body[data-view="pov"]{margin:0;background:#0b0a0c;overflow:hidden;color:#f6f2ec}
body[data-view="overlay"] #app,body[data-view="pov"] #app{padding:0;margin:0;width:100%;max-width:none;height:100vh;position:relative}
.broadcast{position:fixed;inset:0;overflow:hidden;background:radial-gradient(ellipse at 20% 60%,#211b12 0%,transparent 42%),radial-gradient(ellipse at 86% 10%,#302514 0%,transparent 45%),linear-gradient(140deg,#101013 0%,#090909 55%,#1b1710 100%);}
.broadcast::before{content:"";position:absolute;inset:-15%;pointer-events:none;background:radial-gradient(ellipse at 80% 40%,#d1bc8216,transparent 43%),linear-gradient(130deg,transparent 30%,#d1bc8208 50%,transparent 73%);animation:goldDrift 21s ease-in-out infinite alternate;z-index:0}
.broadcast::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 145px 35px #0008;background:linear-gradient(110deg,transparent 0%,transparent 38%,#d1bc8204 50%,transparent 62%,transparent 100%);background-size:180% 100%;animation:ambientSweep 22s ease-in-out infinite;z-index:0}
.broadcast>*{position:absolute;z-index:1}.broadcast-head{top:1%;left:1.7%;right:1.7%;display:flex;justify-content:space-between;color:#d1bc82;text-shadow:0 1px 4px black;letter-spacing:.08em;align-items:center;font-weight:800;font-size:clamp(12px,1.3vw,22px)}
.broadcast-brand{font-size:.9em}.broadcast-mode{text-align:right}
.broadcast-top{top:5%;left:15%;right:14%;height:34%;display:grid;grid-template-columns:1fr 1fr;gap:1.5%;animation:introFly .45s ease-out}
.broadcast-top>section{min-height:0;overflow:hidden;border:2px solid #9c8250;border-radius:13px;background:linear-gradient(135deg,#131313f2,#232020e8);box-shadow:0 9px 40px #000a;padding:1.5%;}
.broadcast-top h3{font-size:clamp(10px,1.2vw,19px);margin:0 0 9px;color:#d1bc82;letter-spacing:.08em;text-align:center}
.broadcast-top .quiz-board{gap:3px;grid-template-columns:repeat(5,minmax(0,1fr));width:100%}
.broadcast-top .quiz-board .cat{font-size:clamp(6px,.55vw,12px);min-height:24px;padding:2px;overflow:hidden;letter-spacing:0}
.broadcast-top .quiz-board .tile{min-height:clamp(23px,3.25vh,47px);font-size:clamp(11px,1.25vw,22px);padding:1px}
.broadcast-top .quiz-board .selected{animation:pulseGold 1s ease-in-out 2;background:#4b3821}
.broadcast-top .panel.question{min-height:auto;padding:3%;height:auto;border:0;background:transparent}
.broadcast-top .question h2{font-size:clamp(12px,1.5vw,27px);line-height:1.18;margin:8px 0}
.broadcast-top .question .panelhead{gap:8px}.broadcast-top .question .eyebrow,.broadcast-top .question .pill{font-size:clamp(7px,.6vw,12px)}
.broadcast-ranking{bottom:2.2%;left:22%;right:22%;height:11%;border:1px solid #a38a55;border-radius:10px;background:#191816eb;overflow:hidden;padding:7px 11px}
.broadcast-ranking h3{color:#d1bc82;font-size:clamp(11px,1.2vw,20px);margin:0;text-align:center}.broadcast-ranking .panel{border:0;background:transparent;padding:0}.broadcast-ranking .panelhead{display:none}.broadcast-ranking .hint{display:none}.broadcast-ranking .rank{display:inline-flex;margin-right:14px;font-size:clamp(8px,.7vw,12px);border:0;padding:3px}
.broadcast-bottom-label{right:2%;bottom:1.3%;font-size:10px;color:#d1bc827f}
.mode-message{inset:14% 10% auto;text-align:center;display:flex;gap:16px;align-items:center;flex-direction:column;text-shadow:0 4px 20px #000}
.mode-message span{font-size:55px;color:#d1bc82}.mode-message strong{font-weight:900;font-size:clamp(22px,4.5vw,80px);color:#d1bc82;letter-spacing:.07em}.mode-message small{font-size:clamp(12px,1.7vw,28px)}
body[data-view="overlay"] #camera-stage,body[data-view="pov"] #camera-stage{position:fixed;inset:0;margin:0!important;width:100%;height:100%;max-width:none;display:block;background:transparent;pointer-events:none;z-index:2}
body[data-view="overlay"] #camera-stage .camera-position,body[data-view="pov"] #camera-stage .camera-position{position:absolute;pointer-events:auto;transition:top .45s ease,left .45s ease,width .45s ease,height .45s ease}
body[data-view="overlay"] #camera-stage .camera-tile,body[data-view="pov"] #camera-stage .camera-tile{width:100%;height:100%;aspect-ratio:auto;border-color:#ac9156;box-shadow:0 9px 25px #0009;border-radius:9px}
body[data-view="overlay"] #camera-stage .camera-position,body[data-view="pov"] #camera-stage .camera-position,body[data-view="player"].player-broadcast #camera-stage .camera-position{height:auto!important;aspect-ratio:16/9}
body[data-view="overlay"] #camera-stage .camera-tile,body[data-view="pov"] #camera-stage .camera-tile,body[data-view="player"].player-broadcast #camera-stage .camera-tile{height:100%!important}
body[data-view="overlay"] #camera-stage .camera-label,body[data-view="pov"] #camera-stage .camera-label{font-size:clamp(10px,.86vw,16px);text-align:left;padding:15px 7px 6px}
body[data-view="overlay"] #camera-stage .pos-host,body[data-view="pov"] #camera-stage .pos-host{left:22%;top:46%;width:27%;height:28%}
body[data-view="overlay"] #camera-stage .pos-pov,body[data-view="pov"] #camera-stage .pos-pov{left:51%;top:46%;width:27%;height:28%}
body[data-view="overlay"] #camera-stage .pos-0,body[data-view="pov"] #camera-stage .pos-0{left:1%;top:47%;width:19%;height:19%}
body[data-view="overlay"] #camera-stage .pos-1,body[data-view="pov"] #camera-stage .pos-1{left:1%;top:68%;width:19%;height:19%}
body[data-view="overlay"] #camera-stage .pos-4,body[data-view="pov"] #camera-stage .pos-4{left:80%;top:47%;width:19%;height:19%}
body[data-view="overlay"] #camera-stage .pos-5,body[data-view="pov"] #camera-stage .pos-5{left:80%;top:68%;width:19%;height:19%}
/* fewer candidates: avoid empty positions */
body[data-view="overlay"] #camera-stage.layout-count-4 .pos-4,body[data-view="pov"] #camera-stage.layout-count-4 .pos-4{top:58%}
body[data-view="overlay"] #camera-stage.layout-count-3 .pos-0,body[data-view="pov"] #camera-stage.layout-count-3 .pos-0{top:58%}
body[data-view="overlay"] #camera-stage.layout-count-3 .pos-1,body[data-view="pov"] #camera-stage.layout-count-3 .pos-1{left:80%;top:58%}
body[data-view="overlay"] #camera-stage.layout-count-2 .pos-0,body[data-view="pov"] #camera-stage.layout-count-2 .pos-0{top:60%}
body[data-view="overlay"] #camera-stage.layout-count-1 .pos-pov,body[data-view="pov"] #camera-stage.layout-count-1 .pos-pov{left:51%}
body[data-view="overlay"] #camera-stage.mode-starting .camera-position,body[data-view="pov"] #camera-stage.mode-starting .camera-position,body[data-view="overlay"] #camera-stage.mode-pause .camera-position,body[data-view="pov"] #camera-stage.mode-pause .camera-position{opacity:.3}
body[data-view="overlay"] #camera-stage.mode-chatting .camera-position,body[data-view="pov"] #camera-stage.mode-chatting .camera-position{top:54%}
/* moderator preview is displayed separately beneath live direction to preserve existing input controls */
body[data-view="admin"] #camera-stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1300px;gap:10px;margin:12px auto}
body[data-view="admin"] #camera-stage .camera-position{min-width:0}
body[data-view="admin"] #camera-stage .camera-tile{aspect-ratio:16/9}
@media(prefers-reduced-motion:reduce){.broadcast::before,.broadcast-top .selected{animation:none!important} .camera-position{transition:none!important}}
@media(max-width:850px){.mode-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v0.7 A2 – permanent regie camera rail, in-show candidate control, full-size board */
body[data-view="player"].player-broadcast{margin:0;background:#0b0a0c;overflow:hidden;color:#f6f2ec}
body[data-view="player"].player-broadcast #app{max-width:none;width:100%;height:100vh;padding:0;margin:0}
body[data-view="player"].player-broadcast #camera-stage{position:fixed;inset:0;margin:0!important;width:100%;height:100%;max-width:none;display:block;background:transparent;pointer-events:none;z-index:2}
body[data-view="player"].player-broadcast #camera-stage .camera-position{position:absolute;pointer-events:auto;transition:top .45s ease,left .45s ease,width .45s ease,height .45s ease}
body[data-view="player"].player-broadcast #camera-stage .camera-tile{width:100%;height:100%;aspect-ratio:auto;border-color:#ac9156;box-shadow:0 9px 25px #0009;border-radius:9px}
body[data-view="player"].player-broadcast #camera-stage .camera-label{font-size:clamp(10px,.86vw,16px);text-align:left;padding:15px 7px 6px}
body[data-view="player"].player-broadcast #camera-stage .pos-host{left:22%;top:46%;width:27%;height:28%}
body[data-view="player"].player-broadcast #camera-stage .pos-pov{left:51%;top:46%;width:27%;height:28%}
body[data-view="player"].player-broadcast #camera-stage .pos-0{left:1%;top:47%;width:19%;height:19%}
body[data-view="player"].player-broadcast #camera-stage .pos-1{left:1%;top:68%;width:19%;height:19%}
body[data-view="player"].player-broadcast #camera-stage .pos-4{left:80%;top:47%;width:19%;height:19%}
body[data-view="player"].player-broadcast #camera-stage .pos-5{left:80%;top:68%;width:19%;height:19%}
body[data-view="player"].player-broadcast #camera-stage.layout-count-4 .pos-4{top:58%}
body[data-view="player"].player-broadcast #camera-stage.layout-count-3 .pos-0{top:58%}
body[data-view="player"].player-broadcast #camera-stage.layout-count-3 .pos-1{left:80%;top:58%}
body[data-view="player"].player-broadcast #camera-stage.layout-count-2 .pos-0{top:60%}
body[data-view="player"].player-broadcast #camera-stage.layout-count-1 .pos-pov{left:51%}
body[data-view="player"].player-broadcast #camera-stage.mode-starting .camera-position{opacity:.85}
body[data-view="player"].player-broadcast #camera-stage.mode-pause .camera-position{opacity:.55}
body[data-view="player"].player-broadcast #camera-stage.mode-chatting .camera-position{top:54%}
/* Always expand the full 5x5 grid into its allotted frame. */
.broadcast-top>section.broadcast-board{display:flex;flex-direction:column;min-height:0}
.broadcast-top .broadcast-board>.quiz-board{flex:1;min-height:0;height:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));align-content:stretch;gap:3px}
.broadcast-top .quiz-board .cat{min-height:0;height:100%;font-size:clamp(8px,.61vw,13px);padding:2px}
.broadcast-top .quiz-board .tile{min-height:0;height:100%;font-size:clamp(13px,1.3vw,23px);padding:1px}
.broadcast-question{position:relative}
body[data-view="player"].player-broadcast .broadcast-question{display:flex;flex-direction:column}
body[data-view="player"].player-broadcast .broadcast-question>.question{flex:1;min-height:0;overflow:hidden}
.question-buzzer-wrap{position:absolute;left:3%;right:3%;bottom:3%;z-index:2;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:space-between;border-top:1px solid #877045;padding-top:6px;background:#191715ed}
.question-buzzer-wrap .buzzer{min-height:42px;font-size:clamp(12px,1.2vw,20px);padding:6px 14px;border-width:2px;border-radius:10px;box-shadow:none;flex:1;max-width:56%}
.question-buzzer-wrap .player-buzzer-hint{font-size:clamp(9px,.78vw,13px);max-width:42%;color:#f4e1b7;line-height:1.2}
body[data-view="player"].player-broadcast .broadcast-question .question h2{margin-bottom:50px}
.broadcast-ranking.player-camera-settings{display:flex;flex-direction:column;gap:4px;padding:6px 12px;z-index:3;height:12.5%;bottom:1.1%}
.player-camera-settings .camera-settings-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.player-camera-settings h3{font-size:clamp(10px,1vw,17px);margin:0;text-align:left}
.player-camera-settings .own-score{font-size:clamp(9px,.72vw,13px);font-weight:700;color:#f0d6a6}
.player-camera-settings #cameraForm{display:flex;flex-wrap:nowrap;gap:8px;min-height:26px}
.player-camera-settings #cameraForm input{background:#101014;padding:5px 8px;min-width:0;font-size:clamp(10px,.85vw,15px);flex:1}
.player-camera-settings #cameraForm button{padding:5px 8px;white-space:nowrap;font-size:clamp(10px,.76vw,13px)}
.player-camera-settings .camera-settings-links{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:clamp(9px,.66vw,12px)}
.player-camera-settings .camera-settings-links a{color:#e7d1a0}
.player-camera-settings .camera-settings-links button{padding:0 6px;min-height:22px;font-size:inherit}
.player-camera-settings .camera-settings-links span{color:#b2a88c}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.player-total-strip{position:absolute;left:15%;right:14%;top:39.6%;height:4%;display:flex;justify-content:space-around;align-items:center;gap:4px;overflow:hidden;color:#f1dbaa;font-size:clamp(9px,.7vw,13px);padding:1px 12px;background:#080808b8;border-radius:8px}
.player-total-strip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-total-strip span.self{color:#ffe8a3}
/* Fixed-height camera previews on the right side of the moderator dashboard. */
@media(min-width:1100px){body[data-view="admin"] #app:has(.show-director){max-width:none;margin-left:0;margin-right:350px;padding-left:20px;padding-right:8px}}
body[data-view="admin"] #camera-stage{position:fixed;z-index:70;top:10px;right:10px;bottom:10px;left:auto;max-width:none;width:330px;margin:0!important;padding:12px;overflow-y:auto;align-content:start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:#101011f7;border:1px solid #7e683f;border-radius:16px;box-shadow:0 10px 35px #0009}
body[data-view="admin"] #camera-stage .camera-regie-title{grid-column:1/-1;color:#d1bc82;display:flex;flex-direction:column;font-size:14px}
body[data-view="admin"] #camera-stage .camera-regie-title small{color:#b0a79b;font-size:10px}
body[data-view="admin"] #camera-stage .camera-position{position:relative;min-width:0}
body[data-view="admin"] #camera-stage .camera-tile{aspect-ratio:16/10;border-radius:7px;border-width:1px}
body[data-view="admin"] #camera-stage .camera-label{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:15px 5px 3px}
body[data-view="admin"] #camera-stage .camera-placeholder{min-height:70px;font-size:10px;text-align:center;padding:3px}
body[data-view="admin"] #camera-stage .camera-placeholder .camera-empty{font-size:23px}
body[data-view="admin"] #camera-stage .camera-placeholder .big-x{font-size:55px}
body[data-view="admin"] #camera-stage .camera-magnify{width:100%;padding:3px 6px;font-size:10px;margin-top:3px}
.camera-zoom-dialog{position:fixed;inset:0;z-index:99999;background:#000c;display:grid;place-items:center;padding:20px}
.camera-zoom-panel{width:min(900px,92vw);background:#151515;border:2px solid #d1bc82;border-radius:14px;padding:16px}
.camera-zoom-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:9px;color:#d1bc82}
.camera-zoom-panel iframe,.camera-zoom-panel .camera-preview-empty{width:100%;aspect-ratio:16/9;background:#111;border:0;border-radius:7px;display:grid;place-items:center;color:#d1bc82}
.camera-zoom-panel p{margin-top:9px;color:#aaa}
@media(max-width:1099px){body[data-view="admin"] #camera-stage{position:sticky;top:0;width:calc(100% - 20px);margin:12px auto!important;grid-template-columns:repeat(6,minmax(0,1fr));}body[data-view="admin"] #camera-stage .camera-regie-title{grid-column:1/-1}}
@media(max-width:650px){body[data-view="admin"] #camera-stage{grid-template-columns:repeat(3,minmax(0,1fr));max-height:210px;overflow:auto}.player-camera-settings .camera-settings-links span{display:none}}
@media(prefers-reduced-motion:reduce){.camera-position{transition:none!important}}

/* v0.7 A3 – candidate onboarding, true six-person Just Chatting, private technical controls */
.onboarding-screen{min-height:100vh;background:radial-gradient(ellipse at 65% 18%,#3e3218,#111 54%);display:grid;place-items:center;padding:24px}
body[data-view="player"]:has(.onboarding-screen){margin:0;background:#0e0d0b;color:#f5efe4}
body[data-view="player"]:has(.onboarding-screen) #app{padding:0;max-width:none}
.onboarding-box{width:min(660px,100%);border:2px solid #d1bc82;border-radius:20px;padding:clamp(22px,4vw,46px);box-shadow:0 20px 60px #000a;background:#171615}
.onboarding-box h1{font-size:clamp(23px,3vw,43px);line-height:1.14;color:#d1bc82;margin:12px 0}.onboarding-box p{color:#d5d0c6;line-height:1.5}
.onboarding-box form{display:flex;flex-direction:column;gap:18px}.onboarding-box label{display:grid;gap:7px;font-weight:700;color:#e5d8ba}
.onboarding-box input{width:100%;padding:14px;background:#111;color:#fff;border:1px solid #8d784d;border-radius:9px;font-size:16px}
.onboarding-box button{min-height:52px;font-size:17px}
.broadcast .private-player-tools{position:absolute;z-index:20;border:1px solid #ad955d;background:#111110f4;border-radius:12px;padding:9px 14px;display:flex;gap:10px;align-items:center;justify-content:center}
.broadcast .private-tools-quiz{bottom:2.1%;left:22%;right:22%;height:10%}
.broadcast .private-tools-intermission{bottom:1%;right:2%;max-width:30%;z-index:6;padding:5px 9px;opacity:.94}
.private-player-tools button,.private-player-tools summary{border-radius:8px;padding:8px 10px;font-size:clamp(11px,.85vw,15px);color:#f4d995;white-space:nowrap}
.private-player-tools details[open]{z-index:90}
.private-player-tools .tech-dropdown{position:relative}
.private-player-tools .tech-dropdown summary{cursor:pointer;list-style:none;border:1px solid #827046}
.private-player-tools .tech-dropdown form{position:absolute;right:0;bottom:44px;width:min(360px,80vw);background:#1c1a17;box-shadow:0 12px 35px #0009;border:1px solid #d1bc82;padding:12px;border-radius:9px;display:flex;gap:6px;flex-wrap:wrap}
.private-player-tools .tech-dropdown input{min-width:0;width:100%;padding:10px;background:#080808;color:white;border:1px solid #9a8254;border-radius:6px}
.private-player-tools .tech-dropdown button{flex:1}
.broadcast-ranking.player-camera-settings{display:none!important}
.scene-star{font-size:clamp(26px,2.7vw,55px);color:#d1bc82;display:block;text-shadow:0 0 22px #d1bc8255}
.broadcast .chatting-center{position:absolute;top:7%;left:22%;right:22%;height:24%;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;pointer-events:none}
.broadcast .chatting-center h1{color:#d1bc82;font-size:clamp(34px,3.8vw,66px);margin:0;font-weight:900;letter-spacing:.07em}
.broadcast .chatting-center h2{font-size:clamp(14px,1.5vw,24px);font-weight:500;color:#e8e2d7;margin:0}
.broadcast .intermission-center{position:absolute;top:9%;left:8%;right:8%;height:23%;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.broadcast .intermission-center h1{color:#d1bc82;font-size:clamp(30px,4.1vw,76px);margin:0;letter-spacing:.05em;line-height:1.12;text-shadow:0 5px 22px #000}
.broadcast .intermission-center p{font-size:clamp(13px,1.45vw,25px);margin:2px;color:#f2f0eb}
.broadcast .scene-help{position:absolute;left:9%;right:9%;z-index:5;text-align:center;color:#efddb9;font-size:clamp(10px,.93vw,16px);line-height:1.55;background:#100e0bdb;border:1px solid #86744b;border-radius:12px;padding:8px 16px}
.scene-help span{padding:0 9px;color:#a7946a}.scene-help small{font-size:.8em;color:#c9bc9d}
.broadcast .scene-chatting-help{top:83%;bottom:auto}.broadcast .scene-intermission-help{top:auto;bottom:11.2%}
.scene-chat{position:fixed;z-index:5;border:2px solid #af9560;border-radius:14px;overflow:hidden;background:#171617;box-shadow:0 12px 45px #000b}
.scene-chat iframe{width:100%;height:100%;border:0;display:block;background:#151515}
.scene-chat.scene-chatting{left:52%!important;top:38%!important;width:43%!important;height:23%!important}
.scene-chat.scene-starting,.scene-chat.scene-pause{left:15%!important;width:70%!important;top:14.5%!important;height:45%!important}
#camera-stage.mode-chatting .chat-camera-column{position:absolute!important;top:17%;height:72%;width:19%;display:flex;flex-direction:column;gap:12px;align-items:stretch}
#camera-stage.mode-chatting .chat-camera-column.chat-left{left:1%}
#camera-stage.mode-chatting .chat-camera-column.chat-right{right:1%}
#camera-stage.mode-chatting .chat-camera-column .camera-position{position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;width:100%!important;height:auto!important;min-height:0;flex:1;transition:none!important}
#camera-stage.mode-chatting .chat-camera-column .camera-tile{width:100%;height:100%;aspect-ratio:auto}
#camera-stage.mode-chatting .chat-camera-column .camera-label{font-size:clamp(11px,.85vw,17px);line-height:1.2}
#camera-stage.mode-chatting .chat-camera-column .camera-label::after{display:none}
#camera-stage.mode-chatting .chat-camera-column .camera-placeholder{font-size:clamp(10px,.8vw,15px)}
/* Non-quiz intermission never shows the old canvas-camera slots. */
body[data-view="overlay"] #camera-stage[hidden],body[data-view="pov"] #camera-stage[hidden],body[data-view="player"] #camera-stage[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.broadcast::before{animation:none!important}}

/* Finale v0.7 A3.1: separates Schätzspiel statt leerem Quizbrett */
.final-director{border-color:#b69c64}.final-select-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:12px 0}.final-select-form label{flex:1;min-width:230px}.final-select-form select{display:block;width:100%;background:#242225;border:1px solid #907e59;color:#fff;padding:10px;border-radius:8px;margin-top:5px}.final-submission{display:flex;gap:14px;margin:12px 0;color:#e3c783;font-size:14px;flex-wrap:wrap}.final-stage{padding:10px;color:#f6eee0}.final-stage h2{font-size:clamp(15px,1.55vw,28px);line-height:1.25;margin:9px 0}.final-status{color:#d1bc82;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:bold}.final-unit{font-size:12px;color:#bfb39a}.final-contenders{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.final-contender{background:#25221c;border:1px solid #87704b;border-radius:7px;padding:8px;min-width:130px;flex:1}.final-contender strong,.final-contender span{display:block}.final-contender span{font-size:12px;color:#dccb9e;margin-top:4px}.final-result{border-top:1px solid #b89d64;padding-top:8px;margin-top:9px;color:#f6dea6}.final-result p{margin:4px 0;font-size:12px}.final-audience{margin-top:10px;font-size:12px;color:#f4d69b}.final-audience div{margin:3px 0}.final-guess-form{margin-top:12px;border-top:1px solid #907b52;padding-top:9px}.final-guess-form label{font-weight:bold;color:#eddbad;font-size:12px}.final-guess-form div{display:flex;gap:8px;flex-wrap:wrap}.final-guess-form input{background:#0b0b0b;border:1px solid #897852;color:#fff;border-radius:8px;padding:8px;flex:1;min-width:110px}.final-guess-form button{flex:0 0 auto}.final-already{border:1px solid #667d54;background:#20301d;border-radius:6px;padding:8px;font-size:12px}.final-question-editor{margin-top:14px;border-top:1px solid #655a3f;padding-top:12px}.final-question-editor summary{cursor:pointer;color:#dbc18a}.final-question-editor form{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.final-question-editor input{flex:1;min-width:120px;padding:8px}.final-bank-row{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid #333;font-size:12px}.final-bank-row button{flex:none}.broadcast-top.finale-top .broadcast-board{display:flex;flex-direction:column;justify-content:center;text-align:center}.broadcast-top.finale-top .broadcast-board p{color:#eee1be;font-size:clamp(10px,1vw,18px)}.finale-intro{font-size:clamp(16px,1.5vw,28px);font-weight:900;color:#d1bc82}.broadcast-top.finale-top .final-stage{padding:0}.broadcast-top.finale-top .final-stage h2{font-size:clamp(12px,1.22vw,25px);margin:8px 0}.broadcast-top.finale-top .final-contender{padding:5px}.broadcast-top.finale-top .final-result{margin:3px 0;padding:3px}.broadcast-top.finale-top .final-audience{font-size:clamp(9px,.64vw,13px)}.broadcast-top.finale-top .final-guess-form{margin-top:4px}.broadcast-top.finale-top .final-guess-form button{padding:8px}.broadcast-top.finale-top .final-guess-form input{max-width:55%}

/* v0.7 A3.2 – Finale: drei große 16:9-Kameras, Ausgeschiedene als kleine Randkarten */
.camera-tile{display:flex!important;flex-direction:column!important;overflow:hidden!important}
.camera-tile .camera-media{width:100%;flex:1 1 auto;min-height:0;overflow:hidden;position:relative;background:#0d0d11;aspect-ratio:16/9}
.camera-tile .camera-iframe-crop{position:absolute;inset:0;overflow:hidden;background:#080808}
.camera-tile .camera-iframe-crop iframe{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;transform:scale(var(--camera-zoom,1));transform-origin:center center;display:block!important}
.camera-tile .camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.camera-tile .twitch-profile-fallback{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;opacity:.86}
.camera-tile .camera-label{position:relative!important;inset:auto!important;bottom:auto!important;min-height:28px!important;flex:0 0 auto;display:flex!important;justify-content:space-between;align-items:center;gap:10px;background:#15130fed!important;border-top:1px solid #ad955f;padding:5px 9px!important;text-shadow:0 1px #000;white-space:nowrap;z-index:2}
.camera-tile .camera-person{overflow:hidden;text-overflow:ellipsis}
.camera-tile .camera-points{color:#e1c988;font-weight:800;flex:none}
/* Restore familiar stage tile proportions while fitting full 16:9 content into its frame. */
#camera-stage.final-camera-stage{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important;display:block!important}
#camera-stage.final-camera-stage .final-hero{position:absolute;top:44%;height:auto!important;width:28.5%;pointer-events:auto;aspect-ratio:16/9}
#camera-stage.final-camera-stage .final-left{left:2.8%}
#camera-stage.final-camera-stage .final-host{left:35.75%}
#camera-stage.final-camera-stage .final-right{left:68.7%}
#camera-stage.final-camera-stage .final-hero .camera-tile{width:100%;height:100%;border:1px solid #bd9e63;border-radius:9px}
#camera-stage.final-camera-stage .final-eliminated{position:absolute;right:2.2%;top:7.2%;width:11%;height:27.2%;display:flex;flex-direction:column;gap:1.3%;pointer-events:auto}
#camera-stage.final-camera-stage .final-eliminated-slot{min-height:0;flex:1;overflow:hidden;display:flex}
#camera-stage.final-camera-stage .final-eliminated-slot .camera-tile{width:100%;height:100%;border:1px solid #9c895f;border-radius:7px}
#camera-stage.final-camera-stage .final-eliminated-slot .camera-media{flex:1;min-height:0}
#camera-stage.final-camera-stage .final-eliminated-slot .camera-label{font-size:clamp(8px,.6vw,12px)!important;padding:2px 4px!important;min-height:18px!important}
#camera-stage.final-camera-stage .final-eliminated-slot .camera-placeholder{align-items:center!important;justify-content:center!important;text-align:center!important}
#camera-stage.final-camera-stage .final-eliminated-slot .camera-placeholder span.big-x{font-size:clamp(27px,3.2vw,60px)!important}
#camera-stage.final-camera-stage .final-eliminated-slot .camera-points{display:none}
#camera-stage.final-camera-stage .camera-position{display:none!important}
.final-waiting{margin-top:10px;border:1px solid #947d4d;border-radius:7px;padding:8px 12px;color:#f2d9a0;background:#292215;font-size:clamp(11px,1vw,16px)}
.broadcast-top.finale-top .final-guess-form{position:relative;z-index:8}
.broadcast-top.finale-top .final-guess-form input{font-size:16px;max-width:none!important}
.broadcast-top.finale-top .final-guess-form button{background:#d1bc82;color:#111;cursor:pointer}
body[data-view="player"].player-broadcast #camera-stage.final-camera-stage .final-hero{pointer-events:auto}
@media(max-width:1050px){#camera-stage.final-camera-stage .final-hero{top:53%;height:25%}}


/* v0.7 A3.3 – Live-Regie: alle Kameras einschließlich Host in EINER vertikalen Spalte. */
@media(min-width:1100px){
 body[data-view="admin"] #app:has(.show-director){margin-right:390px!important}
}
body[data-view="admin"] #camera-stage{
 width:365px!important;
 display:flex!important;
 flex-direction:column!important;
 gap:8px!important;
 overflow-y:auto!important;
 align-items:stretch!important;
}
body[data-view="admin"] #camera-stage .camera-regie-title{
 position:sticky;top:-12px;z-index:2;background:#101011;padding:9px 2px;
 display:flex;flex-direction:column;flex:0 0 auto!important;
}
body[data-view="admin"] #camera-stage .camera-position{
 display:flex!important;flex-direction:column!important;
 flex:0 0 auto!important;min-height:0!important;height:auto!important;
 position:relative!important;grid-column:auto!important;
}
body[data-view="admin"] #camera-stage .camera-tile{
 width:100%!important;height:auto!important;aspect-ratio:auto!important;
 display:flex!important;flex-direction:column!important;
}
body[data-view="admin"] #camera-stage .camera-media{
 width:100%!important;flex:none!important;aspect-ratio:16/9!important;height:auto!important;
}
body[data-view="admin"] #camera-stage .camera-label{
 display:flex!important;justify-content:space-between!important;align-items:center!important;
 min-height:27px!important;padding:4px 8px!important;font-size:12px!important;
 white-space:nowrap!important;
}
body[data-view="admin"] #camera-stage .camera-magnify{
 flex:0 0 auto!important;padding:3px!important;margin:3px 0 5px!important;font-size:11px!important;
}
/* Show proper fill even in the camera enlargement preview. */
.camera-zoom-panel iframe{object-fit:cover}
@media(max-width:1099px){body[data-view="admin"] #camera-stage{position:relative!important;right:auto!important;left:auto!important;top:auto!important;bottom:auto!important;width:min(96%,600px)!important;max-height:75vh!important;}}

/* v0.7 A3.4 – Finale übersichtlich: Regieergebnis und Streamansicht nebeneinander. */
.final-two-views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 8px}
.final-two-views>section{min-width:0}
.final-two-views h3{font-size:12px;letter-spacing:.065em;color:#d1bc82;margin:0 0 8px}
.final-preview-frame{min-height:196px;max-height:390px;overflow:auto;padding:12px;border:1px solid #927745;background:linear-gradient(145deg,#181717,#29241b);border-radius:12px}
.final-regie-answer{display:block;color:#fff4cf;font-size:18px;margin:9px 0}
.regie-victory{font-size:17px;color:#f4d083;font-weight:850;margin:8px 0 12px}
.regie-result-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 10px;border-top:1px solid #5f5034;padding:7px 2px;font-size:13px}
.regie-result-row small{color:#c2ae81;flex-basis:100%}
.final-audience-view .final-stage{padding:0}
.final-stage-revealed{display:flex;flex-direction:column;gap:5px}
.final-stage-revealed h2{font-size:clamp(13px,1.03vw,22px)!important;line-height:1.17;margin:3px 0 5px!important}
.final-reveal-highlight{display:flex;flex-direction:column;gap:3px;padding:7px 10px;border-radius:8px;border:1px solid #9b844e;background:#2b2519;color:#f2e1af}
.final-reveal-highlight span{font-size:clamp(10px,.7vw,14px)}
.final-reveal-highlight span b{font-size:1.15em;color:white}
.final-reveal-highlight>strong{font-size:clamp(13px,1.05vw,22px);color:#f5d17c;line-height:1.2}
.final-reveal-guesses{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;color:#efdbb0;font-size:clamp(10px,.68vw,14px)}
.final-reveal-guesses>span{white-space:nowrap}
.final-audience-compact{border-top:1px solid #76643c;padding-top:4px;min-width:0}
.final-audience-compact>b{font-size:clamp(9px,.65vw,13px);color:#cbae7d}
.final-audience-compact>div{display:flex;flex-direction:column;gap:1px;font-size:clamp(9px,.65vw,12px);line-height:1.3;color:#eee1c9}
.final-audience-compact span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.final-audience-view .final-reveal-highlight>strong{font-size:clamp(12px,1.1vw,17px)}
.final-audience-view .final-reveal-guesses{font-size:12px}
.final-audience-view .final-audience-compact>div{font-size:11px}
@media(max-width:790px){.final-two-views{grid-template-columns:1fr}.final-preview-frame{max-height:none}}
/* 10 % weniger Breite für die rechte Kamera-Vorschau (365px -> 329px). */
@media(min-width:1100px){body[data-view="admin"] #app:has(.show-director){margin-right:354px!important}}
@media(min-width:1100px){body[data-view="admin"] #camera-stage{width:329px!important}}
/* Sieger-Konfetti nur bei echtem Sieg, über dem Video; zeitlich auf 30s begrenzt. */
.camera-tile.camera-winner{position:relative!important;border-color:#edcd76!important;box-shadow:0 0 24px #d1bc8273,0 9px 25px #0009!important}
.winner-confetti{position:absolute;inset:0 0 28px;overflow:hidden;z-index:8;pointer-events:none;animation:confetti-window 30s linear forwards}
.winner-confetti>span{position:absolute;left:var(--left);top:-22%;width:clamp(5px,.55vw,11px);height:clamp(9px,.95vw,18px);background:#d1bc82;opacity:0;transform:rotate(0);animation:confetti-drop var(--duration) var(--delay) linear infinite}
.winner-confetti>span:nth-child(4n){background:#ffffff}
.winner-confetti>span:nth-child(4n + 1){background:#9f7ad2}
.winner-confetti>span:nth-child(4n + 2){background:#f2aa65}
.winner-camera-badge{position:absolute;left:50%;top:5%;transform:translateX(-50%);background:#211a0df0;border:1px solid #ecc674;border-radius:7px;padding:3px 9px;color:#ffe5a1;font-weight:900;font-size:clamp(9px,.85vw,16px);white-space:nowrap;text-shadow:0 1px 3px black;z-index:9;pointer-events:none;animation:confetti-window 30s linear forwards}
@keyframes confetti-drop{0%{opacity:0;transform:translate3d(0,-10%,0) rotate(0deg)}8%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translate3d(var(--swing),540px,0) rotate(740deg)}}
@keyframes confetti-window{0%,95%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.winner-confetti>span{animation:none;opacity:0}.winner-camera-badge{animation:none}}

/* v0.7 A3.5 – persistent WebRTC video nodes: movement only, never recreate on scene updates. */
body[data-view="host"]{background:transparent}
body[data-view="host"] #app{padding:0;max-width:none;margin:0}
body[data-view="host"] #camera-stage,
body[data-view="overlay"] #camera-stage.persistent-stage,
body[data-view="pov"] #camera-stage.persistent-stage,
body[data-view="player"].player-broadcast #camera-stage.persistent-stage{
 position:fixed!important;inset:0!important;width:100%!important;height:100%!important;
 max-width:none!important;margin:0!important;display:block!important;background:transparent!important;
 pointer-events:none!important;z-index:2!important;
}
body[data-view="host"] #camera-stage .camera-position,
#camera-stage.persistent-stage.stage-overlay .persistent-camera,
#camera-stage.persistent-stage.stage-pov .persistent-camera,
body[data-view="player"].player-broadcast #camera-stage.persistent-stage .persistent-camera{
 position:absolute!important;right:auto!important;bottom:auto!important;
 pointer-events:auto;opacity:1;will-change:top,left,width,height;
 transition:left .55s cubic-bezier(.2,.7,.2,1),top .55s cubic-bezier(.2,.7,.2,1),width .55s cubic-bezier(.2,.7,.2,1),height .55s cubic-bezier(.2,.7,.2,1),opacity .32s ease!important;
}
#camera-stage .persistent-camera.pos-hidden{opacity:0!important;pointer-events:none!important;z-index:-1}
#camera-stage.persistent-stage .persistent-camera .camera-tile{width:100%;height:100%;aspect-ratio:auto}
#camera-stage.persistent-stage .persistent-camera.camera-mini .camera-label{font-size:clamp(8px,.73vw,13px)!important;padding:3px 6px!important;min-height:22px!important}
#camera-stage.persistent-stage .persistent-camera.final-out-slot .camera-label{font-size:clamp(8px,.6vw,12px)!important;padding:2px 4px!important;min-height:18px!important}
#camera-stage.persistent-stage .persistent-camera.final-out-slot .camera-points{display:none}
#camera-stage.persistent-stage.stage-host .camera-tile{border-color:#ac9156;border-radius:9px;box-shadow:0 9px 25px #0009}
#camera-stage.persistent-stage.stage-host .camera-label{font-size:clamp(10px,.86vw,16px);padding:5px 7px}
/* The video stays alive (opacity, not display:none) during starting/pause. */
#camera-stage.persistent-stage.mode-starting .persistent-camera,
#camera-stage.persistent-stage.mode-pause .persistent-camera{opacity:0!important;pointer-events:none!important}
/* Old board/estimation visuals fade out; new visuals fade in while video itself stays untouched. */
.quiz-scene-exit{z-index:1!important;pointer-events:none!important;animation:quiz-scene-out .48s ease-in forwards!important}
.quiz-scene-enter{animation:quiz-scene-in .48s ease-out both!important}
@keyframes quiz-scene-out{from{opacity:1}to{opacity:0}}
@keyframes quiz-scene-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 #camera-stage .persistent-camera{transition:none!important}
 .quiz-scene-exit,.quiz-scene-enter{animation:none!important}
 .quiz-scene-exit{display:none!important}
}
/* Elimination is visual only; preserving the iframe avoids a reconnect if a player returns. */
#camera-stage.persistent-stage .camera-tile.camera-out .camera-media::after{
 content:"✕";position:absolute;inset:0;z-index:5;display:grid;place-items:center;
 background:linear-gradient(145deg,#111,#19212f);font-size:clamp(24px,4vw,80px);
 font-weight:900;color:#e35757;pointer-events:none;
}


/* A3.6 – winner title belongs to the frame, not the video. */
#camera-stage .persistent-camera.winner-wrap{z-index:25!important;overflow:visible!important;isolation:isolate}
#camera-stage .persistent-camera.winner-wrap .camera-tile{overflow:hidden}
#camera-stage .persistent-camera .winner-title{
 position:absolute;left:50%;top:0;transform:translate(-50%,-50%);z-index:40;
 color:#ffdc76;font-size:clamp(20px,2.25vw,43px);letter-spacing:.095em;
 line-height:1.12;font-weight:1000;white-space:nowrap;text-align:center;
 padding:0 .25em;pointer-events:none;
 -webkit-text-stroke:1px #3a2809;
 text-shadow:0 2px 0 #130d03,0 0 6px #ffebaa,0 0 14px #dfa953,0 0 26px #d1bc8299;
}
#camera-stage .persistent-camera.winner-wrap .camera-tile.camera-winner{
 border-color:#fbe09c!important;box-shadow:0 0 10px #fae29bad,0 0 22px #d1bc8288,0 0 40px #d1bc8260,0 9px 25px #0009!important;
}
#camera-stage .persistent-camera .winner-halo-sparks{position:absolute;inset:-8px;z-index:15;pointer-events:none;overflow:visible}
#camera-stage .persistent-camera .winner-halo-sparks span{
 position:absolute;left:var(--x);top:var(--y);height:clamp(2px,.25vw,5px);width:clamp(2px,.25vw,5px);
 border-radius:50%;background:#ffe5a1;box-shadow:0 0 7px 2px #ffdf80;
 animation:winner-spark-glimmer 2.8s ease-in-out var(--twinkle) infinite alternate;
}
@keyframes winner-spark-glimmer{0%,100%{opacity:.1;transform:scale(.45)}50%{opacity:1;transform:scale(1.7)}}
#camera-stage.persistent-stage.stage-admin .winner-title{font-size:clamp(13px,1.4vw,21px)}
#camera-stage.persistent-stage.stage-admin .winner-halo-sparks{inset:-4px}
#camera-stage .persistent-camera.winner-wrap{padding-top:0}
/* The old overlay label is intentionally not drawn on top of the video. */
#camera-stage.persistent-stage .winner-camera-badge{display:none!important}
.show-obs-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.show-obs-shortcuts button{font-size:12px;padding:8px 12px}
.obs-regie-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.obs-regie-links button{font-size:12px;padding:8px 5px}
.obs-regie-more{margin-top:14px}.obs-regie-more>summary{color:#d1bc82;cursor:pointer;margin-bottom:10px}
.final-lock-hint{border:1px solid #bd9158;border-radius:7px;padding:10px;background:#2d2517;color:#f4db9e;font-size:13px}
#camera-debug{position:fixed;right:12px;bottom:8px;z-index:100000;border:1px solid #d1bc82;border-radius:8px;padding:8px 12px;
 background:#100e0cea;color:#fff4d2;font:700 14px/1.3 monospace;pointer-events:none}
@media(prefers-reduced-motion:reduce){#camera-stage .winner-halo-sparks span{animation:none}}

/* A3.7: unified viewer leaderboard for all public OBS overlay modes */
.broadcast-ranking.viewer-ranking{position:relative!important;z-index:4!important;display:flex!important;flex-direction:column!important;gap:7px!important;max-width:none!important;padding:10px 14px!important;margin:0!important;min-height:94px!important;overflow:hidden!important}
.viewer-ranking>h3{margin:0!important;text-align:center!important;letter-spacing:.05em!important;color:#d1bc82!important;font-size:17px!important}
.viewer-ranking-list{display:flex!important;justify-content:space-around!important;align-items:center!important;gap:12px!important;width:100%!important;flex-wrap:wrap!important}
.ranking-entry{display:flex;align-items:center;gap:7px;color:#f5e6b8;min-width:0;font-size:clamp(10px,.9vw,17px)}
.ranking-entry strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:165px;color:white}
.ranking-entry .rank-pos,.ranking-entry .rank-score{color:#e1bf70;font-weight:800;white-space:nowrap}
.ranking-empty{font-size:13px;color:#afa9a0;text-align:center}
body[data-view="chat"] .viewer-ranking{min-height:90px!important;background:#151413ed!important;border:1px solid #ae9155!important;border-radius:9px}
/* A3.7: four configurable columns, last is permanently allocated to the six cameras */
body[data-view="admin"] #app:has(.regie-layout){max-width:none!important;width:100%!important;margin:0!important;padding:12px 14px 28px!important}
.regie-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 13px;padding:9px 12px;margin:0 0 10px;border-radius:10px;border:1px solid #79613e;background:#171719}
.regie-toolbar strong{color:#d1bc82}.regie-toolbar span{font-size:11px;color:#aea89d}.regie-toolbar label{font-size:11px;display:flex;align-items:center;gap:4px}.regie-toolbar input{width:80px;accent-color:#d1bc82}.regie-toolbar button{font-size:11px;padding:5px 8px}
.regie-layout{display:grid!important;grid-template-columns:minmax(200px,var(--regie-c1,285px)) minmax(250px,var(--regie-c2,420px)) minmax(200px,var(--regie-c3,300px)) minmax(190px,1fr)!important;gap:10px!important;min-width:0!important;align-items:start!important}
.regie-col{min-width:0;display:flex;flex-direction:column;gap:10px}.regie-col-title{text-align:center;color:#d1bc82;border-bottom:1px solid #5d5037;padding:4px;font-size:11px;font-weight:800}
.regie-panel{min-width:0;max-width:100%;overflow:auto;resize:vertical;min-height:155px;padding:12px!important;border-radius:12px!important}
.regie-drag-handle{cursor:grab;user-select:none;touch-action:none}.regie-drag-handle:active{cursor:grabbing}
.regie-panel .controls{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.regie-panel .controls button{min-width:0;overflow-wrap:anywhere}
.regie-layout .quiz-board{gap:3px}.regie-layout .tile{min-height:42px;font-size:16px}.regie-layout .cat{font-size:9px;min-height:46px}
.regie-layout .panelhead h2{font-size:14px}.regie-layout h2{font-size:14px}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin{position:fixed!important;top:var(--regie-camera-top,80px)!important;left:var(--regie-camera-left,calc(100% - 300px))!important;right:auto!important;bottom:12px!important;width:calc(var(--regie-camera-width,280px) * .95)!important;height:calc(100vh - var(--regie-camera-top,80px) - 12px)!important;max-height:none!important;padding:8px!important;overflow:hidden!important;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:26px repeat(6,minmax(0,1fr))!important;align-content:stretch!important;gap:6px!important}
body[data-view="admin"] #camera-stage .camera-regie-title{font-size:12px!important;display:flex!important;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;grid-column:1!important;min-height:0!important}
body[data-view="admin"] #camera-stage .camera-regie-title small{display:none!important}
body[data-view="admin"] #camera-stage .persistent-camera{height:100%!important;min-height:0!important;display:block!important;position:relative!important}
body[data-view="admin"] #camera-stage .camera-tile{height:100%!important;aspect-ratio:auto!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
body[data-view="admin"] #camera-stage .camera-media{height:calc(100% - 22px)!important;min-height:0!important;flex:1 1 auto!important;aspect-ratio:auto!important}
body[data-view="admin"] #camera-stage .camera-placeholder{min-height:0!important}
body[data-view="admin"] #camera-stage .camera-label{height:22px!important;min-height:22px!important;padding:2px 6px!important;font-size:10px!important;flex:0 0 22px!important}
body[data-view="admin"] #camera-stage .camera-magnify{position:absolute!important;right:6px!important;top:5px!important;width:25px!important;height:25px!important;margin:0!important;padding:0!important;border-radius:5px!important;background:#191814db!important;border:1px solid #d1bc82!important;color:#ffe5a1!important;font-size:19px!important;line-height:1!important;z-index:15!important;flex:none!important}
body[data-view="admin"] #camera-stage .camera-position.pos-hidden{display:block!important;visibility:hidden!important}
.player-camera-prominent{display:flex;flex-direction:column;gap:4px;max-width:490px;background:#2b2315e8;border:1px solid #b99754;border-radius:10px;padding:10px;color:#f1d994}.player-camera-prominent form{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.player-camera-prominent label{font-size:12px}.player-camera-prominent input{flex:1;min-width:190px}.player-camera-prominent a{color:#fce1a4}.onboarding-screen form label:nth-of-type(2){border:1px solid #bc9859;padding:10px;border-radius:8px}
@media(max-width:1100px){.regie-layout{grid-template-columns:repeat(2,minmax(0,1fr))!important}body[data-view="admin"] #camera-stage.persistent-stage.stage-admin{position:relative!important;inset:auto!important;height:650px!important;width:min(98%,600px)!important;margin:10px auto!important}}

.regie-move-btn{flex:0 0 auto;padding:3px 8px!important;font-size:14px!important;background:#403a2e!important;border-color:#a99464!important;color:#f3d995!important;margin-left:auto;cursor:pointer!important}
/* The OBS canvas uses absolute-positioned scene layers. Do not place the shared ranking in normal document flow. */
.broadcast .broadcast-ranking.viewer-ranking{position:absolute!important;left:22%!important;right:22%!important;bottom:2.2%!important;top:auto!important;width:auto!important;height:11%!important;min-height:0!important;margin:0!important;z-index:4!important}

/* A3.8 – compact, independently resizable camera rail. The three editing columns
   share the remaining width, rather than leaving an enormous flexible fourth column. */
@media(min-width:1101px){
 .regie-layout{grid-template-columns:minmax(0,var(--regie-c1,285fr)) minmax(0,var(--regie-c2,440fr)) minmax(0,var(--regie-c3,300fr)) minmax(0,var(--regie-camera-col,280px))!important}
 body[data-view="admin"] #camera-stage.persistent-stage.stage-admin{
   width:var(--regie-camera-width,280px)!important;
   max-width:480px!important;
   right:auto!important;
   margin:0!important;
 }
}
.camera-column-control{white-space:nowrap;gap:7px!important;background:#292419;padding:4px 8px;border-radius:8px;border:1px solid #79613e}
.regie-toolbar .camera-column-control button{min-width:26px;min-height:26px;padding:0 5px;font-size:16px;border-color:#9b8454}
.regie-toolbar .camera-column-control input{width:105px;min-width:65px}
.regie-toolbar .camera-column-control output{font-variant-numeric:tabular-nums;min-width:42px;text-align:right;color:#ebd49f}
/* Maximize in place: the VDO.Ninja iframe stays mounted and continues playing. */
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin:has(.camera-expanded){overflow:visible!important}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin:has(.camera-expanded)::before{
 content:"";position:fixed;inset:0;background:#000d;z-index:30;pointer-events:auto
}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin .persistent-camera.camera-expanded{
 position:fixed!important;top:50%!important;left:50%!important;right:auto!important;bottom:auto!important;
 transform:translate(-50%,-50%)!important;width:min(960px,82vw)!important;
 height:min(620px,83vh)!important;min-height:0!important;z-index:40!important;
 box-shadow:0 18px 80px #000e!important;
}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin .persistent-camera.camera-expanded .camera-media{min-height:0!important}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin .persistent-camera.camera-expanded .camera-tile{border:2px solid #d1bc82;border-radius:11px}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin .persistent-camera.camera-expanded .camera-label{height:32px!important;min-height:32px!important;flex-basis:32px!important;font-size:14px!important}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin .persistent-camera.camera-expanded .camera-magnify{height:32px!important;width:32px!important;font-size:25px!important}
@media(max-width:1100px){.regie-toolbar .camera-column-control{display:none}}

/* v0.8 – persistent regie camera visibility, overlay safe-zones, help UI */
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin.mode-starting .persistent-camera,
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin.mode-pause .persistent-camera{opacity:1!important;pointer-events:auto!important;visibility:visible!important}
body[data-view="admin"] #camera-stage.persistent-stage.stage-admin .persistent-camera.pos-hidden{opacity:1!important;visibility:visible!important}
#camera-stage.persistent-stage.mode-chatting .persistent-camera{opacity:1;visibility:visible}
body[data-view="overlay"] .broadcast[data-mode="chatting"] .chatting-center,
body[data-view="pov"] .broadcast[data-mode="chatting"] .chatting-center,
body[data-view="host"] .broadcast[data-mode="chatting"] .chatting-center,
body[data-view="player"] .broadcast[data-mode="chatting"] .chatting-center{
 left:4%;right:auto;top:38%;width:42%;height:23%;align-items:flex-start;text-align:left;gap:7px;
 background:#0d0b09cb;border:1px solid #a58b57;border-radius:14px;padding:1.6%;box-shadow:0 10px 35px #0009
}
.broadcast[data-mode="chatting"] .chatting-center h1{font-size:clamp(26px,2.65vw,54px);line-height:1.1}
.broadcast[data-mode="chatting"] .chatting-center h2{font-size:clamp(13px,1.25vw,22px)}
.broadcast .scene-participation{font-size:clamp(8px,.73vw,14px);color:#e2c992;line-height:1.4;margin-top:8px}
.scene-chat{position:fixed!important;background:#0d0c0bdb;border:1px solid #a58b57;box-shadow:0 0 24px #0009;padding:12px;z-index:9;overflow:hidden;border-radius:14px}
.chat-overlay-header{font-size:clamp(11px,1vw,17px);color:#e4c47f;letter-spacing:.07em;font-weight:900;display:flex;align-items:center;gap:9px;border-bottom:1px solid #665233;padding-bottom:7px}
.chat-overlay-header small{margin-left:auto;color:#aa996e;font-size:.72em}
.chat-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#e0c778;box-shadow:0 0 9px #d1bc82;animation:chat-dot 2.1s ease-in-out infinite}
.chat-message-list{display:flex;flex-direction:column;justify-content:flex-end;gap:5px;height:calc(100% - 31px);overflow:hidden;mask-image:linear-gradient(to bottom,transparent 0%,#000 17%)}
.chat-message{display:flex;gap:9px;align-items:baseline;font-size:clamp(10px,.93vw,16px);line-height:1.18;animation:chat-message-in .26s ease-out both;overflow:hidden}
.chat-message strong{flex:none;max-width:36%;color:#f5d890;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-message span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#faf5e8}
.chat-overlay-wait{font-size:clamp(11px,.85vw,15px);color:#a59675;font-style:italic}
.broadcast[data-mode="starting"] .broadcast-ranking,.broadcast[data-mode="pause"] .broadcast-ranking{left:8%!important;right:8%!important;bottom:1.6%!important;height:7.6%!important}
.broadcast[data-mode="starting"] .scene-intermission-help,.broadcast[data-mode="pause"] .scene-intermission-help{left:7%!important;right:7%!important;bottom:10.8%!important;top:auto!important}
.broadcast[data-mode="chatting"] .broadcast-ranking{bottom:1.1%!important;height:5.5%!important;left:19.5%!important;right:19.5%!important;padding:2px 10px!important}
.broadcast[data-mode="chatting"] .broadcast-ranking h3{font-size:12px}
.broadcast[data-mode="chatting"] .viewer-ranking-list{font-size:10px;gap:3px!important}
@keyframes chat-dot{50%{opacity:.38;transform:scale(.78)}}
@keyframes chat-message-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes quiz-shimmer{0%,100%{box-shadow:0 5px 22px #0009,0 0 9px #d1bc8210}50%{box-shadow:0 5px 25px #0009,0 0 24px #d1bc8232}}
@keyframes quiz-soft-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.broadcast[data-mode="quiz"] .broadcast-top>section,.broadcast[data-mode="finale"] .broadcast-top>section{animation:quiz-shimmer 9s ease-in-out infinite}
.broadcast[data-mode="starting"] .intermission-center,.broadcast[data-mode="pause"] .intermission-center{animation:quiz-soft-float 7s ease-in-out infinite}
.broadcast[data-mode="chatting"] .chatting-center{animation:quiz-shimmer 9s ease-in-out infinite}
.bank-panel{border-color:#b89b5d!important}.bank-pick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px;margin:10px 0}
.bank-pick-grid label{color:#dcc48a;font-size:11px;font-weight:bold}.bank-pick-grid select{display:block;width:100%;background:#19181c;color:#f6e8cc;border:1px solid #89724a;border-radius:6px;padding:7px;margin-top:4px;font-size:12px}
.bank-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:9px 0}.bank-panel small{color:#b7a68b;font-size:11px}
.quiz-question-graphic{display:block;max-height:clamp(55px,12vh,150px);max-width:80%;width:auto;margin:8px auto;object-fit:contain;border-radius:10px;background:#121217;border:1px solid #8c754c}
.panelhead-help{align-items:flex-start}.panelhead-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.help-mini-btn{width:30px;height:30px;min-width:30px;padding:0;border-radius:999px;border:1px solid #a88e58;background:#201b13;color:#f4dfac;font-size:18px;line-height:1;font-weight:900}.help-mini-btn[aria-expanded="true"]{background:#d1bc82;color:#19160e}.streamerbot-help-box{border:1px solid #826f48;background:#14120f;border-radius:12px;padding:12px 14px}.streamerbot-help-box h3{margin-bottom:10px;color:#e8d3a1}.streamerbot-help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.streamerbot-help-box h4{margin:0 0 8px;color:#d9bf82;font-size:14px}.streamerbot-help-box ul{margin:0;padding-left:18px;display:grid;gap:10px}.streamerbot-help-box li{color:#f1ebdf;font-size:13px;line-height:1.45}.streamerbot-help-box code{margin:3px 0 0}
@media(prefers-reduced-motion:reduce){.broadcast::before,.broadcast::after,.chat-live-dot,.chat-message,.broadcast[data-mode] .broadcast-top>section,.broadcast[data-mode="chatting"] .chatting-center,.broadcast[data-mode] .intermission-center{animation:none!important}}

/* v0.8.2 – prominent first-player draw in the show controls. */
.regie-panel.show-controls-panel{border-color:#776240}
.director-draw-card{margin:0 0 14px;padding:12px;border:1px solid #897144;border-radius:10px;background:linear-gradient(120deg,#231e15,#181715)}
.director-draw-first{display:block;width:100%;min-height:52px;font-size:clamp(13px,1.1vw,18px);font-weight:900;letter-spacing:.035em;padding:12px 16px;box-shadow:0 0 18px #d1bc8228}
.director-draw-first:disabled{opacity:.65;background:#514630;color:#e2d2ac;box-shadow:none}
.director-draw-state{margin:7px 0 0;font-size:12px;color:#dac797;text-align:center}
.director-draw-state strong{color:#f4dfaa}

/* v0.8.4 – runde Twitch-Profilbilder statt flächendeckendem Fallback. */
.camera-tile .camera-placeholder:has(.twitch-profile-fallback){
  display:flex!important;flex-direction:column!important;align-items:center!important;
  justify-content:center!important;gap:3px!important;padding:4px!important;
  overflow:hidden!important;background:radial-gradient(ellipse at center,#29251e,#11151f 70%)!important;
}
.camera-tile .camera-placeholder .twitch-profile-fallback{
  position:relative!important;inset:auto!important;display:block!important;
  width:auto!important;height:84%!important;max-width:86%!important;max-height:calc(100% - 15px)!important;
  aspect-ratio:1/1!important;object-fit:cover!important;object-position:center!important;
  border-radius:50%!important;border:2px solid #d1bc82!important;
  flex:0 1 auto!important;opacity:1!important;
  box-shadow:0 0 0 2px #0008,0 3px 15px #d1bc8230!important;
}
.camera-tile .camera-placeholder .camera-status{
  flex:0 0 auto!important;max-width:96%!important;white-space:nowrap!important;
  overflow:hidden!important;text-overflow:ellipsis!important;
  color:#bcae91!important;font-size:clamp(7px,.65vw,11px)!important;
  text-shadow:0 1px 3px #000b!important;
}
.candidate-twitch-channel{margin-left:6px;color:#c5ae78;font-size:10px;font-weight:500;white-space:nowrap}

/* v0.8.5 - group camera controls and non-destructive global OBS visibility */
.camera-mass-controls .camera-global-toggle{display:block;width:100%;min-height:44px;font-size:14px;letter-spacing:.01em;background:#c6ad72;color:#17150f;border-color:#ae8f52}
.camera-mass-controls .camera-global-toggle.is-off{background:#283728;color:#b9e6bc;border-color:#608464}
.camera-mass-controls .camera-visible-state{margin:3px 0 12px;color:#b6a58b}
.camera-links-reset{border-top:1px solid #655738;margin-top:14px;padding-top:12px}
.camera-links-reset .camera-reset-button{display:block;width:100%;border:1px solid #b27165;background:#38231f;color:#f1c5b9}
.camera-links-reset .hint{line-height:1.45}
/* The WebRTC iframe is never removed for show/hide; a solid cover hides only
   the video area, keeping names/scores visible in public views. Admin preview
   is intentionally exempt so the director can confirm everyone is ready. */
#camera-stage.persistent-stage.global-camera-hidden:not(.stage-admin) .camera-tile .camera-media::before{
 content:"KAMERAS AUSGEBLENDET";position:absolute;inset:0;z-index:95!important;
 display:flex;align-items:center;justify-content:center;text-align:center;
 padding:10px;pointer-events:auto;background:#131720!important;
 color:#d1bc82;font-weight:800;font-size:clamp(9px,.83vw,18px);letter-spacing:.1em;
 text-shadow:0 1px 3px #000;
}


/* v0.8.5: safe-zone layout for broadcast scenes (OBS and candidate POV)
   The camera wrapper maintains 16:9; never force incompatible % heights. */
#camera-stage.persistent-stage:not(.stage-admin) .persistent-camera{
  height:auto!important;aspect-ratio:16 / 9!important;
  transform:none;overflow:visible;
}
#camera-stage.persistent-stage:not(.stage-admin) .persistent-camera .camera-tile{
  width:100%!important;height:100%!important;
  min-width:0!important;min-height:0!important;
}
#camera-stage.persistent-stage:not(.stage-admin) .persistent-camera .camera-label{
  padding:2px 7px!important;min-height:19px!important;
  height:clamp(19px,2.4vh,27px)!important;
  line-height:1.08!important;
  font-size:clamp(10px,.78vw,15px)!important;
}
#camera-stage.persistent-stage:not(.stage-admin) .persistent-camera .camera-person{
  display:block!important;max-width:100%!important;
  overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
/* Just Chatting: video, center caption/chat, video, ranking occupy their own rows. */
.broadcast[data-mode="chatting"] .chatting-center{
  left:4.5%!important;width:42.5%!important;top:38.0%!important;
  height:22.5%!important;right:auto!important;
  padding:clamp(10px,1.4vw,24px)!important;
  overflow:hidden!important;justify-content:center!important;
}
.scene-chat.scene-chatting{
  left:52.0%!important;top:38.0%!important;width:43.5%!important;
  height:22.5%!important;right:auto!important;
}
.broadcast[data-mode="chatting"] .broadcast-ranking.viewer-ranking{
  left:24%!important;right:24%!important;top:94.0%!important;
  bottom:auto!important;height:4.6%!important;padding:3px 12px!important;
  min-height:0!important;gap:1px!important;
}
.broadcast[data-mode="chatting"] .broadcast-ranking.viewer-ranking h3{
  font-size:clamp(9px,.64vw,12px)!important;line-height:1.05!important;
}
.broadcast[data-mode="chatting"] .broadcast-ranking.viewer-ranking .viewer-ranking-list{
  min-height:0!important;font-size:clamp(8px,.59vw,11px)!important;
  flex-wrap:nowrap!important;
}
/* Starting/Pause: top title, middle chat, separate commands and ranking.
   No panels are permitted to share the same vertical region. */
.broadcast[data-mode="starting"] .intermission-center,
.broadcast[data-mode="pause"] .intermission-center{
  top:7%!important;left:9%!important;right:9%!important;
  height:23%!important;max-height:23vh!important;
}
.broadcast[data-mode="starting"] .intermission-center h1,
.broadcast[data-mode="pause"] .intermission-center h1{
  font-size:clamp(24px,3.4vw,58px)!important;
}
.scene-chat.scene-starting,.scene-chat.scene-pause{
  left:17%!important;top:32%!important;width:66%!important;
  height:38%!important;right:auto!important;
}
.broadcast[data-mode="starting"] .scene-intermission-help,
.broadcast[data-mode="pause"] .scene-intermission-help{
  left:11%!important;right:11%!important;top:74.0%!important;
  bottom:auto!important;max-height:9%!important;
  overflow:hidden!important;font-size:clamp(9px,.82vw,15px)!important;
}
.broadcast[data-mode="starting"] .broadcast-ranking.viewer-ranking,
.broadcast[data-mode="pause"] .broadcast-ranking.viewer-ranking{
  left:14%!important;right:14%!important;top:87%!important;
  bottom:auto!important;height:9.4%!important;min-height:0!important;
  padding:7px 12px!important;
}
/* Persistent private setup is tucked into a compact top-left utility while
   candidates wait; never compete with the chat/ranking or camera stage. */
body[data-view="player"].player-broadcast .broadcast[data-mode="starting"] .private-tools-intermission,
body[data-view="player"].player-broadcast .broadcast[data-mode="pause"] .private-tools-intermission{
  left:1%!important;right:auto!important;top:4.0%!important;bottom:auto!important;
  max-width:24%!important;padding:6px!important;
  gap:4px!important;opacity:.8!important;z-index:6!important;
}
/* Elimination cards: aligned to the upper-right, labels remain readable.
   Do not move any iframe nodes out of the fixed camera stage. */
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot{
  overflow:visible!important;z-index:3!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-tile{
  overflow:hidden!important;border-radius:7px!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-media{
  flex:1 1 auto!important;min-height:0!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-label{
  flex:0 0 18px!important;min-height:18px!important;height:18px!important;
  padding:1px 4px!important;font-size:clamp(9px,.65vw,12px)!important;
  background:#18150f!important;border-top:1px solid #be9f65!important;
  z-index:15!important;display:flex!important;align-items:center!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-person{
  color:#fff!important;font-weight:800!important;opacity:1!important;
  text-overflow:ellipsis!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-points{display:none!important}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-media::after{
  content:"✕";position:absolute;inset:0;display:grid;place-items:center;
  background:linear-gradient(145deg,#111b,#182237ed);color:#ee5959;
  font-size:clamp(27px,3.2vw,58px);font-weight:900;z-index:30;
  pointer-events:none;
}
#camera-stage.persistent-stage.mode-starting:not(.stage-admin) .persistent-camera,
#camera-stage.persistent-stage.mode-pause:not(.stage-admin) .persistent-camera{
  opacity:0!important;pointer-events:none!important;
}
@media(prefers-reduced-motion:reduce){
 .broadcast::before,.broadcast::after,.broadcast[data-mode] .chatting-center{animation:none!important}
}

/* v0.9 technical preview – candidate control safezones and board mask transitions */
.candidate-global-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:16px}
.candidate-global-controls button{font-size:11px;min-height:44px;white-space:normal;overflow-wrap:anywhere;padding:7px}
.candidate-global-controls .camera-global-toggle{background:#cfb678;color:#17130f;border-color:#978052}
.candidate-global-controls .camera-reset-button{background:#3e2925;color:#f5cfc6;border-color:#a46f62}
.onboarding-category{display:block;width:100%;padding:13px;background:#242329;color:#fff;border:1px solid #90784e;border-radius:9px;font-size:16px}
/* Player setup is independent of the broadcast overlay. */
body[data-view="player"].player-broadcast .broadcast[data-mode="chatting"] .private-tools-intermission{
 left:35%!important;right:35%!important;top:38%!important;bottom:auto!important;
 width:30%!important;max-width:none!important;height:22.5%!important;
 padding:10px 14px!important;display:flex!important;flex-direction:row!important;opacity:.98!important;
 background:#101015ef!important;border:1px solid #b89b65!important;
}
body[data-view="player"].player-broadcast .broadcast[data-mode="chatting"] .chatting-center{left:2%!important;right:auto!important;width:31%!important;top:38%!important;height:22.5%!important}
body[data-view="player"].player-broadcast ~ .scene-chat.scene-chatting{left:67%!important;width:31%!important;top:38%!important;height:22.5%!important}
body[data-view="player"].player-broadcast .broadcast[data-mode="starting"] .private-tools-intermission,
body[data-view="player"].player-broadcast .broadcast[data-mode="pause"] .private-tools-intermission{
 top:84.7%!important;left:17%!important;right:17%!important;bottom:auto!important;
 max-width:none!important;width:66%!important;height:12.5%!important;
 opacity:1!important;padding:6px 10px!important;z-index:15!important;
 background:#13100de8!important;display:flex!important;overflow:hidden!important;
}
body[data-view="player"].player-broadcast .broadcast[data-mode="starting"] .scene-intermission-help,
body[data-view="player"].player-broadcast .broadcast[data-mode="pause"] .scene-intermission-help{top:74%!important}
body[data-view="player"].player-broadcast .private-player-tools .player-camera-prominent{
 width:100%;max-width:none!important;min-width:0!important;padding:6px!important;
 background:transparent!important;border:0!important;
}
body[data-view="player"].player-broadcast .private-player-tools .player-camera-prominent form{flex-wrap:nowrap!important}
body[data-view="player"].player-broadcast .private-player-tools .player-camera-prominent input{flex:1 1 100px!important;min-width:100px!important}
body[data-view="player"].player-broadcast .private-player-tools .player-camera-prominent strong{font-size:11px}
body[data-view="player"].player-broadcast .private-player-tools .player-camera-prominent small{font-size:10px}
body[data-view="player"].player-broadcast .broadcast[data-mode="finale"] .private-tools-quiz{
 bottom:1%!important;left:28%!important;right:28%!important;height:12%!important;
}
/* Finale – three compact 1:1 eliminated tiles, without stretching camera media. */
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot{
 aspect-ratio:1/1!important;height:auto!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-tile{height:100%!important}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-label{
 height:20px!important;min-height:20px!important;flex-basis:20px!important;font-size:clamp(8px,.65vw,12px)!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-media{aspect-ratio:1/1!important;overflow:hidden!important}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-placeholder:has(.twitch-profile-fallback){background:#12151b!important}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-placeholder .twitch-profile-fallback{max-width:75%!important;max-height:75%!important}
@media(max-height:810px){body[data-view="player"].player-broadcast .private-player-tools .player-camera-prominent small{display:none}}

/* Unified standalone control for candidates; not present in the public OBS master. */
body[data-view="player"].player-broadcast .player-vdo-control{
 position:absolute;z-index:20;background:#131216ec;border:1px solid #a58d5b;
 border-radius:13px;padding:13px 15px;color:#e6d19c;box-shadow:0 12px 34px #0009;
 display:flex;flex-direction:column;justify-content:center;gap:5px;overflow:hidden;
}
body[data-view="player"].player-broadcast .player-vdo-control .player-vdo-heading{font-size:clamp(12px,1vw,18px)}
body[data-view="player"].player-broadcast .player-vdo-control .player-vdo-body{display:grid;grid-template-columns:1fr;gap:5px;min-width:0}
body[data-view="player"].player-broadcast .player-vdo-control button{padding:6px 12px;white-space:nowrap;font-size:clamp(10px,.82vw,14px)}
body[data-view="player"].player-broadcast .player-vdo-control form{min-width:0;display:flex;flex-direction:column;gap:2px}
body[data-view="player"].player-broadcast .player-vdo-control label{font-size:11px}
body[data-view="player"].player-broadcast .player-vdo-input-row{display:flex;min-width:0;gap:6px}
body[data-view="player"].player-broadcast .player-vdo-input-row input{flex:1 1 0;width:0;min-width:0;padding:8px;font-size:13px}
body[data-view="player"].player-broadcast .player-vdo-input-row button{flex:0 0 auto}
body[data-view="player"].player-broadcast .player-vdo-control small{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body[data-view="player"].player-broadcast .player-vdo-control small a{color:#e3c184}
body[data-view="player"].player-broadcast .player-vdo-chatting{top:38%!important;left:35%!important;width:30%!important;height:22.5%!important}
body[data-view="player"].player-broadcast .broadcast[data-mode="chatting"] .chatting-center{left:2%!important;width:31%!important;top:38%!important;height:22.5%!important}
body[data-view="player"].player-broadcast #scene-twitch-chat.scene-chatting{left:67%!important;width:31%!important;top:38%!important;height:22.5%!important}
body[data-view="player"].player-broadcast .player-vdo-starting,
body[data-view="player"].player-broadcast .player-vdo-pause{
 top:84.7%!important;bottom:auto!important;left:17%!important;width:66%!important;height:12.5%!important;
}
body[data-view="player"].player-broadcast .player-vdo-quiz,
body[data-view="player"].player-broadcast .player-vdo-finale{
 bottom:1%!important;top:auto!important;left:22%!important;width:56%!important;height:11.7%!important;
}
body[data-view="player"].player-broadcast .player-vdo-starting .player-vdo-heading,
body[data-view="player"].player-broadcast .player-vdo-pause .player-vdo-heading,
body[data-view="player"].player-broadcast .player-vdo-quiz .player-vdo-heading,
body[data-view="player"].player-broadcast .player-vdo-finale .player-vdo-heading{display:none}
body[data-view="player"].player-broadcast .player-vdo-starting .player-vdo-body,
body[data-view="player"].player-broadcast .player-vdo-pause .player-vdo-body,
body[data-view="player"].player-broadcast .player-vdo-quiz .player-vdo-body,
body[data-view="player"].player-broadcast .player-vdo-finale .player-vdo-body{grid-template-columns:190px minmax(0,1fr);gap:12px;align-items:center}
body[data-view="player"].player-broadcast .player-vdo-starting small,
body[data-view="player"].player-broadcast .player-vdo-pause small,
body[data-view="player"].player-broadcast .player-vdo-quiz small,
body[data-view="player"].player-broadcast .player-vdo-finale small{display:none}
@media(max-width:1100px){body[data-view="player"].player-broadcast .player-vdo-control .player-vdo-body{grid-template-columns:1fr!important;gap:3px}}

/* Compact but readable placement card: rank and name on two distinct lines. */
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-label{
  height:30px!important;min-height:30px!important;flex-basis:30px!important;
  flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;
  padding:1px 4px!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .camera-person{
  font-size:clamp(9px,.65vw,12px)!important;line-height:1.1!important;
  white-space:nowrap!important;max-width:100%!important;text-align:center!important;
}
#camera-stage.persistent-stage.mode-finale .persistent-camera.final-out-slot .final-rank-label{
  font-size:clamp(9px,.6vw,11px)!important;line-height:1.05!important;
  color:#e5ca8c!important;font-weight:800!important;
}
.candidate-prefer{margin-left:7px;color:#dcc48a;font-size:10px;white-space:nowrap}
body[data-view="player"].player-broadcast .player-vdo-control .player-vdo-body > button{
 min-width:0!important;max-width:100%!important;white-space:normal!important;line-height:1.2!important;
}


/* v0.9.1 – chat wrap, exact-name bot filtering (also on server), red LIVE pulse,
   and a visibly moving black/gold background behind ALL full-canvas broadcasts. */
.scene-chat .chat-message-list{
  min-width:0;overflow:hidden;
}
.scene-chat .chat-message{
  width:100%;min-width:0;align-items:flex-start;
  flex-wrap:nowrap;line-height:1.32;
}
.scene-chat .chat-message strong{
  flex:0 0 auto;max-width:32%;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.scene-chat .chat-message span{
  display:block;flex:1 1 0;min-width:0;max-width:100%;
  white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;
  overflow:visible;text-overflow:clip;line-height:1.32;
}
.scene-chat .chat-live-dot{
  flex:0 0 9px;width:9px;height:9px;border-radius:50%;
  background:#fa3546;box-shadow:0 0 4px #ff2938;
  animation:quiz-chat-recording 1.65s ease-in-out infinite;
}
@keyframes quiz-chat-recording{
  0%,100%{opacity:1;box-shadow:0 0 2px #ff3f50,0 0 7px #f52d4177;transform:scale(1)}
  50%{opacity:.55;box-shadow:0 0 1px #ef3645,0 0 14px #e33443bd;transform:scale(.87)}
}
/* Die Animation sitzt nur in den beiden Hintergrundebenen, nicht in Panels.
   Beide Ebenen sind pointer-events:none und enthalten weder Kameraelemente noch DOM-Updates. */
.broadcast::before{
  background:
    radial-gradient(ellipse 37% 37% at 16% 58%,#c8a76b30 0%,#9f793c0d 58%,transparent 100%),
    radial-gradient(ellipse 42% 36% at 83% 23%,#dab76a2f 0%,#9c74410b 63%,transparent 100%),
    radial-gradient(ellipse 26% 30% at 60% 88%,#c2a06517,transparent 100%);
  animation:quiz-gold-orbit 16s ease-in-out infinite alternate!important;
  opacity:1;
}
.broadcast::after{
  background:
    repeating-linear-gradient(118deg,#d1bc820a 0px,#d1bc820a 1px,transparent 1px,transparent 94px),
    linear-gradient(115deg,transparent 25%,#d1bc8200 34%,#d1bc8218 50%,#d1bc8200 66%,transparent 75%);
  background-size:100% 100%,190% 100%;
  animation:quiz-gold-sweep 13s ease-in-out infinite!important;
  opacity:.9;
}
@keyframes quiz-gold-orbit{
  0%{transform:translate3d(-6%,3%,0) scale(1);opacity:.69}
  50%{transform:translate3d(3%,-4%,0) scale(1.1);opacity:1}
  100%{transform:translate3d(6%,2%,0) scale(1.03);opacity:.82}
}
@keyframes quiz-gold-sweep{
  0%,100%{background-position:0 0,-20% 0;opacity:.55}
  50%{background-position:0 0,100% 0;opacity:.95}
}
/* Vollständiger Warnhinweis bleibt auch in den schmalen Kandidaten-Kontrollen lesbar. */
body[data-view="player"].player-broadcast .player-vdo-control .player-obs-copy{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;width:100%;max-width:100%;white-space:normal!important;
  overflow-wrap:break-word;line-height:1.25;text-align:center;padding:6px 8px;
}
body[data-view="player"].player-broadcast .player-obs-copy em{
  display:block;font-size:clamp(9px,.65vw,12px);font-style:italic;
  color:#f0cd8b;font-weight:650;line-height:1.22;
}
body[data-view="player"].player-broadcast .player-vdo-starting .player-vdo-body,
body[data-view="player"].player-broadcast .player-vdo-pause .player-vdo-body,
body[data-view="player"].player-broadcast .player-vdo-quiz .player-vdo-body,
body[data-view="player"].player-broadcast .player-vdo-finale .player-vdo-body{
  grid-template-columns:minmax(225px,42%) minmax(0,1fr)!important;
}
@media(prefers-reduced-motion:reduce){
  .scene-chat .chat-live-dot,.broadcast::before,.broadcast::after{animation:none!important}
}
.scene-chat .chat-message{flex:0 0 auto}

/* v0.9.2 – individuelle / globale Setup-Rücksetzung und Live-Zuschauer */
.candidate-global-controls{flex-wrap:wrap}
.candidate-global-controls button{min-height:37px}
.viewer-sum strong{font-variant-numeric:tabular-nums}
.viewer-sum small{overflow-wrap:anywhere}
#twitchViewerApiForm{display:grid;gap:11px}
#twitchViewerApiForm .controls{grid-template-columns:repeat(2,minmax(0,1fr))}
#twitchViewerApiForm button{white-space:normal}


/* v0.9.4: clearly visible gold/black pulse BEHIND panels in all full-screen overlays
   and the streamer/player view. CSS only: no camera or iframe DOM changes. */
.broadcast::before{
  inset:-11%!important;
  background:
    radial-gradient(ellipse 39% 37% at 14% 53%,rgba(209,188,130,.39),rgba(183,133,54,.15) 48%,transparent 77%),
    radial-gradient(ellipse 33% 48% at 83% 33%,rgba(209,188,130,.38),rgba(134,95,29,.12) 54%,transparent 81%),
    radial-gradient(ellipse 42% 32% at 53% 100%,rgba(210,171,81,.25),transparent 82%)!important;
  opacity:.35;
  animation:mymill-bg-breath 7.8s ease-in-out infinite!important;
  will-change:transform,opacity;
  pointer-events:none!important;
}
.broadcast::after{
  inset:-3%!important;
  background:
    radial-gradient(circle at 50% 50%,transparent 44%,rgba(179,135,53,.10) 58%,transparent 74%),
    linear-gradient(111deg,transparent 15%,rgba(209,188,130,.07) 38%,rgba(209,188,130,.22) 50%,rgba(209,188,130,.07) 62%,transparent 85%)!important;
  background-size:100% 100%,185% 100%!important;
  opacity:.28;
  animation:mymill-gold-glide 12s ease-in-out infinite!important;
  will-change:background-position,opacity;
  pointer-events:none!important;
}
@keyframes mymill-bg-breath{
  0%,100%{opacity:.27;transform:translate3d(-1%,1%,0) scale(.99)}
  50%{opacity:.92;transform:translate3d(1%,-1%,0) scale(1.075)}
}
@keyframes mymill-gold-glide{
  0%,100%{opacity:.25;background-position:0 0,-40% 0}
  50%{opacity:.68;background-position:0 0,95% 0}
}
@media(prefers-reduced-motion:reduce){
  .broadcast::before,.broadcast::after{animation:none!important;opacity:.45!important;will-change:auto!important}
}
