/* ============================================================
   v5 品牌主题：友媛 · 比文招亲（红金）
   由 QZ.applyBrand(s) 按后台开关自动启用，关掉即回到原深色舞台风
   ============================================================ */
body.brand-on{
  --bg:#2a0808; --bg2:#3a0d0d; --panel:rgba(58,12,12,.90); --panel2:rgba(78,18,18,.86);
  --line:rgba(245,200,106,.30); --txt:#fff4e2; --muted:#d8b89a;
  --gold:#f7cf7a; --cyan:#f0b98a; --green:#8fd6a0; --red:#ff8a8a; --blue:#e9b9a0;
  --shadow:0 18px 50px rgba(0,0,0,.55);
}
body.brand-on{
  background:radial-gradient(1200px 700px at 50% -10%,#6a1414 0%,#2a0808 62%) no-repeat,#2a0808;
  color:var(--txt);
}
/* v8.1：保留原背景图，contain 完整居中显示；屏幕空出来的部分用边色补白。
   不再叠渐变层 / 暗罩（之前那两层把原图盖没了）。文字可读性靠卡片自身半透明底色。 */
body.brand-bg::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-color:#95221c;   /* v8.2：与背景图左右边缘底色一致（实测采样） */
  background-image:url('/assets/bg.jpg');
  background-size:contain;
  background-position:center center;
  background-repeat:no-repeat;
  opacity:1;
}
/* 只在四边压一点暗角，不压画面中心，原图保持可见 */
body.brand-bg::after{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(26,4,6,0) 46%,rgba(26,4,6,.28) 100%);
}
body.brand-on{--bg-edge:#95221c}
body.brand-on .wrap,body.brand-on .topbar,body.brand-on .stage,
body.brand-on .card,body.brand-on .login-box,body.brand-on #stage{position:relative;z-index:1}
body.brand-on .topbar{background:rgba(42,8,8,.86);border-bottom-color:rgba(245,200,106,.28)}
body.brand-on .brand .logo{background:linear-gradient(135deg,#f7cf7a,#d98b3a);color:#3a1000}
body.brand-on .tag{background:rgba(78,18,18,.8);color:#f0d6b4;border-color:rgba(245,200,106,.28)}
body.brand-on .tag.gold,body.brand-on .badge,body.brand-on .timer-chip{color:#ffe0a0}
body.brand-on .card{background:linear-gradient(150deg,rgba(74,16,16,.93),rgba(48,10,10,.94));
  border:1px solid rgba(245,200,106,.22)}
body.brand-on .btn.primary{background:linear-gradient(135deg,#f7cf7a,#d99a3c);color:#3a1000;border:0}
body.brand-on .q-card,body.brand-on .answer-box,body.brand-on .answer-reveal{
  background:linear-gradient(150deg,rgba(90,22,22,.94),rgba(52,12,12,.95));
  border:1px solid rgba(245,200,106,.26)}
body.brand-on .gold{color:#f7cf7a}

/* 顶栏节目名（透明金字图） */
.qz-show-title{height:34px;max-width:190px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.qz-slogan{font-size:11px;color:#e8c49a;letter-spacing:2px;margin-left:4px;white-space:nowrap}
@media(max-width:640px){.qz-show-title{height:26px;max-width:130px}.qz-slogan{display:none}}

/* 右下角字标水印 */
body:not(.bigscreen) .qz-watermark{display:none!important}
.qz-watermark{position:fixed;right:14px;bottom:12px;z-index:2;pointer-events:none;
  height:clamp(56px,8vh,110px);opacity:.20;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}
.qz-watermark.hide{display:none}

/* 待机主视觉 */
.qz-idle-hero{display:block;width:min(720px,74vw);margin:10px auto 4px;
  filter:drop-shadow(0 16px 40px rgba(0,0,0,.55));pointer-events:none}
.qz-login-logo{display:block;width:150px;margin:0 auto 10px}

/* 默认头像：摄像头未切入时显示 */
.qz-avatar{width:56%;max-width:130px;opacity:.32;pointer-events:none;margin:auto;display:block}
.cam-frame .qz-avatar,.cam-preview .qz-avatar{position:absolute;inset:0;width:100%;max-width:none;
  height:100%;object-fit:cover;opacity:.22;margin:0}

/* 选择题选项 */
.qz-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:14px}
.qz-opt{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;
  background:rgba(255,255,255,.055);border:1px solid rgba(245,200,106,.26);
  font-size:clamp(14px,1.25vw,21px);line-height:1.4}
.qz-opt .k{width:30px;height:30px;flex:0 0 30px;border-radius:8px;display:grid;place-items:center;
  background:linear-gradient(135deg,#f7cf7a,#d99a3c);color:#3a1000;font-weight:900;font-size:15px}
body:not(.brand-on) .qz-opt .k{background:linear-gradient(135deg,var(--gold),#ff8a3d)}
.qz-opt.correct{border-color:#6fd6a0;background:rgba(111,214,160,.14)}

/* 视频播放层（大屏 / 副屏 / 观战 / OBS 信号页） */
.qz-video-layer{position:fixed;inset:0;z-index:80;display:none;background:#120303;
  align-items:center;justify-content:center}
.qz-video-layer.show{display:flex}
.qz-video-layer video{width:100%;height:100%;object-fit:contain;background:#120303}
.qz-video-cap{position:absolute;left:clamp(20px,3vw,50px);top:clamp(20px,4vh,50px);
  display:flex;flex-direction:column;gap:8px;pointer-events:none}
.qz-video-cap img{width:clamp(180px,22vw,360px);filter:drop-shadow(0 6px 18px rgba(0,0,0,.8))}
.qz-video-name{font-size:clamp(16px,1.6vw,28px);font-weight:800;color:#ffe6b0;
  text-shadow:0 3px 12px rgba(0,0,0,.9)}
.qz-video-foot{position:absolute;right:20px;bottom:18px;font-size:13px;color:rgba(255,230,180,.72);
  background:rgba(30,4,4,.6);padding:6px 14px;border-radius:99px;pointer-events:none}

/* 暂停条（所有页面） */
.qz-pause-bar{position:fixed;left:50%;top:8px;transform:translateX(-50%);z-index:95;display:none;
  padding:9px 22px;border-radius:999px;background:linear-gradient(135deg,#f7cf7a,#d99a3c);
  color:#3a1000;font-weight:900;font-size:15px;letter-spacing:1px;
  box-shadow:0 8px 28px rgba(0,0,0,.5);pointer-events:none;white-space:nowrap}
.qz-pause-bar.show{display:block;animation:qzPulse 1.6s ease-in-out infinite}
@keyframes qzPulse{0%,100%{opacity:1}50%{opacity:.62}}

/* 当前机位角标 */
.qz-cam-badge{position:fixed;left:14px;bottom:12px;z-index:60;display:none;
  padding:6px 14px;border-radius:999px;background:rgba(30,4,4,.72);
  border:1px solid rgba(245,200,106,.45);color:#ffe0a0;font-size:12px;font-weight:800;
  pointer-events:none;white-space:nowrap}
.qz-cam-badge.show{display:block}

/* 机位墙（月老台） */
.cam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;
  max-height:230px;overflow:auto}
.cam-cell{padding:9px 10px;border-radius:11px;background:rgba(255,255,255,.05);
  border:1px solid rgba(245,200,106,.22);cursor:pointer;text-align:left;color:inherit;font-size:12px}
.cam-cell:hover{border-color:#f7cf7a}
.cam-cell.active{border-color:#f7cf7a;background:rgba(247,207,122,.16)}
.cam-cell .n{display:block;font-weight:800;font-size:13px;margin-bottom:2px}
.cam-cell .s{color:var(--muted);font-size:11px}
body:not(.brand-on) .cam-cell{border-color:var(--line)}
body:not(.brand-on) .cam-cell.active{border-color:var(--gold)}

/* 预设流程行 */
.flow-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:11px;
  background:rgba(255,255,255,.045);border:1px solid var(--line);margin-bottom:7px}
.flow-row .idx{width:26px;height:26px;flex:0 0 26px;border-radius:8px;display:grid;place-items:center;
  background:var(--panel2);font-weight:800;font-size:12px}
.flow-row.current{border-color:#f7cf7a;background:rgba(247,207,122,.12)}
.flow-row.done .idx{background:rgba(111,214,160,.25);color:#8fd6a0}
.flow-row .nm{flex:1;font-weight:700}
.flow-row .ty{font-size:11px;color:var(--muted)}

/* OBS 透明背景模式：品牌底色不生效 */
body.transparent{background:transparent!important}
body.transparent.brand-bg::before{display:none}

/* v5.1 顶栏「友媛」竖标：替换原来的方块单字（问 / 导 / 管） */
.brand .logo.qz-wordmark-logo{width:auto;height:46px;padding:0;background:none;border-radius:0;
  object-fit:contain;display:block;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}
.qz-stage .brand .logo.qz-wordmark-logo{height:40px}
@media(max-width:640px){.brand .logo.qz-wordmark-logo{height:34px}}

/* ============================================================
   v5.1 月老台重排：导播条置顶、核心操作台第一、画面类折叠
   ============================================================ */
.host-page .topbar{position:relative}          /* 让导播条独占 sticky 顶位 */
.conductor-bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 16px;margin:0 0 14px;border-radius:14px;
  background:linear-gradient(120deg,rgba(74,16,16,.97),rgba(40,8,8,.97));
  border:1px solid rgba(247,207,122,.42);box-shadow:0 10px 28px rgba(0,0,0,.42)}
.cond-label{font-weight:900;color:#f7cf7a;font-size:15px;white-space:nowrap}
.cond-modes{display:flex;gap:7px;flex-wrap:wrap}
.cond-btn{min-width:104px;min-height:46px;flex-direction:row;justify-content:flex-start;gap:9px;
  padding:8px 12px!important;font-size:14px;border-radius:11px}
.cond-btn .k{font-size:17px;width:24px;height:24px}
.cond-btn.active{outline:2px solid #f7cf7a;outline-offset:1px}
.cond-pause{white-space:nowrap}
@media(max-width:760px){.cond-btn{min-width:0;flex:1 1 44%}.conductor-bar{padding:9px 10px}}

/* 核心操作台：全宽、第一屏、状态驱动 */
.core-panel{border-radius:20px;padding:20px 24px 18px;margin-bottom:18px;
  background:linear-gradient(145deg,rgba(96,22,22,.96),rgba(44,9,9,.97));
  border:2px solid rgba(247,207,122,.5);box-shadow:0 20px 50px rgba(0,0,0,.5)}
.core-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.core-step{padding:4px 13px;border-radius:999px;background:linear-gradient(135deg,#f7cf7a,#d99a3c);
  color:#3a1000;font-weight:900;font-size:13px}
.core-phase{color:#ffe0a0;font-weight:800}
.core-paused{color:#ffb4b4;font-weight:900}
.core-title{font-size:clamp(24px,2.7vw,38px);font-weight:900;line-height:1.25;margin:12px 0 4px;color:#fff4e2}
.core-sub{font-size:15px;color:#e8c49a;margin-bottom:16px;line-height:1.6}
.core-main{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.core-btn{font-size:clamp(17px,1.8vw,24px)!important;font-weight:900!important;
  padding:16px 28px!important;min-height:66px;border-radius:15px;
  box-shadow:0 10px 24px rgba(0,0,0,.35);letter-spacing:.5px}
.core-btn.pulse{animation:corePulse 2s ease-in-out infinite}
@keyframes corePulse{0%,100%{box-shadow:0 10px 24px rgba(0,0,0,.35)}50%{box-shadow:0 10px 30px rgba(247,207,122,.55)}}
.core-second{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.core-mini{font-size:15px!important;padding:10px 17px!important;min-height:44px;border-radius:11px}
.core-next{margin:2px 0 10px;padding:10px 14px;border-radius:12px;font-size:14px;
  background:rgba(247,207,122,.1);border:1px dashed rgba(247,207,122,.42);color:#ffe0a0}
.core-next b{color:#f7cf7a}
.core-next a{color:#f7cf7a;text-decoration:underline;cursor:pointer;font-weight:800}
.core-hint{font-size:13px;color:#c8a988;line-height:1.7;margin-top:4px}
@media(max-width:640px){.core-panel{padding:15px}.core-btn{width:100%;text-align:center}}

/* 信息区（始终可见）：左题目/状态，右在线/分数 */
.host-layout{display:block}
.info-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:14px;align-items:start}
.info-col > .card:nth-child(1){grid-column:1;grid-row:1 / 3}
.info-col > .card:nth-child(2){grid-column:1;grid-row:3}
.info-col > .card:nth-child(3){grid-column:2;grid-row:1}
.info-col > .card:nth-child(4){grid-column:2;grid-row:2 / 4}
@media(max-width:1000px){.info-col{grid-template-columns:1fr}
  .info-col > .card{grid-column:1!important;grid-row:auto!important}}

/* 辅助操作：默认折叠，点开后多列，画面类不再占主位 */
.aux-box{margin-top:16px;border:1px solid rgba(247,207,122,.25);border-radius:14px;
  background:rgba(255,255,255,.025);overflow:hidden}
.aux-box > summary{cursor:pointer;padding:14px 18px;font-weight:800;font-size:15px;color:#ffe0a0;
  list-style:none;user-select:none;background:rgba(247,207,122,.07)}
.aux-box > summary::-webkit-details-marker{display:none}
.aux-box > summary::before{content:"▸ ";color:#f7cf7a;font-weight:900}
.aux-box[open] > summary::before{content:"▾ "}
.aux-box > summary:hover{background:rgba(247,207,122,.14)}
.aux-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;
  align-items:start;padding:14px}
.aux-grid > .card{margin:0}

/* ============================================================
   v5.2 月老台「导播监视器」：iframe 内嵌 /screen?preview=1
   ============================================================ */
.qz-preview .topbar .btn,
.qz-preview .float-head button{display:none!important}
.qz-preview .topbar{padding-top:6px;padding-bottom:6px}

.monitor-card{padding:0!important;overflow:hidden;border-color:rgba(247,207,122,.5)!important}
.monitor-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;
  background:linear-gradient(120deg,rgba(74,16,16,.96),rgba(44,9,9,.96));
  border-bottom:1px solid rgba(247,207,122,.28)}
.monitor-title{font-weight:900;color:#f7cf7a;font-size:15px;white-space:nowrap}
.monitor-tag{padding:3px 11px;border-radius:99px;background:rgba(247,207,122,.14);
  border:1px solid rgba(247,207,122,.42);color:#ffe0a0;font-size:12px;font-weight:800}
.monitor-hint{font-size:12px;color:#c8a988}
.monitor-frame-wrap{position:relative;background:#140404;aspect-ratio:16/9;width:100%;max-height:560px}
.monitor-frame-wrap iframe{width:100%;height:100%;border:0;display:block;background:#140404}
.monitor-frame-wrap.flash{animation:monitorFlash .55s ease-out}
@keyframes monitorFlash{0%{box-shadow:inset 0 0 0 4px #f7cf7a}100%{box-shadow:inset 0 0 0 0 transparent}}
.monitor-frame-wrap.small{aspect-ratio:16/9;max-height:300px}
.monitor-frame-wrap.hidden{display:none}
.monitor-foot{padding:8px 14px;font-size:12.5px;color:#c8a988;
  background:rgba(255,255,255,.02);border-top:1px solid rgba(247,207,122,.18)}
@media(max-width:760px){.monitor-frame-wrap{max-height:300px}.monitor-hint{display:none}}

/* v6 后台：口令折叠 / 星号 / 节目设置 */
.secret-box{border:1px solid rgba(247,207,122,.3);border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.02)}
.secret-box>summary{cursor:pointer;font-weight:800;color:#ffe0a0;list-style:none;user-select:none}
.secret-box>summary::-webkit-details-marker{display:none}
.secret-box>summary::before{content:"▸ ";color:#f7cf7a}
.secret-box[open]>summary::before{content:"▾ "}
.guest-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin-top:8px}
.guest-video-grid .gv{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;
  background:rgba(255,255,255,.03);border:1px solid rgba(247,207,122,.16);font-size:13px}
.guest-video-grid .gv b{min-width:78px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guest-video-grid .gv select{flex:1;min-width:0}

/* ============================================================
   v6 核心台：确认按钮前置 / 环节操作 / 任意环节插播
   ============================================================ */
.core-confirm{display:flex;align-items:center;gap:16px;margin:0 0 16px;padding:12px 14px;
  border-radius:16px;background:linear-gradient(120deg,rgba(247,207,122,.16),rgba(247,207,122,.05));
  border:2px solid rgba(247,207,122,.62)}
.core-confirm.hidden{display:none}
.core-confirm-btn{font-size:clamp(18px,2vw,26px)!important;font-weight:900!important;
  min-height:62px;min-width:190px;padding:14px 24px!important;border-radius:14px;white-space:nowrap}
.cc-txt{display:flex;flex-direction:column;gap:3px;line-height:1.5;min-width:0}
.cc-txt b{font-size:16px;color:#fff4e2}
.cc-txt span{font-size:13px;color:#d9b892}
.core-stage-ui{margin:6px 0 14px;padding:14px;border-radius:14px;
  background:rgba(0,0,0,.18);border:1px solid rgba(247,207,122,.24)}
.core-stage-ui.hidden{display:none}
.core-stage-ui h4{margin:0 0 8px;color:#f7cf7a;font-size:15px}
.stage-table{width:100%;border-collapse:collapse;font-size:13px}
.stage-table th,.stage-table td{padding:6px 8px;border-bottom:1px solid rgba(247,207,122,.14);text-align:left;vertical-align:middle}
.stage-table th{color:#ffdca0;font-weight:700;font-size:12px}
.stage-table input[type=number],.stage-table select,.stage-ui-row select,.stage-ui-row input{
  background:#2a1414;color:#ffe8c8;border:1px solid rgba(247,207,122,.35);border-radius:8px;padding:5px 8px;font-size:13px;max-width:150px}
.stage-ui-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:8px 0;font-size:13px}
.stage-pill{display:inline-block;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:800;
  background:rgba(247,207,122,.14);border:1px solid rgba(247,207,122,.34);color:#ffe0a0}
.stage-pill.ok{background:rgba(95,211,154,.15);border-color:rgba(95,211,154,.5);color:#8ee6bb}
.stage-pill.hot{background:rgba(255,128,128,.13);border-color:rgba(255,128,128,.45);color:#ffb0b0}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;margin-top:8px}
.team-card{padding:10px;border-radius:11px;background:rgba(255,255,255,.03);border:1px solid rgba(247,207,122,.2)}
.team-card b{color:#f7cf7a;font-size:15px}
.team-card .m{font-size:12.5px;color:#e7c9a6;line-height:1.7;margin-top:4px}
.core-insert{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px;padding-top:12px;
  border-top:1px dashed rgba(247,207,122,.28)}
.ci-lbl{font-size:13px;font-weight:800;color:#ffe0a0;white-space:nowrap}
.core-insert select{max-width:190px}
@media(max-width:640px){.core-confirm{flex-direction:column;align-items:stretch}.core-confirm-btn{width:100%}}

/* OBS：隐藏顶栏 / 左右男女槽 / 浮窗，启用单一焦点画面 */
body.obs .topbar,body.obs .cam-stage,body.obs .host-cam,body.obs .float-win{display:none!important}
body.obs .intro-banner{top:auto;bottom:3vh;left:2vw;right:34vw;transform:none}
body.obs .stage{padding-top:2vh}
body.obs .focus-cam{display:block}
.focus-cam{display:none;position:fixed;right:2vw;top:9vh;width:30vw;height:84vh;z-index:6;
  border-radius:20px;overflow:hidden;background:#08040a;border:2px solid rgba(247,207,122,.55);
  box-shadow:0 20px 60px rgba(0,0,0,.6)}
body.obs .focus-cam{top:12vh;height:76vh}
.fc-label{height:44px;display:grid;place-items:center;font-weight:900;font-size:clamp(13px,1.2vw,20px);
  color:#3a1000;background:linear-gradient(135deg,#f7cf7a,#d99a3c)}
.fc-frame{position:relative;height:calc(100% - 44px);background:#050308}
.fc-frame img{width:100%;height:100%;object-fit:contain;display:none}
.focus-cam.on .fc-frame img{display:block}
.fc-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  color:#8a7a68;font-size:clamp(13px,1.2vw,20px);padding:16px;line-height:1.8}
.focus-cam.on .fc-ph{display:none}
body.mirror .fc-frame img{transform:scaleX(-1)}
@media(max-width:900px){body.obs .focus-cam{width:38vw}}

/* ============================================================
   v7 现场包装：OBS 左上角 / 竖轴旋转角标 / 滚动条 / 广告卡 / 春晚字幕
   ============================================================ */
/* ① 左上角统一 OBS 样式 */
.qz-obs-badge{position:fixed;left:clamp(10px,1.4vw,26px);top:clamp(10px,1.4vh,22px);z-index:60;
  display:none;align-items:center;gap:clamp(8px,1vw,16px);padding:7px 14px;border-radius:12px;
  background:linear-gradient(120deg,rgba(28,10,10,.92),rgba(10,6,14,.88));
  border:1px solid rgba(247,207,122,.42);box-shadow:0 8px 28px rgba(0,0,0,.45);pointer-events:none}
.qz-obs-badge.show{display:flex}
.ob-live{display:flex;align-items:center;gap:6px;font-weight:900;font-size:clamp(10px,.9vw,15px);
  letter-spacing:2px;color:#fff;background:#d3323c;padding:4px 9px;border-radius:6px}
.ob-live i{width:8px;height:8px;border-radius:50%;background:#fff;animation:qzBlink 1.1s infinite}
@keyframes qzBlink{0%,100%{opacity:1}50%{opacity:.25}}
.ob-name{font-weight:900;font-size:clamp(14px,1.5vw,26px);letter-spacing:2px;
  background:linear-gradient(90deg,#ffd873,#ff9e7a,#7fb0ff);-webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.ob-stage{font-size:clamp(10px,.9vw,15px);color:#ffe0a0;border:1px solid rgba(247,207,122,.4);
  border-radius:99px;padding:3px 10px;white-space:nowrap;max-width:22vw;overflow:hidden;text-overflow:ellipsis}
/* 顶栏页面给角标让位 */
body.qz-stage .topbar{padding-left:clamp(190px,24vw,340px)}
@media(max-width:760px){body.qz-stage .topbar{padding-left:clamp(150px,42vw,240px)}.ob-stage{display:none}}

/* ② 右下角友媛竖标：更醒目 + 竖轴（Y轴）转圈圈，综艺角标 */
.qz-watermark{height:clamp(72px,10vh,140px);opacity:.42;z-index:62;
  transform:scale(var(--qz-wm-scale,1.35));transform-origin:right bottom;
  filter:drop-shadow(0 0 10px rgba(247,207,122,.55)) drop-shadow(0 0 24px rgba(220,60,40,.35))}
.qz-watermark.qz-spin{animation:qzSpinY var(--qz-spin-dur,6s) linear infinite;backface-visibility:visible}
@keyframes qzSpinY{0%{transform:perspective(600px) rotateY(0deg) scale(var(--qz-wm-scale,1.35))}
  50%{transform:perspective(600px) rotateY(180deg) scale(var(--qz-wm-scale,1.35))}
  100%{transform:perspective(600px) rotateY(360deg) scale(var(--qz-wm-scale,1.35))}}

/* ③ 底部滚动条（跑马灯，可关闭） */
.qz-ticker{position:fixed;left:0;right:0;bottom:0;height:clamp(34px,4.6vh,52px);z-index:58;
  display:none;align-items:center;overflow:hidden;
  background:linear-gradient(90deg,rgba(70,14,14,.96),rgba(30,8,12,.96),rgba(70,14,14,.96));
  border-top:2px solid rgba(247,207,122,.6);box-shadow:0 -6px 22px rgba(0,0,0,.4);pointer-events:none}
.qz-ticker.show{display:flex}
.qt-track{display:flex;white-space:nowrap;animation:qzMarquee var(--qt-dur,18s) linear infinite}
.qt-track span{padding:0 clamp(30px,4vw,80px);font-size:clamp(13px,1.35vw,22px);font-weight:800;
  letter-spacing:3px;color:#ffe0a0;text-shadow:0 2px 6px rgba(0,0,0,.6)}
@keyframes qzMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
body.qz-ticker-on .cam-stage,body.qz-ticker-on .float-win{bottom:clamp(40px,5.4vh,60px)}

/* ④ 广告小卡片（可开关） */
.qz-ad-card{position:fixed;right:clamp(14px,1.6vw,28px);bottom:clamp(96px,14vh,170px);z-index:59;
  display:none;flex-direction:column;gap:5px;width:clamp(150px,15vw,230px);padding:10px 13px;
  border-radius:14px;background:linear-gradient(150deg,rgba(60,18,18,.95),rgba(22,8,8,.95));
  border:1px solid rgba(247,207,122,.55);box-shadow:0 12px 34px rgba(0,0,0,.5);pointer-events:none}
.qz-ad-card.show{display:flex}
.qa-head{font-size:clamp(10px,.85vw,13px);font-weight:900;letter-spacing:2px;color:#ffb86b}
.qz-ad-card b{font-size:clamp(15px,1.5vw,25px);color:#ffe0a0;line-height:1.3}
.qz-ad-card span{font-size:clamp(11px,1vw,15px);color:#d7b596;line-height:1.5}
.qa-img{width:100%;height:clamp(52px,7vh,90px);object-fit:cover;border-radius:8px;border:1px solid rgba(247,207,122,.3)}

/* ⑤ 春晚式节目字幕：动画切入 + 6 种位置 */
.qz-lower-third{position:fixed;z-index:88;display:none;pointer-events:none;left:0;right:0}
.qz-lower-third.show{display:block}
.lt-inner{display:inline-flex;align-items:center;gap:clamp(10px,1.4vw,26px);
  padding:clamp(10px,1.5vh,22px) clamp(22px,3vw,60px);border-radius:8px;
  background:linear-gradient(100deg,rgba(120,20,20,.9),rgba(40,8,14,.94),rgba(120,20,20,.9));
  border-top:2px solid #f7cf7a;border-bottom:2px solid #f7cf7a;
  box-shadow:0 10px 40px rgba(0,0,0,.55);white-space:nowrap;max-width:94vw}
.lt-text{font-size:clamp(24px,3.6vw,66px);font-weight:900;letter-spacing:clamp(2px,.5vw,9px);
  color:#fff6e2;text-shadow:0 3px 0 #8a2b1c,0 6px 20px rgba(0,0,0,.7)}
.lt-deco{color:#f7cf7a;font-size:clamp(14px,1.6vw,28px)}
.qz-lower-third.pos-bottom-center{text-align:center;bottom:clamp(72px,12vh,150px)}
.qz-lower-third.pos-bottom-left{text-align:left;bottom:clamp(72px,12vh,150px);padding-left:4vw}
.qz-lower-third.pos-bottom-right{text-align:right;bottom:clamp(72px,12vh,150px);padding-right:4vw}
.qz-lower-third.pos-top-center{text-align:center;top:clamp(76px,12vh,140px)}
.qz-lower-third.pos-center{text-align:center;top:48%}
.qz-lower-third.pos-bottom-full{text-align:center;bottom:clamp(52px,7vh,80px)}
.qz-lower-third.pos-bottom-full .lt-inner{width:92vw;justify-content:center}
.qz-lower-third.anim-slide.show .lt-inner{animation:ltSlide .5s cubic-bezier(.2,1.5,.4,1) both}
.qz-lower-third.anim-fade.show .lt-inner{animation:ltFade .55s ease both}
.qz-lower-third.anim-zoom.show .lt-inner{animation:ltZoom .5s cubic-bezier(.2,1.4,.3,1) both}
.qz-lower-third.anim-type.show .lt-inner{animation:ltType .9s steps(18,end) both;overflow:hidden}
@keyframes ltSlide{from{opacity:0;transform:translateX(-110%)}to{opacity:1;transform:translateX(0)}}
@keyframes ltFade{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}
@keyframes ltZoom{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}
@keyframes ltType{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}

/* ⑥ 按钮上的快捷键提示 */
.hk,.kbd{display:inline-flex;align-items:center;justify-content:center;margin-left:7px;padding:1px 6px;
  min-width:18px;border-radius:5px;font:700 11px/1.4 ui-monospace,monospace;vertical-align:middle;
  color:#ffe0a0;background:rgba(247,207,122,.14);border:1px solid rgba(247,207,122,.45)}
.btn.primary .hk{color:#3a1000;background:rgba(255,255,255,.85);border-color:#fff}
.core-confirm-btn .hk{font-size:13px;padding:3px 9px;margin-left:12px}

/* ⑦ 导播预切 / 正播状态条 */
.cutbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0;padding:10px 12px;
  border-radius:12px;background:rgba(0,0,0,.2);border:1px solid rgba(247,207,122,.26)}
.cut-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:99px;
  font-size:12.5px;font-weight:800;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cut-pill.live{background:rgba(220,50,60,.18);border:1px solid rgba(255,90,100,.65);color:#ffc0c4}
.cut-pill.preset{background:rgba(247,207,122,.16);border:1px solid rgba(247,207,122,.6);color:#ffe0a0}
.cut-pill.idle{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);color:#a99}

/* v7 月老台：字幕条 / 包装开关 */
.core-tools{margin:10px 0 12px;padding:11px 12px;border-radius:12px;
  background:rgba(0,0,0,.16);border:1px solid rgba(247,207,122,.2)}
.ct-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0;font-size:13px}
.ct-lbl{font-weight:800;color:#ffe0a0;white-space:nowrap}
.core-tools input,.core-tools select{background:#2a1414;color:#ffe8c8;
  border:1px solid rgba(247,207,122,.35);border-radius:8px;padding:6px 9px;font-size:13px}
.core-tools input{flex:1;min-width:150px}
.core-tools select{max-width:150px}
.tiny{font-size:11.5px}

/* ============================================================
   v8：字标不出屏 / 登录后隐藏头部 / 全屏环节 / 后台折叠 / 竖屏防溢出
   ============================================================ */
/* 全局防横向溢出 */
html,body{max-width:100%;overflow-x:hidden}
body.brand-bg::before,body.brand-bg::after{max-width:100vw}

/* 右下角「友媛」字标：永远落在屏内（中心旋转、不再贴边放大） */
.qz-watermark{right:clamp(22px,3.2vw,64px)!important;bottom:clamp(58px,9vh,132px)!important;
  max-width:16vw;height:auto;transform-origin:center center;
  transform:scale(var(--qz-wm-scale,1.35))}
.qz-watermark.qz-spin{animation:qzSpinY var(--qz-spin-dur,6s) linear infinite}
@keyframes qzSpinY{
  0%{transform:perspective(600px) rotateY(0deg) scale(var(--qz-wm-scale,1.35))}
  50%{transform:perspective(600px) rotateY(180deg) scale(var(--qz-wm-scale,1.35))}
  100%{transform:perspective(600px) rotateY(360deg) scale(var(--qz-wm-scale,1.35))}
}
@media(max-width:640px){.qz-watermark{max-width:22vw;right:14px!important;bottom:clamp(52px,8vh,90px)!important}}

/* 各账号登录后自动隐藏首行（头部） */
body.authed .topbar,body.authed .pg-top{display:none!important}
body.authed.show-chrome .topbar,body.authed.show-chrome .pg-top{display:flex!important}
.qz-chrome-handle{position:fixed;right:8px;top:8px;z-index:120;width:30px;height:30px;
  border-radius:8px;border:1px solid rgba(247,207,122,.5);background:rgba(40,10,10,.82);
  color:#ffe0a0;font-size:15px;cursor:pointer;opacity:.65}
.qz-chrome-handle:hover{opacity:1}

/* v8 全屏环节（招亲榜 / 全屏广告） */
.qz-fullscreen-layer{position:fixed;inset:0;z-index:70;display:none;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:clamp(18px,4vw,60px);
  background:radial-gradient(900px 600px at 50% 20%,#7a1818,#2a0606 76%);
  color:#fff4e2;pointer-events:none}
.qz-fullscreen-layer.show{display:flex}
.qf-head .qf-kind{display:inline-block;padding:5px 16px;border-radius:99px;font-size:clamp(12px,1.2vw,18px);
  font-weight:900;letter-spacing:4px;color:#3a1000;background:linear-gradient(90deg,#f7cf7a,#e8a34c)}
.qf-head h1{margin:14px 0 8px;font-size:clamp(38px,7vw,110px);font-weight:900;letter-spacing:clamp(4px,1vw,16px);
  background:linear-gradient(90deg,#ffe9b0,#f7cf7a,#ff9e7a);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.5))}
.qf-head p{margin:0;font-size:clamp(14px,1.8vw,28px);color:#f0c898;letter-spacing:2px}
.qf-roster{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(8px,1.4vw,22px);
  width:min(1100px,92vw);margin-top:clamp(18px,3vh,42px)}
.qf-person{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px;
  border-radius:12px;background:rgba(0,0,0,.22);border:1px solid rgba(247,207,122,.35)}
.qf-person img{width:clamp(40px,5.5vw,84px);height:clamp(40px,5.5vw,84px);object-fit:cover;border-radius:50%}
.qf-person b{font-size:clamp(12px,1.3vw,20px);color:#ffe0a0}
.qf-person span{font-size:clamp(10px,1vw,14px);color:#d7b596}
.qf-foot{position:absolute;bottom:clamp(52px,9vh,110px);left:0;right:0;display:flex;
  justify-content:center;gap:30px;font-size:clamp(12px,1.2vw,18px);color:#e8c49a}
@media(max-width:760px){.qf-roster{grid-template-columns:repeat(4,1fr)}}

/* 后台：全部卡片可折叠，需要哪项展开哪项 */
.fold{border-radius:12px;margin-bottom:10px;border:1px solid rgba(247,207,122,.26);
  background:rgba(30,8,10,.55);overflow:hidden}
.fold>summary{cursor:pointer;list-style:none;padding:11px 14px;font-weight:900;font-size:14px;
  color:#ffe0a0;background:linear-gradient(100deg,rgba(90,22,22,.75),rgba(40,10,10,.75));
  display:flex;align-items:center;gap:8px;user-select:none}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::before{content:'▸';font-size:13px;color:#f7cf7a;transition:transform .18s}
.fold[open]>summary::before{transform:rotate(90deg)}
.fold>summary .fp{font-weight:500;font-size:11.5px;color:#c8a988;margin-left:auto}
.fold-body{padding:12px 14px}
.fold[open]>summary{border-bottom:1px solid rgba(247,207,122,.22)}

/* 机位表 3 列 + 流程编辑器 */
.cam3{display:grid;grid-template-columns:1.35fr 1.5fr 1.05fr 34px;gap:8px;align-items:center;
  margin-bottom:8px;padding:8px;border-radius:10px;background:rgba(0,0,0,.18)}
.cam3 label{display:block;font-size:10.5px;color:#c8a988;margin-bottom:3px;font-weight:700}
.cam3 input,.cam3 select{width:100%;box-sizing:border-box;background:#2a1414;color:#ffe8c8;
  border:1px solid rgba(247,207,122,.35);border-radius:7px;padding:6px 8px;font-size:12.5px}
.cam3 input.ce-short.dup{border-color:#ff5a64;background:rgba(220,50,60,.15)}
.cam3 .ce-sub{margin-top:4px}
.cam3 .ce-del{height:32px;padding:0}
@media(max-width:820px){.cam3{grid-template-columns:1fr 1fr;gap:6px}}

.stage-card{border:1px solid rgba(247,207,122,.3);border-radius:12px;margin-bottom:10px;
  background:linear-gradient(140deg,rgba(74,16,16,.8),rgba(34,8,8,.9));overflow:hidden}
.stage-card>summary{cursor:pointer;list-style:none;padding:10px 12px;display:flex;align-items:center;gap:9px}
.stage-card>summary::-webkit-details-marker{display:none}
.stage-num{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;
  border-radius:50%;background:#f7cf7a;color:#3a1000;font-weight:900;flex:0 0 auto}
.stage-name{font-weight:900;color:#ffe0a0;font-size:14px}
.stage-meta{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.stage-body{padding:12px;border-top:1px solid rgba(247,207,122,.22)}
.stage-body .form-row{margin-bottom:10px}
.stage-lt{background:rgba(0,0,0,.22);border-left:3px solid #f7cf7a;border-radius:8px;padding:10px;margin-top:8px}
.stage-lt h5{margin:0 0 8px;font-size:12.5px;color:#ffe0a0}
.flow-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.flow-toolbar .tag{font-size:11.5px}

/* 贴片广告与全屏环节的区分提示 */
.kind-note{font-size:11.5px;color:#c8a988;line-height:1.7;background:rgba(0,0,0,.2);
  border-radius:8px;padding:8px 10px;margin-top:8px}

/* 嘉宾手机竖屏：不溢出 */
@media(max-width:520px) and (orientation:portrait){
  html,body{overflow-x:hidden!important;width:100%!important}
  .wrap{padding:8px!important;max-width:100vw!important;box-sizing:border-box}
  .card,.q-card,.answer-box,.answer-reveal,.login-box{padding:10px!important;max-width:100%!important;box-sizing:border-box}
  .btn{font-size:13px;padding:8px 10px;max-width:100%;word-break:keep-all}
  .btn.lg{font-size:15px}
  input,select,textarea{max-width:100%!important;box-sizing:border-box;font-size:14px}
  .cam-preview,.cam-preview-box{max-width:100%}
  .row,.btn-row,.form-row{gap:6px}
  h1,h2,h3{font-size:clamp(17px,5vw,24px)}
  .qz-ticker .qt-track span{font-size:12px;letter-spacing:1px}
  .qz-lower-third .lt-text{font-size:clamp(18px,6vw,30px);letter-spacing:2px}
  .lt-inner{padding:8px 14px;max-width:96vw;white-space:normal}
  .qf-roster{grid-template-columns:repeat(3,1fr)}
}


/* ============================================================
   v8.1：折叠默认展开 + 记住上次；机位三列；后台分栏静态化
   ============================================================ */
.fold{display:block;border-radius:12px;margin-bottom:10px;border:1px solid rgba(247,207,122,.26);
  background:rgba(30,8,10,.55)}
.fold>summary{cursor:pointer;list-style:none;padding:11px 14px;font-weight:900;font-size:14px;
  color:#ffe0a0;background:linear-gradient(100deg,rgba(90,22,22,.75),rgba(40,10,10,.75));
  display:flex;align-items:center;gap:8px;user-select:none}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::before{content:'▾';font-size:13px;color:#f7cf7a}
.fold:not([open])>summary::before{content:'▸'}
.fold>summary .fp{font-weight:500;font-size:11.5px;color:#c8a988;margin-left:auto}
.fold-body{padding:12px 14px}
.fold[open]>summary{border-bottom:1px solid rgba(247,207,122,.22)}
/* 一页放得下的卡片：默认展开、不折叠 */
.card{display:block}
/* 顶栏保存条：每栏都有，显眼 */
.save-bar{position:sticky;bottom:0;z-index:9;display:flex;gap:10px;align-items:center;
  padding:10px 12px;margin-top:12px;border-radius:12px;
  background:linear-gradient(100deg,rgba(90,22,22,.96),rgba(40,10,10,.96));
  border:1px solid rgba(247,207,122,.45);box-shadow:0 -6px 22px rgba(0,0,0,.35)}
.save-bar .hint{margin:0;font-size:11.5px}

/* v8.1 机位表：三列、重复提示 */
.cam3{display:grid;grid-template-columns:1.35fr 1.5fr 1.05fr 34px;gap:8px;align-items:end;
  margin-bottom:8px;padding:10px;border-radius:10px;background:rgba(0,0,0,.20);
  border:1px solid rgba(247,207,122,.16)}
.cam3 label{display:block;font-size:10.5px;color:#c8a988;margin-bottom:4px;font-weight:700}
.cam3 input,.cam3 select{width:100%;box-sizing:border-box;background:#2a1414;color:#ffe8c8;
  border:1px solid rgba(247,207,122,.35);border-radius:7px;padding:7px 8px;font-size:12.5px}
.cam3 select:disabled{opacity:.55}
.cam3 input.ce-short.dup{border-color:#ff5a64;background:rgba(220,50,60,.18);color:#ffd7da}
.cam3.dup-role{border-color:#ffb340;background:rgba(220,150,40,.12)}
.cam3 .ce-del{height:34px;padding:0}
@media(max-width:820px){.cam3{grid-template-columns:1fr 1fr;gap:6px}.cam3 .ce-del{grid-column:2}}

/* v8.1 月老台：左预切(黄) / 右正播(红) 双窗 */
.cut-windows{display:flex;gap:10px;width:100%;flex:0 0 100%;margin-bottom:4px}
.cut-win{position:relative;flex:1;min-width:0;height:clamp(92px,13vh,150px);border-radius:10px;
  overflow:hidden;background:rgba(0,0,0,.44);display:flex;flex-direction:column}
.cut-win.preset{border:2px solid #ffc44d;box-shadow:0 0 0 1px rgba(255,196,77,.25) inset}
.cut-win.live{border:2px solid #ff5a64;box-shadow:0 0 0 1px rgba(255,90,100,.25) inset}
.cut-win .cw-label{padding:5px 7px;background:rgba(0,0,0,.42);display:flex;gap:6px;align-items:center}
.cut-win .cut-pill{font-size:11.5px;padding:2px 8px}
.cw-ph{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:11.5px;color:#d8b89a;padding:4px}
.cut-win.live img{position:absolute;inset:22px 0 0 0;width:100%;height:calc(100% - 22px);
  object-fit:contain;display:none;background:#000}
.cut-win.live.has-frame img{display:block}
.cut-win.live.has-frame .cw-ph{display:none}
@media(max-width:640px){.cut-windows{flex-direction:column}.cut-win{height:88px}}


/* ============================================================
   v8.2：题目优先 / 正播画面（PGM）/ 边色 / 模式 2 计分牌
   ============================================================ */
:root{--bg-edge:#95221c}
/* 题目卡永远在最前，任何叠加层都盖不住 */
body.bigscreen .views{position:relative;z-index:12;display:block}
body.bigscreen.has-question .q-card{position:relative;z-index:14}
body.bigscreen[data-mode="2"] .v2-board{display:grid}
body.bigscreen[data-mode="2"] .view[data-view="2"]{display:block!important}
/* 正播画面窗：右侧固定，不挡题目；底色与背景图一致 */
.pgm-win{position:fixed;right:1.2vw;top:11vh;width:clamp(150px,20vw,300px);z-index:11;
  border:2px solid #ff5a64;border-radius:12px;overflow:hidden;background:var(--bg-edge,#95221c);
  box-shadow:0 10px 34px rgba(0,0,0,.45)}
.pgm-label{padding:6px 9px;background:rgba(0,0,0,.55);color:#ffd7da;font-size:12px;font-weight:800}
.pgm-frame{position:relative;width:100%;aspect-ratio:3/4;background:var(--bg-edge,#95221c)}
.pgm-frame img{width:100%;height:100%;object-fit:contain;display:none;background:var(--bg-edge,#95221c)}
.pgm-win.has-frame .pgm-frame img{display:block}
.pgm-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  font-size:12px;color:#f0d6b4;padding:10px}
.pgm-win.has-frame .pgm-ph{display:none}
.pgm-win.mirror img{transform:scaleX(-1)}
body.obs .pgm-win{right:1vw;top:8vh;width:30vw;z-index:12}
@media(max-width:900px){.pgm-win{width:26vw;right:1vw;top:9vh}}
/* 大屏题目区给右侧画面留位，避免重叠 */
body.bigscreen.has-question .v1-grid,
body.bigscreen.has-question .v4-split{padding-right:clamp(160px,21vw,320px)}

/* v8.2 嘉宾端：题目首屏大字、竖屏不溢出；摄像头预览可收起 */
.q-hero{border:2px solid rgba(247,207,122,.55)!important;background:linear-gradient(155deg,rgba(40,12,14,.96),rgba(20,8,10,.96))!important}
.q-hero .card-title{font-size:15px;color:#ffe0a0}
.q-text-big{font-size:clamp(19px,4.6vw,30px);line-height:1.55;font-weight:800;color:#fff3dc;
  word-break:break-word;overflow-wrap:anywhere;margin:4px 0 6px}
.cam-fold{border:1px solid rgba(247,207,122,.22);border-radius:10px;margin:10px 0;background:rgba(0,0,0,.2)}
.cam-fold>summary{cursor:pointer;padding:8px 12px;font-size:12.5px;color:#e8cba4;list-style:none}
.cam-fold>summary::-webkit-details-marker{display:none}
.cam-fold>summary::before{content:'▾ ';color:#f7cf7a}
.cam-fold:not([open])>summary::before{content:'▸ '}
.cam-preview-wrap{max-height:210px;overflow:hidden}
.cam-preview{max-height:180px}
.q-hero,.q-text-big,.finish-btn,.buzzer-btn{max-width:100%;box-sizing:border-box}

/* ============================================================
   v8.2 月老台：环节控制窗 / 正播监视器 / 单字母机位 / 确认聚焦
   ============================================================ */
.modebar{position:sticky;top:0;z-index:30;display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  padding:9px 12px;margin:10px 0;border-radius:12px;
  background:linear-gradient(100deg,rgba(88,20,22,.97),rgba(38,10,12,.97));
  border:1px solid rgba(247,207,122,.42);box-shadow:0 6px 20px rgba(0,0,0,.32)}
.mode-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:9px;cursor:pointer;
  font-size:14px;font-weight:800;color:#f0d6b4;background:rgba(255,255,255,.06);
  border:1px solid rgba(247,207,122,.3)}
.mode-btn b{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;
  background:rgba(247,207,122,.18);color:#ffe0a0;font-size:13px}
.mode-btn:hover{border-color:#f7cf7a}
.mode-btn.active{background:linear-gradient(135deg,#f7cf7a,#d98b3a);color:#3a1000;border-color:#ffe6b0}
.mode-btn.active b{background:rgba(58,16,0,.28);color:#fff2d4}
.confirm-bar{position:sticky;top:62px;z-index:29;display:flex;width:100%;gap:10px;align-items:center;
  justify-content:space-between;padding:10px 16px;margin:0 0 10px;border-radius:10px;cursor:pointer;
  color:#3a1000;background:linear-gradient(100deg,#ffe6a8,#f7b955);
  border:2px solid #fff3d4;box-shadow:0 4px 18px rgba(247,180,85,.34);font-size:15px;font-weight:900}
.confirm-bar small{font-weight:600;opacity:.75}
.confirm-bar.hidden{display:none}
.stage-win{border:2px solid rgba(247,207,122,.5);border-radius:14px;margin:0 0 12px;overflow:hidden;
  background:linear-gradient(155deg,rgba(48,14,16,.96),rgba(22,8,10,.96))}
.stage-win.focus-flash{box-shadow:0 0 0 4px #ffe6a8}
.sw-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:11px 15px;
  background:linear-gradient(100deg,rgba(96,24,26,.9),rgba(42,12,14,.9));border-bottom:1px solid rgba(247,207,122,.28)}
.sw-head b{font-size:19px;color:#ffe0a0}
.sw-title{font-size:21px;font-weight:900;color:#fff3dc;padding:12px 16px 2px}
.sw-sub,.core-hint{color:#d8b89a;font-size:13px;padding:0 16px 8px}
.host-question{margin:6px 15px 12px;padding:16px 18px;border-radius:12px;
  font-size:clamp(18px,2.2vw,28px);line-height:1.5;font-weight:800;color:#f0d6b4;
  word-break:break-word;overflow-wrap:anywhere;background:rgba(0,0,0,.34);
  border:1px solid rgba(247,207,122,.22);scroll-margin-top:80px}
.host-question.has-q{color:#fff6e2;border-color:#f7cf7a;background:rgba(90,26,20,.5)}
.host-question.q-flash{box-shadow:0 0 0 3px #ffe6a8}
.core-stage-ui{padding:0 15px}
.core-primary{padding:10px 15px}
.core-second,.core-next{display:flex;gap:8px;flex-wrap:wrap;padding:0 15px 10px}
.pgm-monitor{border:2px solid #ff5a64;border-radius:14px;overflow:hidden;margin:0 0 12px;
  background:var(--bg-edge,#95221c);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.pgm-monitor.flash{box-shadow:0 0 0 4px #ffe6a8,0 8px 28px rgba(0,0,0,.35)}
.pm-head{display:flex;gap:10px;align-items:center;padding:9px 13px;background:rgba(0,0,0,.55);color:#ffd7da;font-size:13px}
.pm-head .spacer{flex:1}
.pm-frame{position:relative;width:100%;height:clamp(210px,34vh,420px);background:var(--bg-edge,#95221c)}
.pm-frame img{width:100%;height:100%;object-fit:contain;display:none;background:var(--bg-edge,#95221c)}
.pgm-monitor.has-frame .pm-frame img{display:block}
.pm-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#f6ddc0;font-size:14px;line-height:1.7}
.pgm-monitor.has-frame .pm-ph{display:none}
.pm-foot{padding:6px 13px;font-size:11.5px;color:#e8cba4;background:rgba(0,0,0,.4)}
.fold>summary{font-size:14px}
.sw-mini{display:flex;gap:9px;align-items:center;padding:7px 9px;margin-bottom:6px;border-radius:9px;
  background:rgba(255,255,255,.045);border:1px solid rgba(247,207,122,.16)}
.sw-mini.on{border-color:#f7cf7a;background:rgba(247,207,122,.12)}
.sw-mini-no{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;
  background:rgba(247,207,122,.18);color:#ffe0a0;font-weight:800;font-size:12px}
.sw-mini-name{flex:1;font-size:13.5px;color:#f0d6b4}
.cam-btn-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:8px;margin-top:10px}
.cam-btn{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.3);color:#f0d6b4;font-size:12.5px;text-align:left}
.cam-btn b{display:grid;place-items:center;min-width:24px;height:24px;border-radius:6px;
  background:rgba(247,207,122,.18);color:#ffe0a0;font-size:13px}
.cam-btn:hover{border-color:#f7cf7a}
.cam-btn.live{border:2px solid #ff5a64;background:rgba(255,90,100,.14)}
.cam-btn.live b{background:#ff5a64;color:#fff}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}
.info-grid .card{margin:0}
@media(max-width:820px){.modebar{gap:5px;padding:7px}.mode-btn{padding:7px 9px;font-size:12px}
  .confirm-bar{top:56px;font-size:13px}.pm-frame{height:210px}}

/* ============================================================
   v9.4 三栏主舞台：左摄像头 / 中题目环节倒计时 / 右实时排名
   取消副屏 · 画中画 · 左右屏；主屏只换「风格配色」，不换布局
   ============================================================ */
body.bigscreen{height:100vh;display:flex;flex-direction:column;overflow:hidden}
body.bigscreen .topbar{flex:none;position:static;padding:6px 14px;flex-wrap:nowrap}
body.bigscreen .views{display:none!important}
body.bigscreen .stage{position:relative;flex:1;min-height:0;max-width:none;margin:0;padding:0;overflow:hidden}
.main-stage{position:absolute;inset:0;display:grid;
  grid-template-columns:clamp(210px,21vw,340px) minmax(0,1fr) clamp(190px,18vw,290px);
  gap:clamp(8px,1.2vw,20px);padding:clamp(9px,1.2vw,20px);
  box-sizing:border-box;z-index:12}
.main-stage>*{min-width:0;min-height:0}

/* 左：摄像头（自动跟随发言嘉宾）+ 下一位黄灯 */
.ms-left{display:flex;flex-direction:column;gap:8px}
.ms-sig{padding:7px 11px;border-radius:9px;font-size:12.5px;font-weight:800;
  color:#ffe0a0;background:rgba(0,0,0,.5);border:1px solid rgba(247,207,122,.35);text-align:center}
.ms-cam{position:relative;flex:1;min-height:0;border:2px solid #ff5a64;border-radius:12px;overflow:hidden;
  background:var(--bg-edge,#95221c)}
.ms-cam img{width:100%;height:100%;object-fit:contain;display:none;background:var(--bg-edge,#95221c)}
.ms-cam.has-frame img{display:block}
.ms-cam.mirror img{transform:scaleX(-1)}
.ms-cam-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  color:#f6ddc0;font-size:13px;line-height:1.7;padding:12px}
.ms-cam.has-frame .ms-cam-ph{display:none}
.ms-cam-name{position:absolute;left:0;right:0;bottom:0;padding:8px 10px;text-align:center;
  font-size:clamp(13px,1.4vw,19px);font-weight:900;color:#fff;
  background:linear-gradient(0deg,rgba(120,16,20,.94),rgba(120,16,20,0))}
.ms-next{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:10px;
  border:2px solid #f7cf7a;background:rgba(247,207,122,.14);color:#ffe6b0;font-size:12.5px}
.ms-next.off{border-color:rgba(247,207,122,.25);background:rgba(255,255,255,.04);opacity:.55}
.ms-next-dot{width:11px;height:11px;border-radius:50%;background:#ffd45e;box-shadow:0 0 12px #ffd45e;
  animation:msBlink 1.1s ease-in-out infinite;flex:none}
.ms-next.off .ms-next-dot{background:#6b6255;box-shadow:none;animation:none}
@keyframes msBlink{0%,100%{opacity:1}50%{opacity:.35}}
.ms-next-lbl{font-weight:800}
.ms-next b{margin-left:auto;font-size:14px;color:#fff3d4}

/* 中：环节介绍 + 题目 + 倒计时（fill 铺满 / compact 缩小） */
.ms-mid{display:flex;flex-direction:column;gap:clamp(8px,1vh,16px);
  padding:clamp(12px,1.6vw,26px);border-radius:14px;
  background:linear-gradient(160deg,rgba(38,10,12,.86),rgba(18,7,9,.9));
  border:1px solid rgba(247,207,122,.3);overflow:hidden}
.main-stage.compact .ms-mid{max-width:min(76%,900px);margin:0 auto;width:100%}
.ms-stage-head{text-align:center;flex:none}
.ms-step{display:inline-block;padding:4px 12px;border-radius:99px;font-size:12px;font-weight:800;
  color:#3a1000;background:linear-gradient(100deg,#ffe6a8,#f7b955)}
.ms-stage-head h1{margin:6px 0 2px;font-size:clamp(26px,3.6vw,58px);letter-spacing:.1em;
  color:#ffe0a0;text-shadow:0 3px 18px rgba(247,180,85,.35)}
.ms-stage-head p{margin:0;color:#d8b89a;font-size:clamp(12px,1.3vw,18px)}
.ms-timer{flex:none;display:flex;align-items:center;justify-content:center;gap:10px;
  padding:8px 14px;border-radius:12px;background:rgba(0,0,0,.38);border:1px solid rgba(255,120,120,.4)}
.ms-timer.hidden{display:none}
.ms-timer-lbl{font-size:13px;color:#ffb6c2;font-weight:800}
.ms-timer-num,.ms-timer b{font-size:clamp(30px,4.4vw,68px);font-weight:900;color:#ff6b6b;
  font-variant-numeric:tabular-nums;line-height:1}
.ms-timer-unit{font-size:13px;color:#d8b89a}
.ms-timer-track{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(0,0,0,.5)}
.ms-timer-track i{display:block;height:100%;background:linear-gradient(90deg,#ff6b6b,#f7cf7a);transition:width .25s}
.ms-timer{position:relative;overflow:hidden}
.ms-question{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(12px,1.6vw,28px);border-radius:12px;
  background:rgba(0,0,0,.3);border:1px solid rgba(247,207,122,.22);overflow:hidden}
.ms-q-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ms-q-text{font-size:clamp(21px,2.9vw,46px);line-height:1.5;font-weight:900;color:#fff6e2;
  word-break:break-word;overflow-wrap:anywhere}
.ms-q-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}
.ms-q-opt{padding:10px 14px;border-radius:10px;font-size:clamp(14px,1.6vw,24px);font-weight:700;
  color:#f0d6b4;background:rgba(255,255,255,.06);border:1px solid rgba(247,207,122,.3);
  word-break:break-word}
.ms-q-opt b{color:#ffe0a0;margin-right:9px}
.ms-q-opt.correct{border-color:#7ef0a4;background:rgba(126,240,164,.2);color:#dfffe9;
  box-shadow:0 0 0 2px rgba(126,240,164,.35)}
.ms-q-status{margin-top:14px;font-size:clamp(13px,1.4vw,20px);color:#d8b89a;line-height:1.5}
.ms-q-answer{margin-top:12px;padding:12px 16px;border-radius:10px;font-size:clamp(16px,2vw,30px);
  font-weight:900;color:#3a1000;background:linear-gradient(100deg,#ffe6a8,#f7b955)}
.ms-q-answer.hidden{display:none}
.ms-speaker{flex:none;text-align:center;font-size:clamp(14px,1.6vw,24px);font-weight:800;color:#ffe0a0}

/* 右：实时排名挂件（0 分不显示；从学富五车开始） */
.ms-right{display:none;flex-direction:column;padding:clamp(10px,1.2vw,18px);border-radius:14px;
  background:linear-gradient(165deg,rgba(48,14,16,.92),rgba(20,8,10,.94));
  border:1px solid rgba(247,207,122,.34);overflow:hidden}
.ms-right.show{display:flex}
.ms-rank-head{font-size:clamp(14px,1.5vw,22px);font-weight:900;color:#ffe0a0;
  padding-bottom:9px;border-bottom:1px solid rgba(247,207,122,.28);flex:none}
.ms-rank-head span{display:block;font-size:11px;font-weight:600;color:#d8b89a;margin-top:3px}
.ms-rank-list{flex:1;min-height:0;overflow:hidden;margin-top:9px;display:flex;flex-direction:column;gap:4px}
.ms-rank-row{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:9px;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.16);font-size:13px;color:#f0d6b4}
.ms-rank-row .no{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;
  background:rgba(247,207,122,.2);color:#ffe0a0;font-weight:900;font-size:11px;flex:none}
.ms-rank-row .nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ms-rank-row .sc{font-weight:900;color:#ffd45e;font-size:15px}
.ms-rank-row.me{border-color:#f7cf7a;background:rgba(247,207,122,.16)}
.ms-rank-row.top1 .no{background:linear-gradient(135deg,#ffe6a8,#f7b955);color:#3a1000}
.ms-rank-foot{flex:none;padding-top:8px;font-size:11px;color:#b99c7e;text-align:center}

/* 主屏风格 1~4：只换配色，不换布局（替代副屏/画中画/左右屏） */
body.bigscreen[data-style="2"]{--gold:#ff9ab8;--cyan:#c9a7ff;--accent:#ff9ab8}
body.bigscreen[data-style="3"]{--gold:#7ef0c4;--cyan:#3fe0e0;--accent:#7ef0c4}
body.bigscreen[data-style="4"]{--gold:#e8c27a;--cyan:#9fb4d8;--accent:#e8c27a}
body.bigscreen[data-style="2"] .ms-stage-head h1,
body.bigscreen[data-style="2"] .ms-sig{color:#ffc2d4}
body.bigscreen[data-style="3"] .ms-stage-head h1,
body.bigscreen[data-style="3"] .ms-sig{color:#b6ffe0}
/* 顶栏操作按钮保留 DOM 但隐藏，避免 screen.js 取不到元素 */
body.bigscreen #cameraToggle,body.bigscreen #floatToggle,body.bigscreen #floatTag{display:none!important}
@media(max-width:900px){
  .main-stage{grid-template-columns:clamp(140px,26vw,220px) minmax(0,1fr) clamp(130px,20vw,190px);gap:6px;padding:6px}
  .ms-q-options{grid-template-columns:1fr}
}

/* ============================================================
   v9.4 月老台：单屏、不滚动、一排 4 个监控小窗、固定开始/下一步
   ============================================================ */
body.host-page{height:100vh;overflow:hidden}
body.host-page .wrap{height:100vh;display:flex;flex-direction:column;gap:6px;padding:6px 10px;
  box-sizing:border-box;overflow:hidden}
body.host-page .topbar{flex:none;padding:5px 10px;margin:0}
body.host-page .signalbar{flex:none;position:static;padding:6px 10px;margin:0;gap:6px}
body.host-page .mode-btn{padding:5px 9px;font-size:12px;gap:5px}
body.host-page .mode-btn b{width:19px;height:19px;font-size:12px}
body.host-page .mode-btn small{font-size:10px;opacity:.7;font-weight:600}
body.host-page .confirm-bar{position:static;flex:none;padding:6px 12px;margin:0;font-size:13px}
body.host-page .stage-win{flex:1;min-height:0;display:flex;flex-direction:column;margin:0;overflow:hidden}
body.host-page .sw-head{flex:none;padding:6px 12px;font-size:12px}
body.host-page .sw-head b{font-size:15px}
body.host-page .sw-title{font-size:16px;padding:6px 12px 0}
body.host-page .sw-sub,body.host-page .core-hint{font-size:11.5px;padding:0 12px 4px}
body.host-page .host-question{flex:1;min-height:0;overflow:auto;font-size:clamp(15px,1.8vw,24px);
  margin:4px 12px 6px;padding:10px 14px}
body.host-page .core-stage-ui{flex:none;max-height:22vh;overflow:auto;padding:0 12px}
body.host-page .core-primary{flex:none;padding:4px 12px}
body.host-page .core-primary .btn{padding:8px}
body.host-page .core-second,body.host-page .core-next{flex:none;padding:0 12px 4px}
.fixed-actions{flex:none;display:flex;gap:8px;align-items:center;padding:6px 12px;
  border-top:1px solid rgba(247,207,122,.28);background:rgba(0,0,0,.26)}
.fixed-actions .btn{min-width:110px;padding:8px 14px;font-size:14px;font-weight:900}
.fixed-actions .tiny{margin-left:auto}
body.host-page .pgm-monitor{flex:none;margin:0;display:none}
body.host-page .fold{flex:none;margin:0}
body.host-page .fold>summary{padding:5px 10px;font-size:12px}
body.host-page .fold[open] .fold-body{max-height:20vh;overflow:auto}
body.host-page .hidden{display:none!important}

/* 监控墙：一排最多 4 个小画面 */
.mon-wall{flex:none;display:grid;gap:6px;margin:0;
  grid-template-columns:repeat(var(--mon-cols,4),minmax(0,1fr))}
.mon-cell{position:relative;border:2px solid rgba(247,207,122,.3);border-radius:8px;overflow:hidden;
  background:var(--bg-edge,#95221c);height:clamp(76px,11vh,124px)}
.mon-cell.live{border-color:#ff5a64;box-shadow:0 0 0 2px rgba(255,90,100,.28)}
.mon-cell.next{border-color:#f7cf7a}
.mon-cell img{width:100%;height:100%;object-fit:cover;display:none}
.mon-cell.has-frame img{display:block}
.mon-cell.ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  font-size:11px;color:#f0d6b4;padding:6px;line-height:1.4}
.mon-cell.has-frame .ph{display:none}
.mon-lab{position:absolute;left:0;right:0;top:0;padding:3px 6px;font-size:10.5px;font-weight:800;
  color:#fff;background:rgba(0,0,0,.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mon-cell .mon-key{position:absolute;right:5px;bottom:4px;padding:1px 5px;border-radius:5px;
  font-size:10px;font-weight:900;color:#3a1000;background:#f7cf7a}
@media(max-height:720px){body.host-page .mon-cell{height:72px}
  body.host-page .host-question{font-size:16px}}

/* 个人屏：按钮原地焦点区域（提交一次即生效，无二次确认） */
.qz-focus-zone{position:relative;z-index:2;animation:qzZone 1.3s ease-out}
.qz-focus-zone::after{content:'';position:absolute;inset:-8px;border-radius:14px;
  border:3px solid #ffe6a8;box-shadow:0 0 0 6px rgba(247,207,122,.22),0 0 28px rgba(247,207,122,.6);
  pointer-events:none;animation:qzZoneRing 1.3s ease-out forwards}
@keyframes qzZone{0%{transform:scale(.97)}18%{transform:scale(1.02)}100%{transform:scale(1)}}
@keyframes qzZoneRing{0%{opacity:0;transform:scale(.88)}20%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.12)}}
.ce-role-ro{padding:8px 10px;border-radius:8px;font-size:13px;color:#f0d6b4;
  background:rgba(255,255,255,.05);border:1px dashed rgba(247,207,122,.35)}

/* v9.4：节目面板 / 全屏层不抢三栏题目区；只有明确的全屏环节才铺满 */
body.bigscreen.has-question .qz-fullscreen-layer{display:none!important}

/* 节目环节内容放进中间区：大屏不出现可点按钮，铺满/缩小由 middleMode 决定 */
.ms-panel{font-size:clamp(14px,1.7vw,25px);line-height:1.6;color:#f0d6b4;text-align:left}
.ms-panel button,.ms-panel input,.ms-panel select{display:none!important}
.ms-panel h3,.ms-panel h4{color:#ffe0a0;margin:6px 0}
.ms-panel .stage-pill{display:inline-block;padding:4px 10px;margin:3px;border-radius:99px;
  background:rgba(247,207,122,.16);border:1px solid rgba(247,207,122,.3);font-size:14px}
.main-stage.compact .ms-panel{max-width:760px;margin:0 auto}

/* ============================================================
   v9.4 月老台节目单条：12 环节一眼看全，极薄不破坏「一屏不滚动」
   ============================================================ */
.rd-strip{flex:none;display:flex;align-items:center;gap:3px;padding:3px 6px;margin:0;
  border-radius:7px;background:rgba(0,0,0,.3);border:1px solid rgba(247,207,122,.2);
  flex-wrap:wrap;overflow:hidden;scrollbar-width:none}
.rd-strip::-webkit-scrollbar{display:none}
.rd-chip{flex:0 0 auto;display:flex;align-items:center;gap:4px;padding:2px 7px;border-radius:5px;
  font-size:10.5px;white-space:nowrap;color:#c9ad8d;background:rgba(255,255,255,.04);
  border:1px solid rgba(247,207,122,.16);cursor:default}
.rd-chip b{font-size:10px;color:#f0c990}
.rd-chip.done{opacity:.45;text-decoration:line-through}
.rd-chip.current{color:#3a1000;font-weight:900;background:linear-gradient(100deg,#ffe6a8,#f7b955);
  border-color:#ffe6a8;box-shadow:0 0 0 2px rgba(247,207,122,.2)}
.rd-chip.current b{color:#3a1000}
.rd-chip.can-go{cursor:pointer}
.rd-chip.can-go:hover{filter:brightness(1.25)}
.rd-strip-label{flex:none;font-size:10px;color:#f0c990;font-weight:800;padding-right:4px}
@media(max-height:700px){.rd-strip{padding:2px 5px}.rd-chip{padding:1px 6px;font-size:10px}}

/* ============================================================
   v9.4 中间区：按环节类型专属呈现（不是把操作面板塞进来）
   ============================================================ */
.hidden{display:none!important}
.ms-stage-block{width:100%;font-size:clamp(13px,1.5vw,20px);line-height:1.75;color:#f0d6b4;text-align:left}
.ms-stage-block button,.ms-stage-block input,.ms-stage-block select{display:none!important}
.ms-sb-kicker{display:inline-block;padding:4px 12px;border-radius:99px;font-size:12px;font-weight:800;
  color:#3a1000;background:linear-gradient(100deg,#ffe6a8,#f7b955);margin-bottom:10px}
.ms-sb-title{font-size:clamp(22px,2.9vw,42px);font-weight:900;color:#fff6e2;margin:0 0 6px;letter-spacing:.06em}
.ms-sb-present{color:#f0c990;font-size:clamp(13px,1.5vw,19px);line-height:1.7;margin:0 0 12px}
.ms-sb-note{color:#d8b89a;font-size:13px;margin:0 0 12px}
.ms-sb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0}
.ms-sb-card{padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.06);
  border:1px solid rgba(247,207,122,.24);font-size:14px;color:#f4e2c8}
.ms-sb-card b{display:block;color:#ffe0a0;font-size:15px;margin-bottom:3px}
.ms-sb-card.cur{border-color:#f7cf7a;background:rgba(247,207,122,.18);box-shadow:0 0 0 2px rgba(247,207,122,.15)}
.ms-sb-card.done{opacity:.55}
.ms-sb-big{font-size:clamp(20px,3vw,40px);font-weight:900;color:#ffe0a0;text-align:center;padding:18px 0}
.ms-sb-table{width:100%;border-collapse:collapse;margin:8px 0;font-size:14px}
.ms-sb-table th,.ms-sb-table td{padding:6px 9px;text-align:left;border-bottom:1px solid rgba(247,207,122,.16)}
.ms-sb-table th{color:#ffe0a0;font-weight:800;font-size:12px}
.ms-sb-table td b{color:#ffd45e}
.ms-sb-quote{padding:12px 16px;border-left:3px solid #f7cf7a;background:rgba(247,207,122,.08);
  border-radius:0 10px 10px 0;color:#fff3dc;font-size:clamp(15px,1.9vw,25px);line-height:1.7}
.ms-sb-flow{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.ms-sb-flow span{padding:3px 8px;border-radius:6px;font-size:11.5px;color:#c9ad8d;
  background:rgba(247,207,122,.08);border:1px solid rgba(247,207,122,.18)}
.ms-sb-flow span.cur{color:#3a1000;font-weight:900;background:linear-gradient(100deg,#ffe6a8,#f7b955)}
.ms-sb-credits{margin-top:14px;padding:12px;border-radius:10px;text-align:center;
  color:#fff3dc;background:rgba(0,0,0,.35);border:1px solid rgba(247,207,122,.3)}
.main-stage.compact .ms-stage-block{max-width:820px;margin:0 auto}
/* v9.4：大屏中间区完整呈现，旧叠加面板与视图一律让位；全屏环节走 qz-fullscreen-layer */
.stage-present{margin-bottom:10px;padding:8px 11px;border-radius:8px;font-size:12px;line-height:1.6;
  color:#f0c990;background:rgba(247,207,122,.09);border-left:3px solid #f7cf7a}

/* ============================================================
   v9.4 信号 2/3/4 = 整屏换画面；信号 1 = 三栏主屏
   左栏固定「发言信号区」，右栏固定「排名区」，中间固定「题目 / 环节」
   ============================================================ */
.full-signal-layer{position:fixed;inset:0;z-index:80;display:none;flex-direction:column;
  align-items:center;justify-content:center;background:var(--bg-edge,#95221c);overflow:hidden}
body.bigscreen.full-signal .main-stage{display:none!important}
body.bigscreen.full-signal .full-signal-layer{display:flex}
.full-signal-layer>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  background:var(--bg-edge,#95221c);display:none}
.full-signal-layer.has-frame>img{display:block}
.full-signal-layer.mirror>img{transform:scaleX(-1)}
.fs-placeholder{position:relative;z-index:2;text-align:center;color:#ffe6b0;font-size:clamp(15px,2.2vw,28px);
  line-height:1.8;padding:20px;text-shadow:0 2px 12px rgba(0,0,0,.7)}
.full-signal-layer.has-frame .fs-placeholder{display:none}
.fs-head{position:absolute;z-index:3;top:clamp(12px,2vw,28px);left:0;right:0;display:flex;
  align-items:center;justify-content:center;gap:12px;padding:8px 18px;
  background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,0));color:#fff3dc;
  font-size:clamp(14px,1.8vw,26px);font-weight:900;letter-spacing:.06em}
.fs-live{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;
  background:#d5212c;color:#fff;font-size:12px;font-weight:900;letter-spacing:.12em;
  box-shadow:0 0 14px rgba(213,33,44,.6)}
.fs-foot{position:absolute;z-index:3;bottom:clamp(12px,2vw,28px);left:0;right:0;text-align:center;
  padding:9px 16px;font-size:clamp(11px,1.3vw,17px);color:#ffe6b0;
  background:linear-gradient(0deg,rgba(0,0,0,.72),rgba(0,0,0,0))}
.fs-foot b{color:#fff;padding:0 6px;border-radius:5px;background:#f7cf7a;color:#3a1000}
/* 左栏标签明确固定语义 */
.ms-sig{background:rgba(120,20,24,.6)!important}
.full-signal-layer.wide-bg>img{object-fit:contain}
.full-signal-layer.wide-bg .fs-placeholder{display:none!important}

/* ============================================================
   v9.4 月老台：只控制不展示主屏（避免内嵌预览与物理大屏不同步）
   ============================================================ */
body.host-page .pgm-monitor{display:none!important}
.host-no-preview{flex:none;display:flex;align-items:center;gap:8px;flex-wrap:nowrap;
  padding:4px 9px;border-radius:7px;font-size:10.5px;color:#f0c990;
  background:rgba(0,0,0,.28);border:1px dashed rgba(247,207,122,.3);overflow:hidden;white-space:nowrap}
.host-no-preview span:nth-child(2){color:#c9ad8d;overflow:hidden;text-overflow:ellipsis}
.host-no-preview .btn{margin-left:auto;flex:none;padding:2px 8px;font-size:10.5px}
.host-no-preview .tag{font-size:10px;padding:2px 7px}
.rd-chip.official b::after{content:'★';color:#ffe6a8;margin-left:2px}
@media(max-height:700px){.host-no-preview{padding:3px 7px;font-size:10px}}

/* ============================================================
   v9.4 嘉宾端：琴瑟和鸣本机选搭档 / 选组（竖屏不溢出）
   ============================================================ */
.team-box{padding:14px;border-radius:12px;margin-bottom:14px;
  background:linear-gradient(150deg,rgba(96,24,26,.55),rgba(24,8,10,.55));
  border:1px solid rgba(247,207,122,.4)}
.tb-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:16px;color:#ffe0a0;margin-bottom:8px}
.tb-turn{padding:9px 12px;border-radius:9px;font-size:14px;line-height:1.6;
  background:rgba(0,0,0,.3);border:1px solid rgba(247,207,122,.22);color:#fff3dc;margin-bottom:10px}
.tb-turn.my{background:rgba(247,207,122,.2);border-color:#f7cf7a;font-weight:800}
.tb-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;max-height:38vh;overflow:auto}
.tb-opt{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 10px;
  border-radius:9px;cursor:pointer;font-size:14px;font-weight:700;text-align:center;
  color:#f4e2c8;background:rgba(255,255,255,.06);border:2px solid rgba(247,207,122,.3);word-break:break-word}
.tb-opt:hover{border-color:#f7cf7a;background:rgba(247,207,122,.16)}
.tb-opt.sel{border-color:#ffd45e;background:rgba(247,207,122,.28)}
.tb-opt:disabled,.tb-opt.disabled{opacity:.45;cursor:not-allowed}
.tb-note{margin-top:10px;font-size:12px;line-height:1.6;color:#d8b89a}
@media(max-width:480px){.tb-list{grid-template-columns:repeat(2,minmax(0,1fr))}.tb-head{font-size:14px}}

/* v9.4 节目单：正式环节标记 + 子步骤细化 */
.rd-official{background:rgba(247,207,122,.3)!important;color:#fff3dc!important;font-weight:800}
.rd-steps{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.rd-steps span{padding:3px 8px;border-radius:6px;font-size:11px;color:#b99c7e;
  background:rgba(0,0,0,.25);border:1px solid rgba(247,207,122,.12)}
.rd-steps span.cur{color:#3a1000;font-weight:900;background:linear-gradient(100deg,#ffe6a8,#f7b955);border-color:#ffe6a8}
.rd-steps span.done{color:#9c8a72;text-decoration:line-through;opacity:.7}
.stage-steps{margin-bottom:10px;padding:7px 11px;border-radius:8px;font-size:11.5px;line-height:1.7;
  color:#d8b89a;background:rgba(0,0,0,.22);border:1px dashed rgba(247,207,122,.2)}

/* 大文本源：节目字幕（多行、字号倍率） */
.qz-lower-third .lt-inner{display:inline-flex;flex-direction:column;align-items:center;
  gap:clamp(4px,.6vh,12px);white-space:normal;max-width:96vw}
.qz-lower-third .lt-line{font-size:calc(clamp(28px,4vw,72px) * var(--lt-scale,1.5));
  font-weight:900;line-height:1.25;letter-spacing:clamp(2px,.5vw,9px);color:#fff6e2;
  text-shadow:0 3px 0 #8a2b1c,0 6px 20px rgba(0,0,0,.7);text-align:center;word-break:break-word}
.qz-lower-third .lt-deco{display:none}

/* 大文本源：片尾工作人员表与鸣谢，全屏逐行滚动 */
.qz-credits{position:fixed;inset:0;z-index:92;display:none;overflow:hidden;
  background:linear-gradient(180deg,rgba(24,6,10,.96),rgba(58,12,16,.96),rgba(24,6,10,.98));
  border-top:3px solid #f7cf7a}
.qz-credits.show{display:block}
.qz-credits .qc-roll{position:absolute;left:0;right:0;top:100%;
  display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.4vh,22px);
  padding:0 6vw;text-align:center;animation:qcRoll var(--qc-dur,40s) linear forwards}
.qz-credits .qc-line{font-size:clamp(30px,4.4vw,80px);font-weight:800;line-height:1.35;
  letter-spacing:.12em;color:#ffe9bd;text-shadow:0 3px 18px rgba(0,0,0,.7);word-break:break-word}
.qz-credits .qc-gap{height:clamp(14px,3vh,40px)}
@keyframes qcRoll{from{transform:translateY(0)}to{transform:translateY(-180%)}}


/* 可逆计分牌：覆盖式全屏，再点一次返回三栏 */
.qz-scoreboard{position:fixed;inset:0;z-index:86;display:none;padding:clamp(24px,4vh,60px) 6vw;
  background:linear-gradient(165deg,rgba(52,10,14,.97),rgba(18,5,9,.98));
  border-top:3px solid #f7cf7a;overflow:hidden}
.qz-scoreboard.show{display:flex;flex-direction:column}
.qz-scoreboard .sb-head{text-align:center;font-size:clamp(30px,4.2vw,72px);font-weight:900;
  letter-spacing:.16em;color:#ffe6b0;text-shadow:0 4px 18px rgba(0,0,0,.6);margin-bottom:clamp(16px,3vh,36px)}
.qz-scoreboard .sb-list{display:flex;flex-direction:column;gap:clamp(6px,1vh,14px);max-width:1100px;width:100%;margin:0 auto}
.qz-scoreboard .sb-row{display:flex;align-items:center;gap:clamp(10px,1.6vw,26px);
  padding:clamp(6px,1vh,14px) clamp(12px,2vw,28px);border-radius:10px;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.18)}
.qz-scoreboard .sb-row.top{background:linear-gradient(100deg,rgba(247,207,122,.28),rgba(247,207,122,.06));
  border-color:#f7cf7a}
.qz-scoreboard .sb-no{width:2.4em;text-align:center;font-size:clamp(16px,2vw,32px);font-weight:900;color:#f7cf7a}
.qz-scoreboard .sb-nm{flex:0 0 clamp(110px,16vw,240px);font-size:clamp(18px,2.4vw,38px);font-weight:800;color:#fff3dc}
.qz-scoreboard .sb-bar{flex:1;height:clamp(10px,1.4vh,20px);border-radius:99px;background:rgba(0,0,0,.4);overflow:hidden}
.qz-scoreboard .sb-bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#d99a3c,#ffe6a8)}
.qz-scoreboard .sb-sc{font-size:clamp(20px,2.8vw,44px);font-weight:900;color:#ffe6a8;min-width:2em;text-align:right}
.qz-scoreboard .sb-empty{text-align:center;padding:40px;font-size:clamp(20px,3vw,40px);color:#c9ad8d}
.qz-scoreboard .sb-foot{margin-top:auto;padding-top:20px;text-align:center;font-size:13px;color:#c9ad8d}

/* 心友所属：牵手成功特效 / 遗憾 */
.qz-heart-fx{position:fixed;inset:0;z-index:90;display:none;overflow:hidden;text-align:center;
  background:radial-gradient(ellipse at 50% 45%,rgba(120,26,46,.92),rgba(20,5,10,.97));
  border-top:3px solid #f7cf7a}
.qz-heart-fx.show{display:flex;flex-direction:column;align-items:center;justify-content:center}
.qz-heart-fx.regret{background:radial-gradient(ellipse at 50% 45%,rgba(46,36,58,.92),rgba(12,9,18,.97))}
.qz-heart-fx .hf-kicker{font-size:clamp(14px,1.8vw,28px);letter-spacing:.4em;color:#f0c990}
.qz-heart-fx h1{margin:clamp(8px,2vh,22px) 0;font-size:clamp(56px,11vw,190px);font-weight:900;
  letter-spacing:.12em;color:#ffe6b0;text-shadow:0 6px 0 #8a2b1c,0 14px 50px rgba(0,0,0,.7);
  animation:hfPop .8s cubic-bezier(.2,1.6,.4,1) both}
.qz-heart-fx.regret h1{color:#d9cbe8;text-shadow:0 6px 0 #3a2c50,0 14px 50px rgba(0,0,0,.7)}
@keyframes hfPop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
.qz-heart-fx .hf-pairs{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(10px,2vw,30px);margin-top:clamp(10px,2vh,28px)}
.qz-heart-fx .hf-pair{display:flex;align-items:center;gap:clamp(10px,1.6vw,24px);
  padding:clamp(8px,1.4vh,18px) clamp(16px,2.4vw,36px);border-radius:99px;
  background:rgba(255,255,255,.08);border:1px solid rgba(247,207,122,.45)}
.qz-heart-fx .hf-pair b{font-size:clamp(20px,2.8vw,46px);color:#fff3dc}
.qz-heart-fx .hf-pair span{font-size:clamp(22px,3vw,50px);color:#ff8fa8;animation:hfBeat 1s ease-in-out infinite}
@keyframes hfBeat{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
.qz-heart-fx .hf-regret{font-size:clamp(20px,3vw,46px);color:#d9cbe8;margin:clamp(10px,2vh,24px) 0 0}
.qz-heart-fx .hf-foot{margin-top:clamp(18px,4vh,50px);font-size:clamp(14px,1.8vw,26px);letter-spacing:.24em;color:#e7c9a0}
.qz-heart-fx .hf-hearts{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.qz-heart-fx .hf-heart{position:absolute;top:-8%;font-style:normal;font-size:clamp(18px,3vw,52px);
  color:rgba(255,150,180,.85);text-shadow:0 0 14px rgba(255,120,160,.7);
  animation:hfFall var(--d,4s) linear var(--delay,0s) infinite}
@keyframes hfFall{from{transform:translateY(-10vh) rotate(0);opacity:0}
  12%{opacity:1}to{transform:translateY(112vh) rotate(360deg);opacity:0}}
.qz-heart-fx.regret .hf-hearts{display:none}

/* 现场音乐启用提示（浏览器自动播放策略） */
.qz-audio-gate{position:fixed;right:14px;top:64px;z-index:120;padding:8px 14px;border-radius:99px;
  font-size:12px;font-weight:700;color:#3a1000;background:linear-gradient(100deg,#ffe6a8,#f7b955);
  box-shadow:0 6px 20px rgba(0,0,0,.5);pointer-events:none}

/* 月老台：现场音乐（点播） */
.bgm-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0;padding:5px 9px;
  border:1px solid rgba(247,207,122,.22);border-radius:9px;background:rgba(0,0,0,.22)}
.bgm-lbl{font-size:11px;font-weight:800;letter-spacing:.12em;color:#f0c990;padding-right:4px}
.bgm-btn{padding:3px 10px;border-radius:99px;border:1px solid rgba(247,207,122,.35);
  background:rgba(255,255,255,.04);color:#e8d4b8;font-size:11px;font-weight:700;cursor:pointer}
.bgm-btn:hover{border-color:#f7cf7a;color:#ffe6b0}
.bgm-btn.active{background:linear-gradient(100deg,#ffe6a8,#f7b955);color:#3a1000;border-color:transparent}
.bgm-btn.stop{border-color:rgba(255,120,130,.5);color:#ffb9bf}
.bgm-bar .tiny{margin-left:auto}

/* 嘉宾端：已提交的选择高亮 */
.tb-opt.picked{border-color:#f7cf7a;background:linear-gradient(100deg,rgba(247,207,122,.25),rgba(247,207,122,.08));color:#ffe6b0}

/* ============================================================
   统一弹窗：确认与输入（月老台为主），Enter=主按钮 / Esc=关闭
   ============================================================ */
.qz-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:18px}
.qz-modal .qm-mask{position:absolute;inset:0;background:rgba(14,4,8,.78);backdrop-filter:blur(5px)}
.qz-modal .qm-card{position:relative;width:min(560px,94vw);max-height:88vh;overflow:auto;
  border-radius:18px;border:2px solid #f7cf7a;padding:clamp(18px,2.6vw,30px);
  background:linear-gradient(155deg,rgba(88,22,26,.99),rgba(28,8,12,.99));
  box-shadow:0 22px 70px rgba(0,0,0,.7),0 0 0 6px rgba(247,207,122,.1);
  animation:qmIn .22s cubic-bezier(.2,1.3,.4,1) both}
@keyframes qmIn{from{opacity:0;transform:scale(.9) translateY(14px)}to{opacity:1;transform:none}}
.qm-head{margin-bottom:14px}
.qm-title{font-size:clamp(20px,2.4vw,30px);font-weight:900;letter-spacing:.04em;color:#ffe6b0}
.qm-sub{margin-top:5px;font-size:13px;color:#e7c9a0;letter-spacing:.02em}
.qm-body{min-height:40px;font-size:15px;color:#fff3dc}
.qm-detail{padding:12px 14px;border-radius:10px;background:rgba(255,255,255,.06);
  border:1px solid rgba(247,207,122,.22);line-height:1.7}
.qm-foot{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
.qm-foot .btn{min-width:104px;font-size:15px;padding:9px 16px}
.qm-foot .qm-primary{box-shadow:0 0 0 3px rgba(247,207,122,.22)}
.qm-tip{margin-top:10px;text-align:right;font-size:11px;color:#b99c7e;letter-spacing:.08em}

/* 票数录入 */
.vm-name{text-align:center;font-size:clamp(30px,4vw,52px);font-weight:900;color:#ffe6b0;letter-spacing:.08em;margin:6px 0 14px}
.vm-input{display:block;width:100%;box-sizing:border-box;padding:14px 16px;border-radius:12px;
  border:2px solid rgba(247,207,122,.55);background:rgba(0,0,0,.32);color:#fff3dc;
  font-size:clamp(26px,3.6vw,44px);font-weight:900;text-align:center;outline:none}
.vm-input:focus{border-color:#ffe6a8;box-shadow:0 0 0 4px rgba(247,207,122,.18)}
.vm-hint{margin-top:10px;text-align:center;font-size:12px;color:#c9ad8d}
.vm-paused{text-align:center;font-size:clamp(18px,2.2vw,28px);font-weight:800;color:#ffe6b0;padding:8px 0 14px}
.vm-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0}
.vm-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;
  background:rgba(255,255,255,.07);border:1px solid rgba(247,207,122,.25);font-size:12px;color:#e8d4b8}
.vm-chip b{font-size:15px;color:#ffe6a8}
.vm-top{max-width:560px}
.vm-top td,.vm-top th{padding:4px 8px;font-size:13px}

/* 大屏：众望所归（紧凑一屏，无滚动条） */
body.vote-stage .ms-mid,body.vote-stage .ms-question,body.vote-stage .ms-stage-block{overflow:hidden}
body.vote-stage .ms-sb-note{margin-top:6px}
.ms-vote-round{text-align:center;font-size:clamp(13px,1.5vw,21px);letter-spacing:.1em;color:#f0c990;margin-bottom:6px}
.ms-vote-last{display:flex;align-items:baseline;justify-content:center;gap:clamp(10px,2vw,26px);
  padding:clamp(6px,1vh,14px);margin-bottom:clamp(6px,1vh,14px);border-radius:12px;
  background:linear-gradient(100deg,rgba(247,207,122,.22),rgba(247,207,122,.04));
  border:1px solid rgba(247,207,122,.45)}
.ms-vote-last span{font-size:clamp(12px,1.4vw,18px);letter-spacing:.2em;color:#e7c9a0}
.ms-vote-last b{font-size:clamp(28px,4vw,62px);font-weight:900;color:#fff3dc}
.ms-vote-last em{font-style:normal;font-size:clamp(24px,3.4vw,52px);font-weight:900;color:#ffe6a8}
.ms-vote-top8{max-width:660px;margin:0 auto}
.ms-vote-cap{text-align:center;font-size:clamp(12px,1.4vw,18px);letter-spacing:.16em;color:#c9ad8d;margin-bottom:5px}
.ms-vote-row{display:flex;align-items:center;gap:clamp(8px,1.4vw,20px);
  padding:clamp(3px,.7vh,8px) clamp(10px,1.6vw,22px);margin-bottom:3px;border-radius:8px;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.14)}
.ms-vote-row.top{background:linear-gradient(100deg,rgba(247,207,122,.26),rgba(247,207,122,.05));border-color:#f7cf7a}
.ms-vote-row i{font-style:normal;width:2em;text-align:center;font-size:clamp(14px,1.7vw,24px);font-weight:900;color:#f7cf7a}
.ms-vote-row b{flex:1;font-size:clamp(15px,1.9vw,28px);color:#fff3dc}
.ms-vote-row span{font-size:clamp(14px,1.8vw,26px);font-weight:800;color:#ffe6a8}
.ms-vote-row u{text-decoration:none;font-size:clamp(12px,1.5vw,20px);color:#9fdca8;min-width:2.4em;text-align:right}
.ms-vote-pause{text-align:center;margin-top:8px;padding:5px 12px;border-radius:99px;
  background:rgba(247,207,122,.14);border:1px solid rgba(247,207,122,.4);
  font-size:clamp(12px,1.5vw,19px);color:#ffe6b0}

/* 选择弹窗：按钮网格替代下拉框 */
.qm-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;max-height:52vh;overflow:auto}
.qm-pick{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 12px;font-size:15px;font-weight:700}
.qm-pick small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:#b99c7e}
.qm-pick:hover{border-color:#f7cf7a;color:#ffe6b0}

.qm-label{margin:12px 0 6px;font-size:12px;font-weight:800;letter-spacing:.1em;color:#e7c9a0}
.qm-seg{display:flex;flex-wrap:wrap;gap:6px}
.qm-seg .btn{min-width:0;padding:5px 10px;font-size:12px}

/* ============================================================
   占位：开赛无画面/无排名用广告位图片；视频机位无信号用 logo
   ============================================================ */
.ph-ad{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  width:100%;height:100%;box-sizing:border-box;padding:12px;color:#e7c9a0}
.ph-ad img{width:100%;height:100%;max-height:82%;object-fit:contain;opacity:.92;
  filter:drop-shadow(0 6px 22px rgba(0,0,0,.45))}
.ph-ad span{font-size:clamp(11px,1.3vw,17px);letter-spacing:.12em;white-space:nowrap;opacity:.85}
.ms-right.ad-mode .ms-rank-list,.ms-right.ad-mode .ms-rank-foot{display:none}
.ms-rank-ad{display:flex;flex:1;min-height:0;align-items:center;justify-content:center}
.ms-rank-ad .ph-ad img{max-height:76%}
.ph-logo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  width:100%;height:100%;padding:8px;box-sizing:border-box;color:#d8b89a}
.ph-logo img{width:min(72%,120px);max-height:64%;object-fit:contain;opacity:.75;
  filter:drop-shadow(0 3px 12px rgba(0,0,0,.4))}
.ph-logo span{font-size:11px;letter-spacing:.08em;text-align:center;line-height:1.4}
.wb-ph .ph-logo img{width:min(46%,180px);max-height:60%}
.wb-ph .ph-logo span{font-size:14px}
.wt-ph .ph-logo img{width:min(58%,72px);max-height:58%}
.wt-ph .ph-logo span{font-size:9px}
.mon-cell .ph .ph-logo img{width:min(60%,54px);max-height:56%}
.mon-cell .ph .ph-logo span{font-size:9px}
.pg-ph .ph-logo img{width:min(40%,160px);max-height:56%}
.full-signal-layer .fs-placeholder .ph-ad img{max-height:46vh;max-width:52vw}
.full-signal-layer .fs-placeholder .ph-ad span{font-size:clamp(13px,1.8vw,22px)}

/* 天赐良媛：表白 + 自愿参与仪式 */
.ms-cere-progress{text-align:center;font-size:clamp(12px,1.4vw,18px);letter-spacing:.1em;color:#f0c990;margin-bottom:6px}
.ms-cere-speaker{text-align:center;padding:clamp(6px,1.2vh,16px);margin-bottom:8px;border-radius:12px;
  background:linear-gradient(120deg,rgba(247,207,122,.2),rgba(247,207,122,.03));
  border:1px solid rgba(247,207,122,.4)}
.ms-cere-from{display:block;font-size:clamp(11px,1.3vw,16px);letter-spacing:.16em;color:#c9ad8d}
.ms-cere-speaker b{display:block;font-size:clamp(26px,3.6vw,54px);font-weight:900;color:#fff3dc;margin:2px 0}
.ms-cere-speaker p{margin:0;font-size:clamp(14px,1.9vw,26px);color:#ffe6b0;line-height:1.6}
.ms-cere-cap{text-align:center;font-size:clamp(12px,1.4vw,18px);letter-spacing:.08em;color:#c9ad8d;margin:8px 0 5px}
.ms-cere-pairs{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.ms-cere-pair{min-width:190px;flex:0 1 260px;padding:6px 12px;border-radius:10px;text-align:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.2)}
.ms-cere-pair.join{background:rgba(159,220,168,.12);border-color:rgba(159,220,168,.6)}
.ms-cere-pair b{display:block;font-size:clamp(14px,1.8vw,24px);color:#fff3dc}
.ms-cere-pair span{font-size:clamp(10px,1.2vw,15px);color:#c9ad8d}


/* ============================================================
   v9.4 大屏零滚动条：所有容器裁切，内容用缩放与条数上限适配一屏
   ============================================================ */
body.bigscreen .ms-mid,
body.bigscreen .ms-question,
body.bigscreen .ms-stage-block,
body.bigscreen .ms-rank-list,
body.bigscreen .ms-right,
body.bigscreen .main-stage,
body.bigscreen .qz-scoreboard,
body.bigscreen .rd-strip{overflow:hidden!important;scrollbar-width:none}
body.bigscreen *::-webkit-scrollbar{width:0;height:0;display:none}
.ms-stage-block{max-height:100%;overflow:hidden}
.ms-stage-block .ms-sb-grid{max-height:44vh}
.ms-rank-row{padding:clamp(3px,.7vh,7px) 9px;font-size:clamp(11px,1.25vw,16px)}
.ms-rank-list .ms-rank-row:nth-child(n+13){display:none}
.qz-scoreboard .sb-list{flex:1;min-height:0;justify-content:center}
.qz-scoreboard .sb-row{flex:0 0 auto}

/* 出结果：下方字幕、滚动条、贴片一律下屏，不挡主屏 */
body.qz-result .qz-lower-third,
body.qz-result .qz-ticker,
body.qz-result .qz-ad-card{display:none!important;opacity:0!important}
body.qz-result.qz-ticker-on{padding-bottom:0}

/* ============================================================
   v9.4 输出屏 / 根滚动 / 监控墙角标 / 屏幕中间点按弹窗
   ============================================================ */
/* ① 右下角转动字标：OBS 输出屏也要在，层级压过所有叠加层，结果态也不隐藏 */
.qz-watermark{z-index:95!important;display:block!important}
body.qz-result .qz-watermark{display:block!important;opacity:.42!important}
body.obs .qz-watermark{display:block!important}

/* ② 大屏根滚动条：html/body 一起锁死，整页绝不出现「需要下拉」的滚动条 */
html.bigscreen-root,html.bigscreen-root body{height:100%!important;max-height:100%!important;
  overflow:hidden!important;overscroll-behavior:none}
html.bigscreen-root::-webkit-scrollbar,html.bigscreen-root body::-webkit-scrollbar{display:none!important;width:0;height:0}
body.bigscreen{height:100dvh!important}

/* ③ 监控墙：快捷键标到画面右上角，只标有对应机位的信号 */
.mon-cell .mon-key{position:absolute;right:5px;top:4px;bottom:auto;z-index:4;
  min-width:20px;text-align:center;font-size:12px;font-weight:900;color:#3a1000;
  background:linear-gradient(135deg,#ffe6a8,#f7b955);border-radius:5px;
  box-shadow:0 2px 8px rgba(0,0,0,.5)}
.mon-cell.no-source .mon-key{display:none}
.mon-cell .mon-lab{bottom:0;left:0;right:0;position:absolute;padding:3px 6px;
  font-size:11px;background:rgba(0,0,0,.72);color:#ffe0a0;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ④ 屏幕中间弹窗：点任意位置即可，不用翻到页面下方 */
.qz-tap-modal{position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;
  padding:16px;box-sizing:border-box}
.qz-tap-modal .qt-mask{position:absolute;inset:0;background:rgba(6,2,6,.78);backdrop-filter:blur(3px)}
.qz-tap-modal .qt-card{position:relative;z-index:2;width:min(520px,94vw);max-height:86vh;overflow:hidden;
  padding:clamp(18px,3vh,34px) clamp(16px,3vw,30px);border-radius:18px;text-align:center;
  background:linear-gradient(160deg,rgba(58,14,16,.98),rgba(24,7,10,.99));
  border:2px solid rgba(247,207,122,.65);box-shadow:0 24px 70px rgba(0,0,0,.7);
  cursor:pointer;animation:qtIn .22s ease-out both}
@keyframes qtIn{from{opacity:0;transform:scale(.92) translateY(14px)}to{opacity:1;transform:none}}
.qz-tap-modal .qt-title{font-size:clamp(22px,4.2vw,38px);font-weight:900;color:#fff3dc;line-height:1.35}
.qz-tap-modal .qt-sub{margin-top:8px;font-size:clamp(13px,2vw,19px);color:#f0c990;line-height:1.6}
.qz-tap-modal .qt-html{margin-top:12px;font-size:clamp(14px,2.2vw,22px);color:#ffe6b0;line-height:1.7}
.qz-tap-modal .qt-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:18px}
.qz-tap-modal .qt-btn{padding:14px 12px;border-radius:12px;font-size:clamp(15px,2.2vw,22px);font-weight:800;
  color:#ffe6b0;background:rgba(255,255,255,.07);border:1px solid rgba(247,207,122,.42);cursor:pointer}
.qz-tap-modal .qt-btn.primary{color:#3a1000;background:linear-gradient(100deg,#ffe6a8,#f7b955);border-color:#ffe6a8}
.qz-tap-modal .qt-tip{margin-top:14px;font-size:12px;letter-spacing:.08em;color:#b89a7e}

/* ============================================================
   v9.4 月老导播台：快捷键浮窗 + 一屏不上下滑
   ============================================================ */
.hotkey-panel{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:16px}
.hotkey-panel.hidden{display:none}
.hotkey-panel .hk-mask{position:absolute;inset:0;background:rgba(5,2,6,.76)}
.hotkey-panel .hk-win{position:relative;z-index:2;width:min(720px,96vw);max-height:84vh;overflow:hidden;
  display:flex;flex-direction:column;border-radius:16px;padding:14px 16px;
  background:linear-gradient(160deg,rgba(52,12,14,.99),rgba(20,6,9,.99));
  border:2px solid rgba(247,207,122,.6);box-shadow:0 24px 70px rgba(0,0,0,.7)}
.hotkey-panel .hk-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none;
  padding-bottom:10px;border-bottom:1px solid rgba(247,207,122,.3)}
.hotkey-panel .hk-head b{font-size:18px;color:#ffe6b0}
.hotkey-panel .hk-head span{font-size:12px;color:#c9ad8d}
.hotkey-panel .hk-head .btn{margin-left:auto}
.hk-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;
  padding:12px 0;overflow:auto;flex:1;min-height:0}
.hk-item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;text-align:left;
  color:#f0d6b4;background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.24);cursor:pointer}
.hk-item:hover{border-color:#f7cf7a;background:rgba(247,207,122,.12)}
.hk-item kbd{min-width:34px;padding:3px 7px;border-radius:6px;text-align:center;font-size:13px;font-weight:900;
  color:#3a1000;background:linear-gradient(135deg,#ffe6a8,#f7b955)}
.hk-item span{font-size:13px;line-height:1.35}
.hotkey-panel .hk-foot{flex:none;padding-top:8px;border-top:1px solid rgba(247,207,122,.2);
  font-size:11px;color:#a88d76;line-height:1.5}
/* 导播台一屏：顶栏/信号条/监控墙/当前环节窗全部固定，其余折叠区不撑高页面 */
body.host-page{height:100vh;overflow:hidden}
body.host-page .wrap{height:100vh;display:flex;flex-direction:column;overflow:hidden;padding-bottom:6px}
body.host-page .wrap>*{flex:none}
body.host-page #activeStageWin{flex:1;min-height:0;overflow:hidden}
body.host-page .fold{flex:none}
body.host-page .fold[open] .fold-body{max-height:18vh;overflow:auto}
body.host-page .mon-wall{flex:none}

/* ============================================================
   v9.4 三栏信息条 / 12 人榜单 / 模块化 PPT 模板 / 装修行
   ============================================================ */
/* ① 下一位准备 / 当前发言 / 排名摘要：统一固定在走马灯上方 */
.ms-info-strip{position:fixed;left:0;right:0;bottom:0;z-index:57;
  height:clamp(26px,3.4vh,38px);display:grid;grid-template-columns:1fr 1.5fr 1fr;
  align-items:center;gap:10px;padding:0 1.2vw;box-sizing:border-box;
  background:linear-gradient(90deg,rgba(28,7,10,.96),rgba(52,14,16,.94),rgba(28,7,10,.96));
  border-top:1px solid rgba(247,207,122,.42);font-size:clamp(11px,1.25vw,17px)}
body.qz-ticker-on .ms-info-strip{bottom:clamp(34px,4.6vh,52px)}
.ms-info-strip .ms-next{display:flex;align-items:center;gap:7px;padding:0;margin:0;border:0;
  background:none;overflow:hidden;white-space:nowrap}
.ms-info-strip .ms-next-dot{width:9px;height:9px;flex:none}
.ms-info-strip .ms-next-lbl{color:#ffd45e;font-weight:800}
.ms-info-strip .ms-next b{margin-left:0;color:#fff3d4;font-size:inherit;overflow:hidden;text-overflow:ellipsis}
.ms-info-strip .ms-info-mid{text-align:center;color:#ffe0a0;font-weight:800;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ms-info-strip .ms-info-right{text-align:right;color:#d8b89a;
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
body.bigscreen .main-stage{padding-bottom:clamp(30px,3.8vh,44px)}
body.bigscreen.qz-ticker-on .main-stage{padding-bottom:clamp(72px,9vh,96px)}

/* ② 右栏 12 人两列；中间 12 人票数榜两列，6 名以后也看得见 */
.ms-rank-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:minmax(0,1fr);gap:4px 7px;align-content:start}
.ms-rank-row{padding:clamp(2px,.55vh,6px) 7px;font-size:clamp(10px,1.1vw,15px)}
.ms-rank12{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;margin:10px 0}
.ms-rank12 .r12{display:flex;align-items:center;gap:7px;padding:5px 9px;border-radius:8px;
  background:rgba(255,255,255,.05);border:1px solid rgba(247,207,122,.2);
  font-size:clamp(11px,1.25vw,18px);color:#f0d6b4;min-width:0}
.ms-rank12 .r12 i{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:5px;
  background:rgba(247,207,122,.2);color:#ffe0a0;font-weight:900;font-style:normal;font-size:11px}
.ms-rank12 .r12 b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}
.ms-rank12 .r12 span{margin-left:auto;color:#ffd873;font-weight:900;white-space:nowrap}
.ms-vote-top8{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px}
.ms-vote-row{padding:5px 9px;min-width:0}
.ms-sb-table{display:none}

/* ③ 模块化模板：不自动翻页 = 装修页铺开；自动翻页 = PPT 单页 */
.ms-tpl-page{display:flex;flex-direction:column;gap:9px;max-height:100%;overflow:hidden}
.ms-tpl-block{position:relative;padding:9px 12px 10px;border-radius:11px;
  background:rgba(255,255,255,.035);border:1px solid rgba(247,207,122,.2)}
.ms-tpl-tag{display:inline-block;margin-bottom:5px;padding:2px 8px;border-radius:99px;
  font-size:10px;font-weight:800;color:#3a1000;background:linear-gradient(135deg,#ffe6a8,#f7b955)}
.ms-tpl-slide{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(10px,2vh,26px);border-radius:14px;
  background:linear-gradient(155deg,rgba(60,16,18,.92),rgba(22,7,10,.96));
  border:2px solid rgba(247,207,122,.45);animation:qtIn .35s ease-out both}
.ms-tpl-kicker{position:absolute;top:12px;left:18px;font-size:12px;font-weight:800;color:#f0c990;letter-spacing:.06em}
.ms-tpl-slide .ms-sb-big{font-size:clamp(26px,4vw,64px)}
.ms-tpl-slide .ms-rank12,.ms-tpl-slide .ms-vote-top8{max-height:52vh}
.ms-tpl-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:7px}
.ms-tpl-dots i{width:8px;height:8px;border-radius:50%;background:rgba(247,207,122,.3)}
.ms-tpl-dots i.on{background:#ffe6a8;box-shadow:0 0 10px #f7cf7a;transform:scale(1.25)}

/* ④ 后台流程：装修式组件行 */
.stage-template,.stage-talent{margin-top:10px;padding:10px 12px;border-radius:10px;
  background:rgba(247,207,122,.06);border:1px dashed rgba(247,207,122,.35)}
.stage-template h5,.stage-talent h5{margin:0 0 8px;font-size:13px;color:#ffe0a0}
.se-blocks{margin:8px 0}
.se-talent-row{display:inline-flex;align-items:center;gap:4px;margin:3px 5px 3px 0}
.se-talent-row select{max-width:78px;padding:2px 4px;font-size:11px}

/* ⑤ 轻量观战页：直播同步（单一正播画面 + 12 人榜） */
.view-live{position:relative;width:100%;aspect-ratio:16/9;max-height:44vh;border-radius:12px;overflow:hidden;
  background:#08040a;border:2px solid rgba(247,207,122,.45)}
.view-live img{width:100%;height:100%;object-fit:contain;display:none;background:#95221c}
.view-live.has-frame img{display:block}
.view-live .vl-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;
  color:#f0c990;font-size:14px;padding:16px}
.view-live.has-frame .vl-ph{display:none}
.view-live .vl-live{position:absolute;left:10px;top:10px;padding:3px 9px;border-radius:6px;
  font-size:12px;font-weight:900;color:#fff;background:#e33;letter-spacing:.08em}
.view-live .vl-name{position:absolute;left:0;right:0;bottom:0;padding:6px 10px;
  font-size:13px;font-weight:800;color:#ffe6b0;background:rgba(0,0,0,.7)}
.view-rank12{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.view-rank12 .vr{display:flex;align-items:center;gap:7px;padding:6px 9px;border-radius:8px;
  background:rgba(255,255,255,.045);border:1px solid rgba(247,207,122,.2);font-size:13px;color:#f0d6b4}
.view-rank12 .vr i{font-style:normal;font-weight:900;color:#ffd873;width:20px}
.view-rank12 .vr span{margin-left:auto;font-weight:900;color:#ffe6b0}
/* 有实时题目时：题目卡优先，模板作为下方紧凑 PPT 页，不抢主内容 */
.ms-question.has-tpl{justify-content:flex-start}
.ms-stage-block.tpl-compact{flex:none;max-height:34%;margin-top:8px;overflow:hidden}
.ms-stage-block.tpl-compact .ms-sb-big{font-size:clamp(16px,2vw,30px)}
.ms-stage-block.tpl-compact .ms-rank12,.ms-stage-block.tpl-compact .ms-tpl-slide{font-size:.82em}
