:root{--admin-drawer-width:460px;--admin-gold:#efc681;--admin-ink:#0b1a28}
body.draw-console{overflow-x:hidden;padding-bottom:34px}
body.draw-console.is-ready.has-guest-button-cursor,body.draw-console.is-ready.has-guest-button-cursor *{cursor:none!important}
#guest-button-cursor{position:fixed;z-index:2147483647;top:50%;left:50%;width:clamp(190px,24vmin,300px);height:auto;opacity:0;pointer-events:none;user-select:none;transform:translate(-50%,-18%) scale(.72);transform-origin:50% 18%;filter:drop-shadow(0 15px 18px #0008);transition:opacity .16s ease,transform .2s cubic-bezier(.2,.8,.2,1);will-change:left,top,transform}
body.draw-console.is-ready.has-guest-button-cursor #guest-button-cursor{opacity:1;transform:translate(-50%,-18%) scale(1)}
html.stage-page body.stage-controlled.stage-guest-cursor-visible #guest-button-cursor{opacity:1;transform:translate(-50%,-18%) scale(1)}
#stage-mirror-cursor{position:fixed;z-index:2147483647;top:50%;left:50%;width:32px;height:44px;opacity:0;pointer-events:none;filter:drop-shadow(0 3px 4px #000b);transform:translate(-3px,-2px);transition:opacity .08s linear;will-change:left,top}
html.stage-page body.stage-controlled.stage-mirror-cursor-visible #stage-mirror-cursor{opacity:1}
@media(prefers-reduced-motion:reduce){#guest-button-cursor{transition:opacity .08s linear}}
body.draw-console header{min-height:78px;padding:14px 104px 10px 4vw;letter-spacing:0;transition:padding .2s ease}
#draw-event-meta{display:grid;gap:2px;width:fit-content;max-width:min(760px,72vw);line-height:1.25;text-align:center}#draw-event-meta strong{overflow:hidden;color:#fff5df;font-size:16px;text-overflow:ellipsis;white-space:nowrap}#draw-event-meta small{overflow:hidden;color:#efc681;font-size:18px;text-overflow:ellipsis;white-space:nowrap}#draw-event-meta em{font-style:normal}
body.draw-console.is-waiting-prize header{position:fixed;z-index:3;top:calc(102px - clamp(16px,1.86vw,30px));left:0;right:0;min-height:0;justify-content:center;padding:0 104px}body.draw-console.is-waiting-prize #draw-event-meta{width:min(1495px,calc(100vw - 208px));max-width:none;gap:0;text-align:center}body.draw-console.is-waiting-prize #draw-event-meta strong{font-size:clamp(16px,1.86vw,30px);line-height:1}body.draw-console.is-waiting-prize #draw-event-meta small{font-size:clamp(25px,3vw,48px);line-height:1.5}
#draw-prize-drawer{position:fixed;z-index:50;left:10px;top:50%;bottom:auto;width:var(--admin-drawer-width);height:min(97.5vh,975px);max-height:calc(100vh - 10px);background:#f5f7f9;color:#183145;border:1px solid #c6d3dc;border-radius:14px;box-shadow:0 16px 44px #0009;transform:translateY(-50%);transition:transform .22s ease}
.drawer-collapsed #draw-prize-drawer{transform:translate(calc(-100% - 10px),-50%)}
#draw-prize-toggle{position:absolute;top:calc(50% - 58px);right:-42px;width:42px;height:116px;padding:7px 3px;border:0;border-radius:0 10px 10px 0;background:#dca84d;color:#102033;writing-mode:vertical-rl;font-weight:800;box-shadow:8px 4px 22px #0004}
#draw-prize-toggle b{font-size:21px;transition:transform .2s}.drawer-collapsed #draw-prize-toggle b{transform:rotate(180deg)}
#draw-reload{position:absolute;top:min(calc(50% + 290px),calc(100vh - 126px));right:-42px;width:42px;height:116px;padding:7px 3px;border:0;border-radius:0 10px 10px 0;background:#dca84d;color:#102033;writing-mode:vertical-rl;font:inherit;font-weight:800;box-shadow:8px 4px 22px #0004}#draw-reload:hover{filter:brightness(1.08)}
#draw-prize-panel{height:100%;overflow:auto;padding:28px 20px 42px;border-radius:14px;scrollbar-gutter:stable}.draw-console #draw-prize-panel>.drawer-heading{cursor:move;touch-action:none;user-select:none}
.drawer-heading{display:flex;align-items:end;justify-content:space-between;gap:12px}.drawer-heading small{color:#9b681d;letter-spacing:.1em}.drawer-heading h2{margin:3px 0 0;font-size:24px}.drawer-heading>span{color:#6b7d89;font-size:13px}
#draw-prize-panel label{display:block;margin:17px 0 6px;font-weight:700}#draw-prize-panel input,#draw-prize-panel select{width:100%;min-height:42px;padding:8px 10px;border:1px solid #9badbc;border-radius:7px;background:#fff;color:#183145;font:inherit}#draw-prize-panel button:not(#draw-prize-toggle){font:inherit}
#draw-prize-list{display:grid;gap:8px;margin:14px 0 20px}
.draw-prize-item{display:grid;grid-template-columns:minmax(4.5em,.75fr) minmax(0,1.8fr) auto;grid-template-areas:"name gift count";align-items:center;gap:10px;width:100%;min-height:64px;margin:0;padding:11px 14px;text-align:left;background:#fff!important;color:#183145!important;border:1px solid #cad7e0!important;border-radius:8px!important}
.draw-prize-item:hover,.draw-prize-item.is-selected{background:#e8f1f7!important;border-color:#1d668f!important;box-shadow:inset 4px 0 #1d668f}.draw-prize-item.is-complete{background:#e7ecef!important;color:#677782!important;border-color:#c5cfd6!important}.draw-prize-item .name{grid-area:name;font-size:21px;font-weight:900;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-prize-item .gift{grid-area:gift;font-size:21px;font-weight:900;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-prize-item .count{grid-area:count;align-self:center;padding:4px 9px;border-radius:999px;background:#e3b75f;color:#182838;font-size:21px;font-weight:900;line-height:1.25;white-space:nowrap}
#draw-prize-panel details{padding:10px 0;border-top:1px solid #d5dfe5}#draw-prize-panel summary{cursor:pointer;font-weight:800}#draw-prize-panel details button{width:100%;margin-top:10px;background:#154c71;border-color:#154c71;color:#fff}#draw-prize-panel details p{font-size:13px;color:#687986}
.drawer-winners{margin-top:18px;padding-top:15px;border-top:1px solid #d5dfe5}.drawer-winners h3{margin:0 0 10px}.drawer-winner{display:grid;grid-template-columns:30px 1fr;gap:0 8px;padding:9px 0;border-bottom:1px solid #dce4e9}.drawer-winner>span{grid-row:1/3;color:#a66f1d;font-weight:900}.drawer-winner small{color:#6d7e89}
#draw-side-rail{position:fixed;z-index:45;right:0;top:76px;bottom:70px;width:94px;display:flex;flex-direction:column;align-items:end;justify-content:space-between;gap:18px;pointer-events:none}
#draw-count-summary{display:grid;gap:9px;width:88px;pointer-events:auto;transform:translateY(88px)}.draw-count-card,#draw-action-rail button{overflow:hidden;width:88px;padding:0;border:1px solid #efc681;border-right:0;border-radius:12px 0 0 12px;background:#081826eF;box-shadow:-8px 7px 26px #0005;text-align:center}.draw-count-card span,#draw-action-rail button span{display:block;width:100%;padding:5px 3px;background:#dca84d;color:#142437;font-size:14px;font-weight:900;writing-mode:horizontal-tb}.draw-count-card strong,#draw-action-rail button strong{display:grid;place-items:center;min-height:58px;padding:4px 3px;color:#fff5df;font-size:clamp(32px,4vw,48px);font-variant-numeric:tabular-nums;line-height:1.2;writing-mode:horizontal-tb}
#draw-winner-rail{position:relative;width:88px;margin:auto 0;pointer-events:auto}#draw-winner-toggle{display:grid;grid-template-columns:1fr auto;grid-template-areas:"first arrow" "second arrow";align-items:center;width:88px;min-height:78px;margin:0;padding:9px 5px 9px 12px;border:1px solid #efc681;border-right:0;border-radius:12px 0 0 12px;background:#081826ef;color:#fff5df;font:inherit;font-size:18px;font-weight:900;line-height:1.1;text-align:left;box-shadow:-8px 7px 26px #0005}#draw-winner-toggle span:first-child{grid-area:first}#draw-winner-toggle span:nth-child(2){grid-area:second}#draw-winner-toggle b{grid-area:arrow;color:#efc681;font-size:24px}#draw-winner-toggle:hover,#draw-winner-toggle[aria-expanded="true"]{background:#102d42;box-shadow:-8px 7px 26px #0007,0 0 18px #efc68144}#draw-winner-panel{position:fixed;right:98px;top:50%;width:min(560px,calc(100vw - 125px));height:min(97.5vh,975px);max-height:calc(100vh - 10px);overflow:auto;transform:translateY(-50%);border:1px solid #efc681;border-radius:14px;background:#081826f5;box-shadow:0 16px 44px #0009;color:#fff5df;text-align:left;scrollbar-gutter:stable}#draw-winner-panel h2{position:sticky;z-index:1;top:0;margin:0;padding:14px 18px;border-bottom:1px solid #efc68188;background:#081826fa;color:#efc681;font-size:24px;cursor:move;touch-action:none;user-select:none}#draw-winner-panel h2::after{content:'拖曳移動';float:right;padding-top:6px;color:#9eb1be;font-size:14px;font-weight:400}.draw-winner-group{padding:16px 18px;border-bottom:1px solid #7891a544}.draw-winner-group:last-child{border-bottom:0}.draw-winner-group h3{margin:0 0 10px;color:#efc681;font-size:21px;font-weight:900}.draw-winner-row{display:grid;grid-template-columns:minmax(4.5em,1.2fr) minmax(5.5em,1fr) minmax(4em,1fr) minmax(4em,1fr);gap:10px;padding:9px 0;border-top:1px solid #7891a52e;align-items:start;font-size:21px;line-height:1.4}.draw-winner-row:first-of-type{border-top:0}.draw-winner-row span{min-width:0;overflow-wrap:anywhere}.draw-winner-row .name{font-weight:900}.draw-winner-row .code{color:#ffe2a0;font-variant-numeric:tabular-nums}.draw-winner-row .organization,.draw-winner-row .title{color:#c8d7e1}.draw-winner-empty{margin:0;padding:22px;color:#c8d7e1;font-size:21px;text-align:center}
#draw-action-rail{display:grid;gap:10px;pointer-events:auto;transform:translateY(-88px)}#draw-action-rail button{display:grid;grid-template-rows:30px minmax(62px,auto);min-height:92px;background:#081826ef;color:#fff5df;font:inherit;text-shadow:0 2px 4px #0009}#draw-action-rail button>.draw-action-cap{display:block;width:100%;height:30px;padding:0;background:#dca84d}#draw-action-rail button>strong{display:grid;place-content:center;gap:0;min-height:62px;padding:5px 3px;background:#081826ef;color:#fff5df;font-size:28px;line-height:1.05;letter-spacing:.04em}#draw-action-rail button>strong b{display:block;font:inherit;white-space:nowrap}#draw-start>strong{font-size:34px}#draw-action-rail button:not(:disabled):hover,#draw-action-rail button.is-ready{border-color:#fff1bd;box-shadow:-8px 7px 26px #0007,0 0 18px #efc68155;filter:brightness(1.08)}#draw-action-rail button:disabled{opacity:1;cursor:not-allowed;filter:saturate(.65) brightness(.82)}
#draw-console-message{display:none!important;min-height:0;margin:0}
body.draw-console main{padding-left:6vw;padding-right:6vw}.draw-console #event-name{position:relative;z-index:3;width:100%;text-align:center}.draw-console #event-name .draw-prize-kind{position:absolute;left:0;right:0;bottom:100%;display:block;font-size:.62em;line-height:1}.draw-console #event-name .draw-prize-name{display:block;color:inherit;font:inherit}.draw-console #spotlight{min-height:340px;display:grid;grid-template-columns:minmax(0,1fr);align-content:center}.draw-console #spotlight:has(.lighting-slots){min-height:0;margin-top:18px}.draw-console #prize{width:100%;text-align:center}.draw-console #history-panel{display:none!important}.draw-console #history-panel ol{max-height:0;overflow-y:auto}
.draw-console #spotlight:not(:has(.lighting-slots)),.draw-console #spotlight.number-result:not(:has(.lighting-slots)){background-color:transparent!important;background-image:none!important;border-color:transparent!important;box-shadow:none!important}
.draw-console #history-panel li{text-align:center}
.draw-console.is-waiting-prize #spotlight{background:transparent!important;border-color:transparent!important;box-shadow:none!important}
.draw-console.is-waiting-prize #prize,.draw-console.is-waiting-prize #winner-name,.draw-console.is-waiting-prize #winner-organization,.draw-console.is-waiting-prize #history-panel,.draw-console.is-waiting-prize #control-result-row{display:none!important}
.draw-console #spotlight:has(#winner-code.draw-stage-prompt) #prize,.draw-console #spotlight:has(#winner-code.draw-stage-prompt) #winner-name,.draw-console #spotlight:has(#winner-code.draw-stage-prompt) #winner-organization{display:none!important}
.draw-console #winner-code.draw-stage-prompt{position:fixed;z-index:4;top:50%;left:max(96px,6vw);right:max(96px,6vw);display:grid;place-content:center;gap:12px;width:auto;min-height:1.4em;margin:0;padding:0;color:#fff5df;font-size:clamp(38px,5vw,72px);font-weight:700;letter-spacing:0;line-height:1.25;text-align:center;text-shadow:0 3px 14px #000b;transform:translateY(-50%);pointer-events:none}
.draw-console #winner-code.draw-stage-prompt>span,.draw-console #winner-code.draw-stage-prompt>strong{display:block;overflow-wrap:anywhere}.draw-console #winner-code.draw-stage-prompt:has(strong)>span{font-size:.62em}.draw-console #winner-code.draw-stage-prompt strong{color:#efc681;font-size:1em}
.draw-console #winner-code.draw-stage-prompt .draw-stage-marquee{justify-self:center;width:10em;overflow:hidden;overflow-wrap:normal;text-align:left;white-space:nowrap}
.draw-console #winner-code.draw-stage-prompt .draw-stage-marquee>span{display:block;width:4em;white-space:nowrap;animation:draw-stage-marquee 3.2s linear infinite alternate;will-change:transform}
@keyframes draw-stage-marquee{from{transform:translateX(0)}to{transform:translateX(6em)}}
.draw-console.is-waiting-prize #draw-console-message{visibility:hidden}
.draw-console #settings-drawer-toggle{min-width:180px}.draw-console #settings-drawer-toggle::after{content:'  抽獎方式／背景';font-size:13px;margin-left:8px}
.draw-console #settings-drawer-panel{padding-left:max(5vw,70px);padding-right:max(5vw,70px)}
.draw-console #control-result-row:not(.has-result){display:none}.draw-console #settings-drawer-panel .drawer-audio-settings{visibility:visible;max-width:960px;margin:24px auto 6px;padding:18px 22px;border-top:1px solid #efc68166;border-bottom:1px solid #efc68166;background:#08182699}.draw-console #settings-drawer-panel .drawer-audio-settings label{font-size:16px;font-weight:800}.draw-console #settings-drawer-panel .drawer-audio-settings input[type=range]{height:32px}
.draw-console #settings-drawer-panel .display-controls{display:grid;grid-template-columns:104px repeat(2,42px) calc(8em + 40px) calc(5em + 40px) calc(5em + 40px) repeat(2,42px) 104px;grid-template-areas:"full before1 before2 display background effect after1 after2 back" ". . . screen screen screen . . .";align-items:end;gap:12px;justify-content:center}.draw-console #settings-drawer-panel .display-controls>label{display:grid;align-items:start;gap:6px}.draw-console #settings-drawer-panel .display-controls select{width:100%;min-height:42px}.setting-screen{grid-area:screen;justify-self:center;width:min(220px,100%)}.setting-display{grid-area:display}.setting-background{grid-area:background}.setting-effect{grid-area:effect}.spacer-before-1{grid-area:before1}.spacer-before-2{grid-area:before2}.spacer-after-1{grid-area:after1}.spacer-after-2{grid-area:after2}.settings-spacer{display:block;width:42px;min-height:42px;border:1px solid transparent;pointer-events:none}#fullscreen{grid-area:full}#draw-back-admin{grid-area:back}.display-controls>#fullscreen,.display-controls>#draw-back-admin{display:inline-grid;place-items:center;width:104px;min-height:42px;margin:0;padding:8px 12px;border:1px solid #7891a5;border-radius:6px;color:#fff5df;background:#142a3e;text-decoration:none;font-weight:700}.display-controls>#draw-back-admin:focus-visible{outline:2px solid #efc681;outline-offset:3px}
body.draw-console.is-ready #spotlight:not(:has(.lighting-slots)){background:transparent!important;border-color:transparent!important;box-shadow:none!important}body.draw-console.is-ready #winner-info{display:none!important}
@media(max-width:960px){.draw-console #settings-drawer-panel{padding-left:18px;padding-right:18px}.draw-console #settings-drawer-panel .display-controls{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(160px,.7fr));grid-template-areas:"display background effect" "screen screen screen" "full . back";gap:12px}.settings-spacer{display:none}.display-controls>#fullscreen{justify-self:start}.display-controls>#draw-back-admin{justify-self:end}}
@media(max-height:780px){#draw-side-rail{top:54px;bottom:52px}#draw-count-summary{transform:translateY(70px)}#draw-action-rail{transform:translateY(-70px)}.draw-count-card strong{min-height:42px;font-size:30px}#draw-action-rail button{grid-template-rows:26px minmax(48px,auto);min-height:74px}#draw-action-rail button>.draw-action-cap{height:26px}#draw-action-rail button>strong{min-height:48px}}
@media(max-height:620px){body.draw-console header{min-height:54px;padding-top:8px;padding-bottom:6px}body.draw-console.is-waiting-prize header{top:calc(62px - clamp(14px,3.1vh,20px));min-height:0;padding-top:0;padding-bottom:0}body.draw-console.is-waiting-prize #draw-event-meta strong{font-size:clamp(14px,3.1vh,20px)}body.draw-console.is-waiting-prize #draw-event-meta small{font-size:clamp(22px,5vh,32px);line-height:1.15}body.draw-console main{padding-top:4px}.draw-console #event-name{min-height:1.15em;margin:4px 0 8px;font-size:clamp(22px,5vh,32px);line-height:1.15}.draw-console #spotlight:has(.lighting-slots){margin-top:0;padding-top:24px;padding-bottom:24px}.draw-console #spotlight:has(#winner-code.classic-wood){padding-top:38px;padding-bottom:22px}}
@media(max-width:720px){:root{--admin-drawer-width:min(94vw,460px)}body.draw-console header{padding:10px 78px 8px 18px}#draw-event-meta{max-width:calc(100vw - 104px)}#draw-event-meta strong{font-size:16px}#draw-event-meta small{font-size:18px}body.draw-console.is-waiting-prize header{top:calc(98px - clamp(16px,1.86vw,30px));padding:0 78px}body.draw-console.is-waiting-prize #draw-event-meta{width:100%}.draw-console #winner-code.draw-stage-prompt{left:76px;right:76px}body.draw-console main{padding:8px 76px 48px 18px}.draw-console #spotlight{min-height:280px}#draw-side-rail{width:76px}#draw-count-summary,.draw-count-card,#draw-winner-rail,#draw-winner-toggle,#draw-action-rail button{width:70px}#draw-winner-toggle{padding-left:8px;font-size:15px}#draw-winner-panel{right:78px;width:calc(100vw - 98px);height:calc(100vh - 10px)}.draw-winner-row{grid-template-columns:1fr 1fr;font-size:21px}.draw-count-card span{font-size:12px}.draw-count-card strong{font-size:28px}#draw-action-rail button>strong{font-size:23px}#draw-start>strong{font-size:29px}#draw-prize-toggle,#draw-reload{right:-38px;width:38px}.draw-console #settings-drawer-toggle{min-width:130px}.draw-console #settings-drawer-toggle::after{content:'  設定';font-size:12px}.draw-console #settings-drawer-panel .display-controls{grid-template-columns:1fr;grid-template-areas:"screen" "display" "background" "effect" "full" "back"}.display-controls>#fullscreen,.display-controls>#draw-back-admin{justify-self:center}}

/* 雙螢幕前台：直接沿用單螢幕舞台的資訊層級，只保留觀眾需要看見的內容。 */
html.stage-page,html.stage-page body{width:100%;height:100%;overflow:hidden}
html.stage-page #settings-drawer,html.stage-page .audio-sliders,html.stage-page #connection{display:none!important}
html.stage-page body.stage-controlled{min-height:100vh;padding:0}
html.stage-page body.stage-controlled #stage-header,
html.stage-page body.stage-controlled.is-waiting-prize #stage-header{position:fixed;z-index:5;top:clamp(22px,5vh,54px);left:7vw;right:7vw;display:flex;justify-content:center;min-height:0;padding:0;letter-spacing:0;background:transparent;border:0;pointer-events:none}
html.stage-page body.stage-controlled #draw-event-meta,
html.stage-page body.stage-controlled.is-waiting-prize #draw-event-meta{display:grid;width:min(1495px,86vw);max-width:none;gap:2px;text-align:center;text-shadow:0 3px 14px #000c}
html.stage-page body.stage-controlled #draw-event-meta strong,
html.stage-page body.stage-controlled.is-waiting-prize #draw-event-meta strong{color:#fff5df;font-size:clamp(18px,2.15vw,34px);line-height:1.15}
html.stage-page body.stage-controlled #draw-event-meta small,
html.stage-page body.stage-controlled.is-waiting-prize #draw-event-meta small{color:#efc681;font-size:clamp(24px,3vw,48px);line-height:1.25}
/* 選獎後縮小活動資訊並固定於左上角；等待狀態仍保留原本的置中標題。 */
html.stage-page body.stage-controlled:not(.is-waiting-prize) #stage-header{top:clamp(14px,2vh,24px);left:clamp(18px,2vw,38px);right:auto;justify-content:flex-start;width:auto}
html.stage-page body.stage-controlled:not(.is-waiting-prize) #draw-event-meta{width:min(560px,calc(100vw - 180px));gap:0;text-align:left}
html.stage-page body.stage-controlled:not(.is-waiting-prize) #draw-event-meta strong{font-size:clamp(14px,1.05vw,20px);line-height:1.2}
html.stage-page body.stage-controlled:not(.is-waiting-prize) #draw-event-meta small{font-size:clamp(16px,1.35vw,26px);line-height:1.3}
html.stage-page body.stage-controlled #rehearsal{position:absolute;top:100%;margin-top:5px;color:#efc681;font-size:14px}
html.stage-page body.stage-controlled main{width:100%;max-width:none;height:100vh;margin:0;padding:clamp(108px,18vh,178px) 8vw 32px}
html.stage-page body.stage-controlled #spotlight{min-height:calc(100vh - clamp(160px,24vh,230px));margin:0;padding:20px 0;align-content:center;background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}
html.stage-page body.stage-controlled #winner-code.stage-prompt{min-height:34vh;margin:0}
html.stage-page body.stage-controlled[data-stage-phase="selected"] #spotlight>#prize,
html.stage-page body.stage-controlled[data-stage-phase="ready"] #spotlight>#prize,
html.stage-page body.stage-controlled[data-stage-phase="drawing"] #spotlight>#prize{display:none!important}
html.stage-page body.stage-controlled #control-result-row{position:relative;z-index:6}

/* 揭曉後沿用單螢幕操作台的垂直配置：獎項、大編號、得獎資訊依序排列。 */
html.stage-page body.stage-controlled[data-stage-phase="revealed"] main{height:100vh;padding:clamp(76px,10vh,100px) 6vw 32px}
html.stage-page body.stage-controlled[data-stage-phase="revealed"] #spotlight.number-result:not(:has(.lighting-slots)):not(:has(.bouncy-stage)){min-height:clamp(280px,34vh,380px);height:auto;justify-content:center;padding:0;margin:0}
html.stage-page body.stage-controlled[data-stage-phase="revealed"] #spotlight.number-result:not(:has(.lighting-slots)):not(:has(.bouncy-stage)) #prize{display:grid!important;order:-1;gap:2px;width:100%;margin:0 0 8px;color:#fff5df;text-align:center}
html.stage-page body.stage-controlled[data-stage-phase="revealed"] .stage-result-prize-kind{display:block;font-size:clamp(20px,2.1vw,34px);font-weight:500;line-height:1.15}
html.stage-page body.stage-controlled[data-stage-phase="revealed"] .stage-result-prize-name{display:block;color:#fff5df;font-size:clamp(26px,3vw,48px);font-weight:800;line-height:1.25}
html.stage-page body.stage-controlled[data-stage-phase="revealed"] #spotlight.number-result:not(:has(.lighting-slots)):not(:has(.bouncy-stage)) #winner-code.rolling-number{order:0;width:100%;height:1.3em;padding:0;color:#efc681;font-size:clamp(64px,16vw,280px);line-height:1.3}
html.stage-page body.stage-controlled[data-stage-phase="revealed"] #control-result-row{min-height:80px;margin:0}

/* 前台兩種拉霸在預覽與揭曉時都沿用後台機台尺寸；外框跟著機台內容收斂，不使用全高舞台。 */
html.stage-page body.stage-controlled #spotlight.number-result:has(#winner-code.lighting-slots){position:relative;left:50%;width:min(1320px,calc(100vw - 120px));min-height:0;height:auto;margin:clamp(50px,7vh,76px) 0 0;padding:40px 28px;justify-content:center;transform:translateX(-50%)}
html.stage-page body.stage-controlled #winner-code.rolling-number.lighting-slots:not(.classic-wood){margin:24px auto;transform:translateX(-42px)}
html.stage-page body.stage-controlled #winner-code.rolling-number.lighting-slots.classic-wood{margin:24px auto}
html.stage-page body.stage-controlled #spotlight.number-result:has(#winner-code.lighting-slots:not(.classic-wood)){background-color:#382014!important;background-image:repeating-linear-gradient(3deg,transparent 0 3px,#130a0638 4px,transparent 6px 12px),repeating-linear-gradient(177deg,#b87c3820 0 1px,transparent 2px 9px,#150a0640 11px,transparent 14px 29px),linear-gradient(90deg,#29170f,#634027 34%,#3c2416 68%,#29170f)!important;border:2px solid #d8ae64!important;box-shadow:inset 0 0 22px #100804cc,0 18px 70px #0008!important}
html.stage-page body.stage-controlled #spotlight.number-result:has(#winner-code.lighting-slots.classic-wood){background-color:#192433!important;background-image:repeating-linear-gradient(92deg,#ffffff0b 0 1px,transparent 1px 6px),linear-gradient(145deg,#526278 0%,#1a2434 24%,#0b1220 51%,#394c65 77%,#111925 100%)!important;border:7px solid #d9e1e9!important;box-shadow:inset 0 0 0 3px #0b121d,inset 0 0 0 9px #8d9aab,inset 0 0 35px #000c,0 20px 55px #0009!important}

html.stage-page body.stage-controlled #stage-count-rail{position:fixed;z-index:25;right:0;top:26vh;display:grid;gap:9px;width:88px}
html.stage-page body.stage-controlled #stage-count-rail .draw-count-card{width:88px}

/* 獎項管理映象：固定在前台中央的浮動框，避免雙螢幕尺寸不同時擠壓舞台。 */
html.stage-page body.stage-controlled.stage-prizes-visible #stage-prizes-panel{position:fixed;z-index:40;top:3vh;right:auto;bottom:3vh;left:50%;display:block!important;width:min(920px,94vw);overflow:auto;padding:28px 20px 42px;border:1px solid #c6d3dc;border-radius:14px;background:#f5f7f9;color:#183145;box-shadow:0 24px 80px #000c;transform:translateX(-50%);scrollbar-gutter:stable}
html.stage-page body.stage-controlled #stage-prizes-panel .stage-prizes-title{position:sticky;z-index:2;top:-28px;display:flex;align-items:end;justify-content:space-between;gap:12px;margin:-28px -20px 14px;padding:28px 20px 15px;border-bottom:1px solid #d5dfe5;background:#f5f7f9}
html.stage-page body.stage-controlled #stage-prizes-panel .stage-prizes-title small{color:#9b681d;letter-spacing:.1em}
html.stage-page body.stage-controlled #stage-prizes-panel .stage-prizes-title h2{margin:3px 0 0;color:#183145;font-size:24px}
html.stage-page body.stage-controlled #stage-prize-count{color:#6b7d89;font-size:13px}
html.stage-page body.stage-controlled #stage-prize-list{display:grid;gap:8px;padding:0}
html.stage-page body.stage-controlled .stage-prize-item{display:grid;grid-template-columns:minmax(4.5em,.75fr) minmax(0,1.8fr) auto;grid-template-areas:"name gift count";align-items:center;gap:10px;width:100%;min-height:64px;padding:11px 14px;border:1px solid #cad7e0;border-radius:8px;background:#fff;color:#183145}
html.stage-page body.stage-controlled .stage-prize-item.is-selected{background:#e8f1f7;border-color:#1d668f;box-shadow:inset 4px 0 #1d668f}
html.stage-page body.stage-controlled .stage-prize-item.is-complete{opacity:1;background:#e7ecef;color:#677782;border-color:#c5cfd6}
html.stage-page body.stage-controlled .stage-prize-item .name,html.stage-page body.stage-controlled .stage-prize-item .gift{font-size:21px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.stage-page body.stage-controlled .stage-prize-item .count{padding:4px 9px;background:#e3b75f;color:#182838;font-size:21px;line-height:1.25}

/* 中獎名單映象：與獎項清單共用相同浮動框尺寸與可視高度。 */
html.stage-page body.stage-controlled.stage-winners-visible #history-panel{position:fixed;z-index:40;top:3vh;right:auto;bottom:3vh;left:50%;display:block!important;width:min(920px,94vw);height:auto;max-height:none;overflow:auto;padding:0;border:1px solid #efc681;border-radius:14px;background:#081826f5;box-shadow:0 24px 80px #000c;color:#fff5df;transform:translateX(-50%);scrollbar-gutter:stable}
html.stage-page body.stage-controlled.stage-winners-visible #history-panel .history-title{position:sticky;z-index:2;top:0;padding:14px 18px;border-bottom:1px solid #efc68188;background:#081826fa}
html.stage-page body.stage-controlled.stage-winners-visible #history-panel h2{margin:0;color:#efc681;font-size:24px}
html.stage-page body.stage-controlled.stage-winners-visible #history-panel #winner-count{color:#9eb1be;font-size:14px}
html.stage-page body.stage-controlled.stage-winners-visible #history-panel .stage-winner-groups{display:block;max-height:none!important;margin:0;padding:0;overflow:visible}
html.stage-page body.stage-controlled .stage-winner-group{padding:16px 18px}
html.stage-page body.stage-controlled .stage-winner-group h3{font-size:21px}
html.stage-page body.stage-controlled .stage-winner-row{grid-template-columns:minmax(4.5em,1.2fr) minmax(5.5em,1fr) minmax(4em,1fr) minmax(4em,1fr);gap:10px;padding:9px 0;font-size:21px}

/* hidden 永遠優先，避免載入資料前空白清單短暫閃現。 */
html.stage-page body.stage-controlled #stage-prizes-panel[hidden],
html.stage-page body.stage-controlled #history-panel[hidden],
html.stage-page body.stage-controlled #stage-count-rail[hidden]{display:none!important}
@media(max-width:720px){html.stage-page body.stage-controlled #stage-count-rail{width:70px}html.stage-page body.stage-controlled #stage-count-rail .draw-count-card{width:70px}html.stage-page body.stage-controlled.stage-winners-visible #history-panel{right:auto;width:94vw}html.stage-page body.stage-controlled .stage-winner-row{grid-template-columns:1fr 1fr}}

#stage-monitor{position:fixed;z-index:6;top:12px;right:104px;display:flex;align-items:center;justify-content:flex-end;gap:8px;max-width:65vw;font-size:13px;letter-spacing:0}#stage-monitor a,#stage-monitor span{min-height:34px;padding:6px 10px;border:1px solid #7891a5;border-radius:999px;background:#102236e8;color:#fff5df;font:inherit;text-decoration:none;white-space:nowrap}#stage-connection::before{content:'●';margin-right:6px;color:#ff796e}#stage-connection[data-state=online]::before{color:#6fe4a2}#stage-current-prize{max-width:24em;overflow:hidden;text-overflow:ellipsis}.single-screen-mode #stage-monitor{display:none}
#stage-winners-toggle{position:sticky;z-index:2;top:63px;width:calc(100% - 36px);margin:10px 18px;padding:10px 14px;border-color:#efc681;background:#173750;color:#fff5df;font-weight:900}#stage-winners-toggle[aria-pressed=true]{background:#efc681;color:#102033}
#stage-prizes-toggle{width:100%;margin:14px 0 4px;padding:10px 14px;border:1px solid #b98431;border-radius:7px;background:#173750;color:#fff5df;font-weight:900}#stage-prizes-toggle[aria-pressed=true]{background:#dca84d;color:#102033}#stage-prizes-toggle:disabled{opacity:.45;cursor:not-allowed}.single-screen-mode #stage-prizes-toggle{display:none}
#waiting-text-form{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:900px;margin:16px auto 0;padding-top:14px;border-top:1px solid #efc68155;text-align:center}.single-screen-mode #waiting-text-form{display:none}.dual-screen-mode #waiting-text-form{justify-content:center}#waiting-text-form label{font-weight:800}#waiting-text-form input{width:min(260px,40vw);min-height:40px;padding:7px 10px;border:1px solid #7891a5;border-radius:6px;background:#fff;color:#183145;font:inherit;text-align:center}#waiting-text-form button{min-height:40px;background:#173750}#waiting-text-message{color:#c8d7e1;font-size:13px}
@media(max-width:960px){#stage-monitor{max-width:72vw;flex-wrap:wrap}#stage-monitor label,#stage-phase,#stage-current-prize{display:none}#waiting-text-form{flex-wrap:wrap}}
