*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}#app,body,html{width:100%;min-height:100%;margin:0;padding:0;background:#7f1010;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#2b1616}.checkin-page{--red:#c62828;--red-deep:#8e1b1b;--red-soft:#e53935;--gold:#f6d98a;--cream:#fff8f0;position:relative;overflow:hidden;min-height:100vh;min-height:100dvh;padding:16px 16px 28px;display:flex;flex-direction:column;color:#2b1616;background:linear-gradient(165deg,#ff4d4d,#d32f2f 36%,#9b1212 72%,#5c0a0a)}.fx-layer{inset:0;overflow:hidden;pointer-events:none;z-index:0}.fx-layer,.orb{position:absolute}.orb{border-radius:50%;filter:blur(2px);opacity:.85}.orb-a{width:220px;height:220px;left:-60px;top:8%;background:radial-gradient(circle,rgba(255,220,140,.85) 0,rgba(255,90,70,.15) 55%,transparent 70%);animation:float-a 7s ease-in-out infinite}.orb-b{width:180px;height:180px;right:-40px;top:28%;background:radial-gradient(circle,hsla(0,0%,100%,.45) 0,rgba(255,80,60,.1) 60%,transparent 72%);animation:float-b 8.5s ease-in-out infinite}.orb-c{width:260px;height:160px;left:15%;bottom:8%;background:radial-gradient(ellipse,rgba(255,196,90,.55) 0,transparent 70%);animation:float-c 9s ease-in-out infinite}.sweep{top:-20%;left:-40%;width:45%;height:140%;background:linear-gradient(100deg,transparent,hsla(0,0%,100%,.18) 45%,rgba(255,230,170,.28) 50%,transparent 62%);transform:rotate(18deg);animation:sweep 5.5s ease-in-out infinite}.spark,.sweep{position:absolute}.spark{width:6px;height:6px;border-radius:50%;background:#ffe7a3;box-shadow:0 0 10px 3px rgba(255,220,140,.9);animation:twinkle 2.4s ease-in-out infinite}.spark-1{top:14%;left:18%}.spark-2{top:22%;right:16%;animation-delay:.6s}.spark-3{top:46%;left:8%;animation-delay:1.1s}.spark-4{top:62%;right:12%;animation-delay:.3s}.spark-5{bottom:18%;left:28%;animation-delay:1.5s}@keyframes float-a{0%,to{transform:translate(0) scale(1)}50%{transform:translate(36px,48px) scale(1.15)}}@keyframes float-b{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-42px,30px) scale(1.2)}}@keyframes float-c{0%,to{transform:translate(0)}50%{transform:translate(50px,-36px)}}@keyframes sweep{0%{left:-55%;opacity:0}20%{opacity:1}80%{opacity:1}to{left:120%;opacity:0}}@keyframes twinkle{0%,to{transform:scale(.4);opacity:.25}50%{transform:scale(1.4);opacity:1}}.brand-bar,.card,.hero,.page-footer,.toast{position:relative;z-index:1}.brand-logo{height:52px}.hero{padding:12px 2px 20px;text-align:center}.hero-theme{margin:0;font-family:STXingkai,STKaiti,KaiTi,华文行楷,华文楷体,Songti SC,"Noto Serif SC",serif;font-size:24px;letter-spacing:1.5px;color:#fff4dc;text-shadow:0 2px 8px rgba(0,0,0,.28)}.hero-sub,.hero-theme{font-weight:600;line-height:1.4}.hero-sub{margin:10px 0 0;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;font-size:16px;letter-spacing:.5px;color:rgba(255,236,200,.9);text-shadow:0 1px 3px rgba(0,0,0,.2)}.hero-sub-gap{display:inline-block;width:1px;height:13px;margin:0 12px;background:rgba(255,236,200,.45)}.card{background:var(--cream);border-radius:18px;padding:18px 16px;box-shadow:0 12px 28px rgba(80,10,10,.22);border:1px solid hsla(0,0%,100%,.35)}.card,.field{margin-bottom:14px}.field label{display:block;margin-bottom:8px;font-size:14px;font-weight:700;color:#7a1f1f}.picker-trigger{position:relative;width:100%;height:48px;border:1px solid #efc4c4;border-radius:12px;padding:0 40px 0 14px;font-size:15px;background:linear-gradient(180deg,#fff,#fff8f5);color:#2b1616;display:flex;align-items:center;text-align:left;outline:none;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.9);transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.picker-trigger.placeholder{color:#b08a8a}.picker-trigger.disabled,.picker-trigger:disabled{background:#f7ecec;color:#a88a8a;box-shadow:none}.picker-trigger:not(:disabled):active{transform:scale(.99);border-color:var(--red-soft);box-shadow:0 0 0 3px rgba(229,57,53,.16)}.picker-arrow{position:absolute;top:50%;right:16px;width:8px;height:8px;margin-top:-6px;border-right:2px solid #c62828;border-bottom:2px solid #c62828;transform:rotate(45deg);flex-shrink:0}.picker-trigger:disabled .picker-arrow{border-right-color:#c9a0a0;border-bottom-color:#c9a0a0}.field input{width:100%;height:48px;border:1px solid #efc4c4;border-radius:12px;padding:0 14px;font-size:15px;background:#fff;outline:none;color:#2b1616;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .2s ease,box-shadow .2s ease}.field input:focus{border-color:var(--red-soft);box-shadow:0 0 0 3px rgba(229,57,53,.16)}.sheet-mask{position:fixed;inset:0;z-index:200;background:rgba(48,4,8,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center}.sheet-panel{position:relative;width:100%;max-width:560px;max-height:68vh;background:linear-gradient(180deg,rgba(198,40,40,.08),transparent 42px),linear-gradient(180deg,#fff9f4,#fff 32%);border-radius:24px 24px 0 0;box-shadow:0 -18px 48px rgba(120,0,0,.32),inset 0 1px 0 hsla(0,0%,100%,.85);display:flex;flex-direction:column;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0);will-change:transform}.sheet-glow{position:absolute;top:-40px;left:50%;width:180px;height:80px;margin-left:-90px;background:radial-gradient(ellipse,rgba(229,57,53,.35) 0,transparent 70%);pointer-events:none}.sheet-handle{width:44px;height:5px;border-radius:999px;background:linear-gradient(90deg,#ef9a9a,#e53935,#ef9a9a);margin:12px auto 6px;box-shadow:0 2px 8px rgba(229,57,53,.35)}.sheet-header{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;padding:6px 12px 14px;border-bottom:1px solid rgba(198,40,40,.1)}.sheet-title{text-align:center;font-size:17px;font-weight:800;letter-spacing:.04em;color:#7a1f1f}.sheet-cancel{border:none;background:transparent;color:#a07070;font-size:14px;padding:8px;transition:color .15s ease}.sheet-cancel:active{color:#c62828}.sheet-spacer{display:block}.sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:10px 12px 20px}.sheet-item{width:100%;min-height:52px;border:1px solid transparent;border-radius:14px;background:transparent;padding:0 16px;display:flex;align-items:center;justify-content:space-between;font-size:16px;color:#2b1616;margin-bottom:6px;opacity:0;transform:translateY(12px);animation:sheet-item-in .38s cubic-bezier(.22,1.1,.36,1) forwards;transition:background .18s ease,border-color .18s ease,transform .15s ease}.sheet-item:active{transform:scale(.985);background:rgba(198,40,40,.06)}.sheet-item.active{background:linear-gradient(135deg,rgba(229,57,53,.12),rgba(198,40,40,.06));border-color:rgba(198,40,40,.22);color:#c62828;font-weight:700;box-shadow:0 4px 14px rgba(198,40,40,.12)}.sheet-item-text{text-align:left}.sheet-check{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:transparent;background:transparent;transform:scale(.6);transition:transform .22s cubic-bezier(.22,1.2,.36,1),color .15s ease,background .15s ease}.sheet-check.show{color:#fff;background:linear-gradient(135deg,#ef5350,#c62828);box-shadow:0 3px 10px rgba(198,40,40,.4);transform:scale(1)}.sheet-empty{text-align:center;color:#a07070;padding:28px 8px;font-size:14px}@keyframes sheet-item-in{to{opacity:1;transform:translateY(0)}}.sheet-enter-active,.sheet-leave-active{transition:opacity .26s ease}.sheet-enter-active .sheet-panel,.sheet-leave-active .sheet-panel{transition:transform .38s cubic-bezier(.22,1.15,.32,1)}.sheet-leave-active .sheet-panel{transition:transform .26s cubic-bezier(.55,.06,.68,.19)}.sheet-enter,.sheet-leave-to{opacity:0}.sheet-enter .sheet-panel,.sheet-leave-to .sheet-panel{transform:translateY(108%)}.btn{width:100%;height:48px;border:none;border-radius:12px;font-size:16px;font-weight:700;color:#fff}.btn:disabled{opacity:.55}.btn.primary{background:linear-gradient(135deg,#ef5350,#c62828);box-shadow:0 8px 18px rgba(198,40,40,.35)}.btn.secondary{margin-top:10px;background:transparent;color:#c62828;border:1.5px solid rgba(198,40,40,.45);box-shadow:none}.btn.secondary.btn-secondary-first{margin-top:0}.btn.secondary:active{background:rgba(198,40,40,.08)}.btn-closed-tip{margin-top:4px;padding:12px;text-align:center;font-size:14px;color:#a07070;background:rgba(198,40,40,.05);border-radius:12px}.dialog-mask{position:fixed;inset:0;z-index:210;background:rgba(40,2,6,.58);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px 14px}.dialog-panel{position:relative;width:100%;max-width:440px;max-height:84vh;background:linear-gradient(165deg,#fff8f0,#fff 42%,#fff5f2);border-radius:24px;box-shadow:0 24px 56px rgba(80,0,0,.38),inset 0 1px 0 hsla(0,0%,100%,.95);display:flex;flex-direction:column;overflow:hidden;will-change:transform,opacity}.dialog-panel.win{background:radial-gradient(ellipse at 50% -10%,rgba(255,196,90,.45) 0,transparent 55%),linear-gradient(165deg,#fff4e8,#fff 48%,#fff5f2)}.dialog-close{position:absolute;right:12px;top:12px;z-index:2;width:36px;height:36px;border:none;border-radius:50%;background:hsla(0,0%,100%,.75);color:#a07070;font-size:24px;line-height:36px;padding:0;box-shadow:0 2px 8px rgba(120,0,0,.08)}.dialog-close:active{color:#c62828;background:#fff}.win-hero{position:relative;text-align:center;padding:28px 24px 8px;overflow:hidden}.win-hero.empty-hero{padding:40px 24px 36px}.win-burst{position:absolute;inset:0;pointer-events:none}.win-burst span{position:absolute;width:8px;height:8px;border-radius:50%;background:#ffc107;opacity:.85;animation:win-spark 2.4s ease-in-out infinite}.win-burst span:first-child{top:18%;left:14%;animation-delay:0s}.win-burst span:nth-child(2){top:22%;right:16%;width:6px;height:6px;background:#ef5350;animation-delay:.4s}.win-burst span:nth-child(3){top:48%;left:10%;width:5px;height:5px;background:#ffd54f;animation-delay:.8s}.win-burst span:nth-child(4){top:52%;right:12%;animation-delay:1.1s}.win-burst span:nth-child(5){top:12%;left:46%;width:6px;height:6px;background:#ff8a65;animation-delay:.2s}.win-burst span:nth-child(6){bottom:18%;left:28%;width:5px;height:5px;background:#ef9a9a;animation-delay:1.4s}@keyframes win-spark{0%,to{transform:scale(.5);opacity:.25}50%{transform:scale(1.35);opacity:1}}.win-badge{display:inline-block;padding:4px 14px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.12em;color:#8a4b00;background:linear-gradient(135deg,#ffe082,#ffb300);box-shadow:0 4px 12px rgba(255,179,0,.35);margin-bottom:12px;animation:win-pop .45s cubic-bezier(.22,1.2,.36,1)}.win-title{margin:0;font-size:26px;font-weight:800;letter-spacing:.08em;color:#c62828;text-shadow:0 2px 0 hsla(0,0%,100%,.8);animation:win-pop .5s cubic-bezier(.22,1.2,.36,1) .05s both}.win-title.muted{font-size:20px;color:#8a5a5a;letter-spacing:.04em}.win-sub{margin:10px 0 0;font-size:14px;color:#a07070}.empty-icon{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#b08a8a;background:rgba(198,40,40,.08);border:1px dashed rgba(198,40,40,.25)}@keyframes win-pop{0%{opacity:0;transform:scale(.82) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px 20px}.winner-card{position:relative;padding:16px 16px 14px;border-radius:18px;margin-bottom:12px;background:linear-gradient(145deg,#fff,#fff8f2);border:1px solid rgba(198,40,40,.14);box-shadow:0 8px 20px rgba(160,40,40,.08);opacity:0;transform:translateY(14px);animation:sheet-item-in .42s cubic-bezier(.22,1.1,.36,1) forwards}.winner-card:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#ef5350,#c62828)}.winner-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding-left:8px}.winner-prize{display:inline-block;padding:5px 12px;font-size:14px;color:#fff;background:linear-gradient(135deg,#ef5350,#c62828);box-shadow:0 4px 12px rgba(198,40,40,.28)}.winner-prize,.winner-sort{border-radius:999px;font-weight:700}.winner-sort{flex-shrink:0;font-size:13px;color:#c62828;background:rgba(198,40,40,.08);padding:4px 10px}.winner-name{padding-left:8px;font-size:22px;font-weight:800;color:#4a1515;margin-bottom:12px}.winner-gift{margin:0 0 12px 8px;padding:10px 12px;border-radius:12px;background:linear-gradient(135deg,rgba(255,179,0,.14),rgba(255,236,179,.35));display:flex;align-items:flex-start;gap:10px}.gift-label{flex-shrink:0;font-size:12px;font-weight:700;color:#8a4b00;background:hsla(0,0%,100%,.75);padding:2px 8px;border-radius:6px;margin-top:1px}.gift-text{font-size:16px;font-weight:700;color:#7a3f00;line-height:1.45}.winner-lines{padding-left:8px;font-size:14px;color:#8a5a5a;line-height:1.75}.dialog-enter-active,.dialog-leave-active{transition:opacity .22s ease}.dialog-enter-active .dialog-panel,.dialog-leave-active .dialog-panel{transition:transform .34s cubic-bezier(.22,1.15,.32,1),opacity .22s ease}.dialog-leave-active .dialog-panel{transition:transform .2s ease,opacity .18s ease}.dialog-enter,.dialog-leave-to{opacity:0}.dialog-enter .dialog-panel,.dialog-leave-to .dialog-panel{opacity:0;transform:scale(.88) translateY(14px)}.btn.confirm{margin-top:14px;background:linear-gradient(135deg,#ffb300,#ef6c00);box-shadow:0 8px 18px rgba(239,108,0,.28)}.result-title{font-size:15px;font-weight:800;margin-bottom:12px;color:#7a1f1f}.result-panel{max-height:78vh}.result-hint{display:flex;align-items:center;gap:8px;margin:12px 14px 8px;padding:8px 10px;border-radius:10px;background:rgba(198,40,40,.06);font-size:13px;line-height:1.45;color:#7a3a3a;text-align:left}.result-hint-tag{flex-shrink:0;padding:2px 8px;border-radius:999px;background:linear-gradient(135deg,#ef5350,#c62828);color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em}.result-list{padding-bottom:8px}.result-footer{padding:10px 14px calc(12px + env(safe-area-inset-bottom, 0));border-top:1px solid rgba(198,40,40,.1);background:linear-gradient(180deg,#fffaf6,#fff)}.empty{padding:24px 8px;text-align:center;color:#a07070;font-size:14px}.student-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid #efc4c4;border-radius:14px;margin-bottom:10px;background:#fff;opacity:0;transform:translateY(12px);animation:sheet-item-in .38s cubic-bezier(.22,1.1,.36,1) forwards;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.student-item:active{transform:scale(.99)}.student-item.active{border-color:var(--red);background:linear-gradient(135deg,rgba(229,57,53,.1),rgba(198,40,40,.04));box-shadow:0 4px 14px rgba(198,40,40,.12)}.student-name{font-size:17px;font-weight:800;margin-bottom:6px;color:#4a1515}.student-meta{font-size:13px;color:#8a5a5a;line-height:1.6}.radio{width:22px;height:22px;border-radius:50%;border:2px solid #d9a8a8;flex-shrink:0;position:relative}.radio.checked{border-color:var(--red)}.radio.checked:after{content:"";position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;background:var(--red);transform:translate(-50%,-50%)}.success-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px 16px;margin-bottom:10px;text-align:left;background:radial-gradient(circle at 100% 0,rgba(255,193,7,.28) 0,transparent 42%),linear-gradient(160deg,#fffdf8,#fff4ee);border:1px solid rgba(255,213,128,.7);box-shadow:0 10px 24px rgba(120,20,20,.16);animation:success-in .35s cubic-bezier(.22,1.1,.36,1)}.success-card:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#ffb300,#e53935)}.success-mark{position:absolute;right:14px;top:14px;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#ef5350,#c62828);color:#fff;font-size:16px;font-weight:700;line-height:28px;text-align:center;box-shadow:0 4px 10px rgba(198,40,40,.28)}.success-main{padding-right:36px}.success-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.06em;color:#8a4b00;background:linear-gradient(135deg,#ffe082,#ffb300)}.success-name{margin-top:8px;font-size:20px;font-weight:800;line-height:1.2;color:#4a1515}.success-count{margin-top:4px;font-size:13px;color:#8a5a5a;line-height:1.4}.success-count strong{margin:0 2px;font-size:16px;color:#c62828}.success-tip{margin:0;padding-top:8px;border-top:1px dashed rgba(198,40,40,.16);font-size:12px;color:#a07070;line-height:1.4}@keyframes success-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-footer{margin-top:auto;padding-top:24px;display:flex;align-items:center;justify-content:center;gap:10px;color:rgba(255,236,200,.92);font-size:12px;letter-spacing:.5px;line-height:1.4}.footer-line{width:28px;height:1px;background:linear-gradient(90deg,transparent,rgba(246,217,138,.9),transparent)}.toast{position:fixed;left:50%;bottom:68px;transform:translateX(-50%);width:-moz-max-content;width:max-content;max-width:calc(100% - 28px);padding:11px 18px;border-radius:999px;border:1px solid rgba(255,224,150,.7);background:linear-gradient(180deg,rgba(255,248,236,.28),transparent 48%),linear-gradient(135deg,#ef6a66,#e2554f);box-shadow:0 8px 18px rgba(180,40,40,.22),inset 0 1px 0 hsla(0,0%,100%,.35);color:#fff;font-size:14px;font-weight:700;letter-spacing:.04em;line-height:1;white-space:nowrap;z-index:220}.verify-panel{width:100%;max-width:360px;padding:22px 18px 16px;border-radius:20px;background:linear-gradient(165deg,#fff9f4,#fff 60%);box-shadow:0 18px 40px rgba(80,0,0,.28)}.verify-title{text-align:center;font-size:18px;font-weight:800;color:#7a1f1f}.verify-desc{margin:8px 0 14px;text-align:center;font-size:13px;line-height:1.5;color:#a07070}.verify-info{margin-bottom:16px;padding:10px 12px;border-radius:12px;background:rgba(198,40,40,.05)}.verify-info div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:15px;font-weight:700;color:#4a1515}.verify-info span{flex-shrink:0;font-weight:600;color:#a07070}.verify-btn:disabled{opacity:.72}.verify-cancel{display:block;width:100%;margin-top:8px;border:none;background:transparent;color:#a07070;font-size:14px;padding:8px}.draw-page{--red:#c62828;--red-deep:#8e1b1b;--gold:#f6d98a;--cream:#fff8f0;--chrome-h:132px;position:relative;height:100vh;height:100dvh;overflow:hidden;color:#fff8ea;background:linear-gradient(160deg,#ff4d4d,#c62828 38%,#8e1b1b 72%,#4a0a0a);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;display:flex;flex-direction:column}.draw-bg{inset:0;pointer-events:none;overflow:hidden}.draw-bg,.glow{position:absolute}.glow{border-radius:50%;filter:blur(8px);opacity:.55}.glow-a{width:360px;height:360px;left:-80px;top:-40px;background:radial-gradient(circle,rgba(255,220,140,.7) 0,transparent 70%)}.glow-b{width:280px;height:280px;right:-40px;top:20%;background:radial-gradient(circle,hsla(0,0%,100%,.28) 0,transparent 70%)}.glow-c{width:420px;height:220px;left:30%;bottom:-60px;background:radial-gradient(ellipse,rgba(255,180,80,.35) 0,transparent 70%)}.draw-header,.draw-main,.draw-toast{position:relative;z-index:1}.draw-header{flex-shrink:0;display:grid;grid-template-columns:1fr 1.4fr 1fr;align-items:center;gap:12px;padding:10px 24px 6px}.batch-name{font-size:15px;font-weight:800}.pool-tip{margin-top:2px;font-size:12px;color:rgba(255,236,200,.9)}.header-left{display:flex;align-items:center}.brand-logo{height:40px;width:auto;max-width:100%;-o-object-fit:contain;object-fit:contain;display:block}.header-center{text-align:center}.event-title{font-size:clamp(20px,2.2vw,34px);font-weight:800;letter-spacing:.06em;line-height:1.2;white-space:nowrap;text-shadow:0 4px 18px rgba(0,0,0,.25)}.header-right{text-align:right}.logout-btn{position:absolute;right:0;top:50%;transform:translateY(-50%);padding:4px 12px;border:1px solid rgba(255,220,150,.45);border-radius:999px;background:rgba(0,0,0,.16);color:rgba(255,236,200,.88);font-size:12px;font-weight:600;cursor:pointer;line-height:1.4}.logout-btn:hover{background:rgba(0,0,0,.28);border-color:rgba(255,220,150,.85);color:rgba(255,236,200,.98)}.draw-band{flex:0 0 auto;width:min(100%,calc(400vh - var(--chrome-h)*16/4));height:min(25vw,calc(100vh - var(--chrome-h)));aspect-ratio:16/4;max-width:100%;margin:0 auto;padding:0 16px;container-type:size;container-name:draw-band}.draw-band,.draw-main{box-sizing:border-box;min-height:0}.draw-main{width:100%;height:100%;display:grid;grid-template-columns:minmax(160px,16%) 1fr minmax(160px,16%);gap:12px}.draw-bottom{flex-direction:column;gap:6px;padding:8px 24px 8px}.draw-bottom,.draw-footer{flex-shrink:0;display:flex;align-items:center}.draw-footer{justify-content:center;gap:28px;padding:0;color:rgba(255,236,200,.92);font-size:13px;letter-spacing:10px;line-height:1.4}.draw-footer-line{width:42px;height:1px;background:linear-gradient(90deg,transparent,rgba(246,217,138,.9),transparent)}.prize-panel,.stage-panel,.winner-panel{background:rgba(255,248,240,.96);color:#4a1515;border-radius:14px;box-shadow:0 10px 24px rgba(60,0,0,.28);border:1px solid hsla(0,0%,100%,.45);min-height:0;height:100%}.prize-panel,.winner-panel{padding:8px 10px;display:flex;flex-direction:column;overflow:hidden}.panel-title{flex-shrink:0;font-size:14px;font-weight:800;color:#7a1f1f;margin-bottom:6px;padding:0 2px}.prize-list,.winner-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(198,40,40,.35) transparent}.prize-list::-webkit-scrollbar,.roll-stage::-webkit-scrollbar,.winner-list::-webkit-scrollbar{width:6px;height:6px}.prize-list::-webkit-scrollbar-track,.roll-stage::-webkit-scrollbar-track,.winner-list::-webkit-scrollbar-track{background:transparent;margin:4px 0}.prize-list::-webkit-scrollbar-thumb,.roll-stage::-webkit-scrollbar-thumb,.winner-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(239,83,80,.55),rgba(198,40,40,.4));border-radius:999px;border:1px solid hsla(0,0%,100%,.35)}.prize-list::-webkit-scrollbar-thumb:hover,.roll-stage::-webkit-scrollbar-thumb:hover,.winner-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(239,83,80,.8),rgba(198,40,40,.65))}.prize-list::-webkit-scrollbar-corner,.roll-stage::-webkit-scrollbar-corner,.winner-list::-webkit-scrollbar-corner{background:transparent}.prize-item{padding:8px 10px;border-radius:10px;border:1px solid #efc4c4;background:#fff;margin-bottom:6px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.prize-item:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(198,40,40,.12)}.prize-item.active{border-color:#c62828;background:linear-gradient(145deg,#fff7f2,#ffe8e0);box-shadow:0 8px 20px rgba(198,40,40,.16)}.prize-item.finished{opacity:.7}.prize-type{font-size:15px;font-weight:800;color:#c62828}.prize-content{margin-top:2px;font-size:12px;color:#8a5a5a}.prize-meta{margin-top:4px;display:flex;justify-content:space-between;gap:8px;font-size:11px;color:#a07070}.prize-status{margin-top:3px;font-size:12px;font-weight:700;color:#7a1f1f}.stage-panel{display:flex;flex-direction:column;padding:6px 14px 8px;background:radial-gradient(ellipse at 50% 0,rgba(255,196,90,.28) 0,transparent 50%),linear-gradient(180deg,#fffaf4,#fff 45%,#fff5f0);min-height:0;overflow:hidden}.stage-prize{flex-shrink:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:0 2px;min-height:36px;max-height:42px}.stage-prize-side{display:flex;align-items:center;min-width:0}.stage-prize-left{justify-content:flex-start}.stage-badge{flex-shrink:0;display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.08em;color:#7a3b00;background:linear-gradient(135deg,#ffe082,#ffb300);box-shadow:0 4px 10px rgba(255,179,0,.28)}.stage-prize-main{min-width:0;max-width:320px;text-align:center}.stage-prize h1{margin:0;font-size:20px;line-height:1.15;letter-spacing:.06em;color:#c62828}.stage-prize h1,.stage-prize p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-prize p{margin:1px 0 0;font-size:12px;line-height:1.2;color:#8a5a5a}.stage-prize-empty{display:flex;justify-content:center;align-items:center;gap:10px}.stage-prize-empty h1{font-size:18px;color:#b08a8a;white-space:normal}.stage-prize-loading{min-height:36px;max-height:42px}.stage-prize-right{justify-content:flex-end;flex-direction:row;align-items:center;gap:10px}.stage-prize-stats{display:flex;align-items:center;gap:2px}.stage-stat{min-width:52px;padding:0 6px;display:flex;flex-direction:row;align-items:baseline;gap:4px}.stage-stat-label{font-size:11px;font-weight:700;letter-spacing:.04em;color:#a07070}.stage-stat-value{font-size:15px;font-weight:800;color:#7a1f1f;line-height:1}.stage-stat-value em{font-style:normal;font-size:12px;font-weight:700;color:#a07070}.stage-progress-wrap{display:flex;align-items:center;gap:6px;width:100%;max-width:140px}.stage-progress-bar{flex:1;height:4px;border-radius:999px;background:rgba(198,40,40,.1);overflow:hidden}.stage-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef5350,#ffb300);transition:width .35s ease}.stage-progress-text{flex-shrink:0;font-size:12px;font-weight:700;color:#a07070;min-width:34px;text-align:right}.roll-stage{flex:1;margin:4px 0 0;min-height:0;border-radius:12px;border:1px solid rgba(198,40,40,.16);background:linear-gradient(160deg,#fff,#fff8f2);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.9);display:flex;align-items:center;justify-content:center;padding:8px 16px;overflow:hidden}.roll-stage.rolling{box-shadow:0 0 0 2px rgba(229,57,53,.18),inset 0 1px 0 hsla(0,0%,100%,.9)}.stage-actions{position:relative;flex-shrink:0;width:100%;display:flex;justify-content:center;align-items:center;gap:14px}.roll-placeholder{font-size:28px;color:#b08a8a;font-weight:700}.roll-live{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;justify-items:center;-moz-column-gap:clamp(12px,2vw,28px);column-gap:clamp(12px,2vw,28px);row-gap:clamp(6px,2.5cqh,14px);text-align:center;overflow:hidden}.roll-live.is-one{grid-template-columns:minmax(0,1fr)}.roll-live.is-two{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,66%);margin-inline:auto}.roll-live.is-few{grid-template-columns:repeat(3,minmax(0,1fr))}.roll-slot{width:100%;max-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.roll-live.is-one .roll-name{font-size:clamp(36px,18cqh,64px)}.roll-live.is-one .roll-meta{font-size:clamp(12px,8cqh,18px)}.roll-live.is-few .roll-name,.roll-live.is-two .roll-name{font-size:clamp(28px,14cqh,48px)}.roll-live.is-few .roll-meta,.roll-live.is-two .roll-meta{font-size:clamp(11px,6.5cqh,15px)}.roll-live.is-many .roll-name{font-size:clamp(20px,10cqh,32px)}.roll-live.is-many .roll-meta{font-size:clamp(10px,5cqh,12px)}.roll-name{font-size:clamp(36px,18cqh,64px);font-weight:800;color:#c62828;letter-spacing:.08em;line-height:1.15;text-shadow:0 3px 0 rgba(255,224,150,.45);writing-mode:horizontal-tb;white-space:nowrap}.roll-name.has-pinyin,.round-person-name.has-pinyin{display:inline-flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:.06em;line-height:1;writing-mode:horizontal-tb;white-space:nowrap}.name-char{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.06em;min-width:1em}.name-pinyin{display:block;font-size:.28em;font-weight:600;line-height:1.1;letter-spacing:0;color:#b07171;text-shadow:none;text-transform:lowercase;white-space:nowrap;writing-mode:horizontal-tb;max-width:3.2em;overflow:hidden;text-overflow:ellipsis}.name-han{display:block;line-height:1}.roll-meta{margin-top:4px;font-size:clamp(12px,8cqh,16px);color:#8a5a5a;writing-mode:horizontal-tb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.round-result{width:100%;height:100%;text-align:center;padding:4px 8px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.round-result-title{flex-shrink:0;font-size:clamp(13px,12cqh,18px);font-weight:800;letter-spacing:.28em;color:#c62828;margin-bottom:8px}.round-result-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;justify-items:center;-moz-column-gap:clamp(12px,2vw,28px);column-gap:clamp(12px,2vw,28px);row-gap:clamp(8px,3cqh,16px);min-height:0;overflow:hidden}.round-result-list.is-one{grid-template-columns:minmax(0,1fr)}.round-result-list.is-two{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,66%);margin-inline:auto}.round-result-list.is-few,.round-result-list.is-many{grid-template-columns:repeat(3,minmax(0,1fr))}.round-result-list.is-one .round-person-name{font-size:clamp(32px,16cqh,56px)}.round-result-list.is-one .round-person-meta{font-size:clamp(12px,7cqh,16px);margin-top:6px}.round-person{width:100%;max-width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(10px);animation:draw-pop .4s cubic-bezier(.22,1.1,.36,1) forwards}.round-person-name{display:inline-flex;font-size:clamp(20px,10cqh,36px);font-weight:800;line-height:1.15;letter-spacing:.08em;color:#c62828;text-shadow:0 2px 0 rgba(255,224,150,.35);writing-mode:horizontal-tb;white-space:nowrap}.round-person-name .name-pinyin{font-size:.28em;color:#a86868}.round-person-meta{margin-top:4px;font-size:clamp(10px,5cqh,13px);line-height:1.3;color:#8a5a5a;writing-mode:horizontal-tb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.draw-btn{min-width:200px;height:44px;border:none;border-radius:999px;font-size:18px;font-weight:800;letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,#ef5350,#c62828);box-shadow:0 10px 22px rgba(198,40,40,.35);cursor:pointer}.draw-btn:disabled{opacity:.55;cursor:not-allowed}.draw-btn-stop{background:linear-gradient(135deg,#ffb300,#f57c00);box-shadow:0 12px 28px rgba(245,124,0,.35);animation:draw-stop-pulse 1.1s ease-in-out infinite}@keyframes draw-stop-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.ghost-btn{height:44px;padding:0 18px;border-radius:999px;border:1.5px solid rgba(255,236,200,.7);background:hsla(0,0%,100%,.12);color:#fff8ea;font-size:14px;font-weight:700;cursor:pointer}.stage-actions .ghost-btn{height:44px;min-width:120px;border-color:rgba(198,40,40,.28);background:#fff;color:#c62828}.draw-winner-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px 4px;border-bottom:1px solid rgba(198,40,40,.08)}.draw-winner-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1;height:28px}.draw-winner-sort{flex:0 0 28px;width:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;text-align:center;color:#fff;background:linear-gradient(135deg,#ef5350,#c62828)}.draw-winner-name,.draw-winner-sort{box-sizing:border-box;height:28px;margin:0;padding:0;font-weight:800;line-height:28px}.draw-winner-name{flex:1;min-width:0;font-size:17px;color:#4a1515;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draw-winner-side{flex:0 0 auto;max-width:140px;text-align:right;padding-top:1px}.draw-winner-grade{font-weight:700;color:#8a4a4a}.draw-winner-college,.draw-winner-grade{font-size:12px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draw-winner-college{margin-top:2px;color:#a07070}.empty-side{padding:16px 8px;text-align:center;color:#a07070;font-size:13px}.draw-toast{position:fixed;left:50%;bottom:36px;transform:translateX(-50%);padding:12px 20px;border-radius:999px;background:rgba(80,16,16,.92);color:#fff;font-size:15px;font-weight:700;z-index:50;white-space:nowrap}@keyframes draw-pop{to{opacity:1;transform:translateY(0)}}@media (max-width:1200px){.draw-main{grid-template-columns:minmax(140px,18%) 1fr minmax(140px,18%)}}.draw-login-page[data-v-6488bd20]{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(160deg,#ff4d4d,#c62828 38%,#8e1b1b 72%,#4a0a0a);overflow:hidden}.draw-login-bg[data-v-6488bd20]{position:absolute;inset:0;pointer-events:none}.glow[data-v-6488bd20]{position:absolute;border-radius:50%;filter:blur(10px);opacity:.5}.glow-a[data-v-6488bd20]{width:280px;height:280px;left:-60px;top:-40px;background:radial-gradient(circle,rgba(255,220,140,.7) 0,transparent 70%)}.glow-b[data-v-6488bd20]{width:320px;height:320px;right:-80px;bottom:-60px;background:radial-gradient(circle,rgba(255,180,100,.45) 0,transparent 70%)}.login-panel[data-v-6488bd20]{position:relative;z-index:1;width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center}.login-logo[data-v-6488bd20]{display:block;height:56px;width:auto;margin:0 0 18px;-o-object-fit:contain;object-fit:contain}.login-card[data-v-6488bd20]{width:100%;padding:24px 24px 24px;border-radius:20px;background:linear-gradient(165deg,#fff9f4,#fff 60%);border:2px solid #e0b84a;box-shadow:inset 0 0 0 1px rgba(255,236,180,.5),0 18px 40px rgba(80,0,0,.28)}.login-title[data-v-6488bd20]{margin:0;text-align:center;font-size:24px;font-weight:800;color:#7a1f1f}.login-desc[data-v-6488bd20]{margin:8px 0 20px;text-align:center;font-size:13px;color:#a07070}.login-label[data-v-6488bd20]{display:block;margin-bottom:8px;font-size:14px;font-weight:700;color:#7a1f1f}.login-input[data-v-6488bd20]{width:100%;height:48px;margin-bottom:14px;border:1.5px solid #e0b84a;border-radius:12px;padding:0 14px;font-size:15px;background:#fff;outline:none;color:#2b1616;box-sizing:border-box}.login-input[data-v-6488bd20]:focus{border-color:#d4a017;box-shadow:0 0 0 3px rgba(224,184,74,.28)}.login-btn[data-v-6488bd20]{width:100%;height:48px;margin-top:4px;border:none;border-radius:12px;font-size:16px;font-weight:700;color:#fff;background:linear-gradient(135deg,#ef5350,#c62828);cursor:pointer}.login-btn[data-v-6488bd20]:disabled{opacity:.7;cursor:not-allowed}.login-error[data-v-6488bd20]{margin:12px 0 0;text-align:center;font-size:13px;color:#c62828}