:root{color-scheme:light;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:#fff;color:#111827}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#fff}button,input,textarea{font:inherit}.page{width:min(1560px,100%);margin:0 auto;min-height:100vh;padding:28px}.live-page{width:min(1120px,100%);padding:10px}.header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.live-page .header{gap:10px;margin-bottom:8px}.header span,.prize small,.name-head span,label,.winner span{color:#64748b;font-size:14px}.header h1{margin:5px 0 0;font-size:clamp(34px,5vw,72px);line-height:1.02;letter-spacing:0}.live-page .header h1{font-size:clamp(28px,4vw,50px)}.live-page .mode-link{min-height:38px;padding:0 12px}.header-side{display:flex;align-items:center;gap:12px}.mode-link{min-height:44px;border:1px solid #cbd5e1;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;background:#fff;color:#0f172a;font-weight:800;text-decoration:none;white-space:nowrap}.mode-link:hover{background:#f8fafc;border-color:#94a3b8}.prize{min-width:260px;border-radius:8px;padding:18px 22px;background:linear-gradient(135deg,#dc2626,#f59e0b);box-shadow:0 16px 45px #dc262640}.live-page .prize{min-width:190px;padding:12px 16px}.prize small{display:block;color:#ffffffb8}.prize strong{display:block;margin-top:6px;font-size:clamp(30px,4vw,58px);line-height:1}.live-page .prize strong{font-size:clamp(26px,3.2vw,42px)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px}.live-layout{grid-template-columns:minmax(0,1fr) 320px;gap:10px;align-items:start}.show,.names{border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 18px 50px #0f172a14}.show{display:grid;justify-items:center;padding:20px}.live-layout .show{min-height:calc(100vh - 126px);padding:8px}.live-layout .live-stats{width:min(620px,100%);gap:8px;margin-bottom:2px}.live-layout .live-stats>div{padding:8px 12px}.live-layout .live-stats strong{font-size:28px}.live-stats{width:min(760px,100%);display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.live-stats>div{border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;background:#f8fafc}.live-stats span{color:#64748b;font-size:13px}.live-stats strong{display:block;margin-top:4px;font-size:32px}.wheel-area{position:relative;display:grid;place-items:center;width:100%;min-height:min(62vh,650px)}.wheel-note{position:absolute;bottom:8px;margin:0;border:1px solid #fde68a;border-radius:8px;background:#fffbeb;color:#92400e;padding:8px 12px;font-size:14px;font-weight:800}.wheel{position:relative;width:min(62vh,680px);max-width:min(100%,680px);aspect-ratio:1;border-radius:50%;border:11px solid #e5e7eb;box-shadow:inset 0 0 0 2px #ffffff47,inset 0 0 42px #0f172a33,0 24px 54px #0f172a2e;transition:transform 4.2s cubic-bezier(.12,.82,.18,1)}.live-layout .wheel{width:min(46vh,500px);max-width:min(100%,500px)}.live-layout .wheel-area{min-height:min(48vh,510px)}.live-layout .wheel-note{bottom:0;padding:6px 10px;font-size:13px}.live-layout .winner{width:min(620px,100%);min-height:78px;margin-top:0}.live-layout .winner strong{font-size:clamp(32px,4.8vw,62px)}.live-layout .actions{margin-top:8px}.public-board{display:grid;grid-template-rows:minmax(190px,auto) minmax(0,1fr);gap:14px;min-height:calc(100vh - 190px)}.live-layout .public-board{grid-template-rows:minmax(150px,auto) minmax(0,1fr);gap:10px;height:calc(100vh - 126px);min-height:0;overflow:hidden}.public-winners,.public-participants{border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 18px 50px #0f172a14;padding:16px}.live-layout .public-winners,.live-layout .public-participants{padding:12px}.public-participants{min-height:0}.public-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.live-layout .public-head{padding-bottom:9px}.public-head span{color:#64748b;font-size:15px}.public-head strong{font-size:34px;line-height:1}.live-layout .public-head strong{font-size:30px}.public-list{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;max-height:calc(100vh - 520px);overflow:auto;padding-top:13px}.live-layout .public-list{gap:6px 8px;max-height:calc(100vh - 470px);padding-top:10px}.public-list span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:6px;background:#f1f5f9;padding:7px 9px;color:#0f172a;font-family:SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:800}.live-layout .public-list span{padding:6px 8px;font-size:12px}.public-winner-list{display:grid;gap:8px;max-height:300px;overflow:auto;padding-top:13px}.live-layout .public-winner-list{gap:6px;max-height:190px;padding-top:10px}.public-winner-list p{margin:0;border:1px dashed #cbd5e1;border-radius:8px;padding:22px 10px;color:#64748b;text-align:center;font-weight:800}.public-winner-row{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-height:38px;border:1px solid #fed7aa;border-radius:8px;background:linear-gradient(135deg,#fff7ed,#fff1f2);padding:0 11px}.live-layout .public-winner-row{grid-template-columns:40px minmax(0,1fr);min-height:32px;padding:0 9px}.live-layout .public-winner-row strong{font-size:13px}.public-winner-row span{color:#b45309;font-size:13px;font-weight:900}.public-winner-row strong{min-width:0;overflow:hidden;color:#111827;font-family:SFMono-Regular,Consolas,monospace;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.wheel.spinning{filter:saturate(1.16) brightness(1.08)}.wheel:after{content:"";position:absolute;inset:14%;border-radius:50%;border:1px solid rgba(255,255,255,.18)}.pointer{position:absolute;top:8px;z-index:3;width:0;height:0;border-left:24px solid transparent;border-right:24px solid transparent;border-top:50px solid #fff;filter:drop-shadow(0 9px 15px rgba(0,0,0,.5))}.wheel-name{position:absolute;left:50%;top:50%;width:44%;transform-origin:0 50%;color:#fff;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.72)}.wheel-core{position:absolute;left:50%;top:50%;z-index:4;width:min(26%,176px);min-width:128px;aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center;align-content:center;border-radius:50%;background:linear-gradient(180deg,#f8fafc,#d7dde5);color:#111827;box-shadow:0 13px 32px #0f172a40}.wheel-core strong{max-width:86%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(24px,4vw,46px);line-height:1}.wheel-core.has-winner strong{max-width:94%;font-size:clamp(18px,2.2vw,32px)}.wheel-core.is-rolling{box-shadow:0 13px 32px #0f172a40,0 0 0 8px #f59e0b1f,0 0 42px #f59e0b42}.wheel-core.is-rolling strong{animation:nameFlicker .18s linear infinite}.wheel-core span{margin-top:7px;color:#4b5563;font-size:13px}@keyframes nameFlicker{50%{opacity:.72;transform:translateY(1px)}}.winner{width:min(720px,100%);min-height:106px;display:grid;place-items:center;margin-top:-4px;border:1px solid #fecaca;border-radius:8px;background:#fff7ed}.winner strong{font-size:clamp(38px,6vw,86px);line-height:.95}.winner.active{background:linear-gradient(135deg,#fee2e2,#ffedd5);box-shadow:0 0 55px #f8717138}.actions,.tools,.field-row{display:flex;gap:10px;flex-wrap:wrap}.actions{justify-content:center;margin-top:16px}button{min-height:44px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;cursor:pointer}button:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}button:disabled{cursor:not-allowed;opacity:.45}.primary{min-width:150px;border-color:#f87171bf;background:linear-gradient(135deg,#dc2626,#f59e0b);color:#fff;font-weight:900}.names{padding:16px}.field-row{margin-bottom:14px}.field-row label{flex:1 1 110px}input,textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;outline:none;background:#fff;color:#0f172a}input{height:42px;margin-top:7px;padding:0 12px}textarea{min-height:300px;margin-top:12px;padding:13px;resize:vertical;line-height:1.58;font-family:SFMono-Regular,Consolas,monospace;font-size:14px}input:focus,textarea:focus{border-color:#f87171bf;box-shadow:0 0 0 3px #dc26261f}.name-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-end}.name-head strong{display:block;margin-top:4px;font-size:34px}.name-head em{max-width:190px;color:#b45309;font-size:13px;font-style:normal;text-align:right}.tools{margin-top:12px}.tools button{flex:1 1 110px}.progress{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.progress>div{border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;background:#f8fafc}.progress span,.history-head span,.history-list p,.history-row span{color:#64748b;font-size:12px}.progress strong{display:block;margin-top:3px;font-size:24px}.history{margin-top:14px;border-top:1px solid #e2e8f0;padding-top:14px}.history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.history-head strong{display:block;margin-top:4px;font-size:22px}.history-head>div:last-child{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.history-head button{min-height:34px;padding:0 10px;font-size:12px}.date-filter{margin:0;font-size:12px;color:#64748b}.date-filter input{width:138px;height:34px;margin-top:4px;font-size:12px}.history-list{display:grid;gap:6px;max-height:220px;overflow:auto;margin-top:10px}.history-list p{margin:0;border:1px dashed #cbd5e1;border-radius:8px;padding:16px;text-align:center}.history-row{display:grid;grid-template-columns:74px 1fr;align-items:center;gap:8px;min-height:32px;border-radius:8px;padding:0 9px;background:#f8fafc}.history-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1050px){.layout,.live-layout{grid-template-columns:1fr}.names{order:-1}textarea{min-height:240px}.history-list{max-height:180px}.public-board{grid-template-rows:auto auto;min-height:auto}.public-winner-list,.public-list{max-height:260px}}@media(min-width:861px)and (max-width:1050px){.live-layout{grid-template-columns:minmax(0,1fr) 300px}.live-layout .public-board{grid-template-rows:minmax(145px,auto) minmax(0,1fr);min-height:calc(100vh - 126px)}.live-layout .public-list{grid-template-columns:1fr;max-height:calc(100vh - 420px)}}@media(max-width:680px){.page{padding:14px}.header,.header-side{flex-direction:column;align-items:stretch}.prize{min-width:0}.wheel-area{min-height:360px}.winner{min-height:88px}}
