:root{color:#172126;background:#eef4f2;font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.image-trigger{display:grid;width:fit-content;padding:0;color:inherit;border-radius:8px;background:transparent}.image-trigger:focus-visible{outline:3px solid rgba(31,122,114,.28);outline-offset:3px}.image-trigger .thumb-box{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.image-trigger:hover .thumb-box{transform:scale(1.04);box-shadow:0 10px 24px #2530342e;filter:saturate(1.05)}.app-shell{min-height:100vh;padding:28px;background:radial-gradient(circle at 16% 10%,rgba(242,199,95,.34),transparent 30%),linear-gradient(135deg,#f8f0e4 0%,#edf5f2 50%,#e7eef7 100%)}.eyebrow{margin:0 0 8px;color:#c08b2e;font-size:12px;font-weight:900;letter-spacing:0;text-transform:uppercase}.login-view{display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(320px,420px);gap:28px;align-items:stretch;min-height:calc(100vh - 56px)}.login-art{display:grid;align-content:end;position:relative;min-height:560px;padding:42px;overflow:hidden;color:#f8fbff;border-radius:8px;background:linear-gradient(120deg,rgba(6,22,29,.9),rgba(25,91,88,.72)),url(https://images.unsplash.com/photo-1492684223066-81342ee5ff30?auto=format&fit=crop&w=1800&q=80) center/cover;box-shadow:0 24px 70px #1b2a332e}.login-art:before{content:"";position:absolute;top:24px;right:24px;bottom:24px;left:24px;border:1px solid rgba(255,255,255,.2);border-radius:8px;pointer-events:none}.login-art>*{position:relative;z-index:1}.login-art h1,.topbar h1{margin:0;font-size:clamp(38px,6vw,72px);line-height:1}.login-art p:not(.eyebrow){max-width:520px;margin:18px 0 0;color:#f8fbffbd;line-height:1.8}.login-panel,.panel{padding:24px;border:1px solid rgba(33,55,61,.08);border-radius:8px;background:rgba(255,255,255,.86);box-shadow:0 14px 44px #25303414}.login-panel{display:grid;align-content:center;gap:24px}.login-panel form:first-child{padding:6px 0 2px}.login-panel form,.user-form{display:grid;gap:12px}.login-panel h2,.login-panel h3,.panel h2,.stage-copy h2{margin:0}.login-panel h2{font-size:30px}.login-panel h3{color:#31575d;font-size:18px}.register-entry{display:grid;gap:10px;padding-top:22px;border-top:1px solid #e0e7e4}.register-entry span{color:#637277;font-size:14px;font-weight:800}.hint{margin:0;color:#738185;font-size:13px;line-height:1.7}input,select{width:100%;min-height:42px;padding:0 13px;color:#172126;border:1px solid #d7dfdc;border-radius:6px;outline:none;background:#ffffff}input:focus,select:focus{border-color:#1f7a72;box-shadow:0 0 0 3px #1f7a7224}.primary-action,.entry-form button,.user-form button{min-height:46px;padding:0 18px;color:#132023;border-radius:6px;background:#f1c85f;font-weight:900;box-shadow:0 12px 28px #00000024}.primary-action.big{min-height:60px;padding:0 30px;font-size:20px}.ghost{min-height:38px;padding:0 14px;color:#31575d;border:1px solid #cbd9d7;border-radius:6px;background:#ffffff;font-weight:800}.ghost.wide{width:100%}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.account-box{display:grid;grid-template-columns:auto auto;gap:4px 12px;align-items:center;justify-items:end;padding:12px 14px;border-radius:8px;background:rgba(255,255,255,.76);box-shadow:0 10px 28px #25303414}.account-box span{font-weight:900}.account-box small{color:#6d7a7f}.account-box button{grid-row:1 / 3;grid-column:2}.admin-layout,.draw-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:24px;align-items:start}.side-stack{display:grid;gap:24px;align-content:start}.stats-row{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-bottom:22px}.stats-row div{padding:16px;border:1px solid #e0e7e4;border-radius:8px;background:linear-gradient(180deg,#ffffff,#f7faf8)}.stats-row span{display:block;color:#65757a;font-size:13px;font-weight:800}.stats-row strong{display:block;margin-top:8px;color:#16393d;font-size:30px;line-height:1}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.panel h2{font-size:26px}.counter{min-width:62px;padding:9px 12px;text-align:center;color:#1f635e;border-radius:999px;background:#e3f1ed;font-weight:900}.entry-form{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(150px,.85fr) minmax(220px,1.3fr) auto;gap:12px;align-items:center;margin-bottom:20px}.upload-field{display:flex;min-height:42px;align-items:center;padding:0 13px;color:#31575d;border:1px dashed #b9c9c6;border-radius:6px;background:#f8fbfa;cursor:pointer;font-weight:800}.upload-field input{position:absolute;width:1px;min-height:1px;opacity:0;pointer-events:none}.upload-field span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-actions{display:flex;gap:10px}.switch-row{display:flex;align-items:center;gap:10px;color:#47575c;font-weight:800}.switch-row input{width:18px;min-height:18px;accent-color:#d7a84a}.prize-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.prize-card{display:grid;grid-template-columns:70px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid #e0e7e4;border-radius:8px;background:#ffffff;transition:transform .18s ease,box-shadow .18s ease}.prize-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px #2530341a}.prize-card.muted{opacity:.55}.thumb-box,.record-list img{width:58px;height:58px;border-radius:50%;background:#e6ecea}.thumb-box{display:grid;place-items:center;overflow:hidden;color:#1f635e;font-weight:900}.thumb-box img{width:100%;height:100%;object-fit:cover}.thumb-box span{margin:0;color:#1f635e;font-size:22px}.thumb-box.round{border-radius:50%}.prize-card .thumb-box{width:70px;height:70px;border-radius:8px}.card-main,.record-list div,.user-list div{min-width:0}.prize-card strong,.record-list strong,.user-list strong{display:block;overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.prize-card span,.record-list span,.user-list span{display:block;overflow:hidden;margin-top:4px;color:#607076;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.card-actions{grid-column:1 / -1;display:flex;gap:8px}.card-actions button{min-height:34px;flex:1;color:#1f635e;border-radius:6px;background:#e6f3ef;font-weight:800}.card-actions .danger{color:#9f3434;background:#f8e7e4}.user-list{display:grid;gap:10px;margin-top:16px}.user-list div{padding:10px 12px;border:1px solid #e4ebe8;border-radius:8px;background:#f7faf8}.user-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.user-row .user-meta{min-width:0;flex:1;padding:0;border:0;background:transparent}.user-meta strong,.user-meta span{display:block}.user-row .danger{flex:none;min-height:30px;padding:0 12px;color:#9f3434;border-radius:6px;background:#f8e7e4;font-weight:800}.draw-stage{position:relative;display:grid;grid-template-columns:minmax(250px,.8fr) minmax(280px,1fr) minmax(200px,.6fr);gap:28px;align-items:center;min-height:520px;padding:34px;overflow:hidden;color:#f8fbff;border-radius:8px;background:linear-gradient(110deg,rgba(8,24,32,.92),rgba(28,82,86,.82)),url(https://images.unsplash.com/photo-1511795409834-ef04bbd61622?auto=format&fit=crop&w=1800&q=80) center/cover;box-shadow:0 24px 70px #1b2a332e}.draw-stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(4,15,18,.66),rgba(4,15,18,.08));pointer-events:none}.draw-stage>*{position:relative;z-index:1}.stage-copy h2{font-size:clamp(36px,5vw,64px);line-height:1.05}.stage-subtitle{max-width:380px;margin:18px 0 0;color:#f8fbffbd;line-height:1.8}.spotlight{display:grid;justify-items:center;gap:18px}.winner-photo{width:min(32vw,300px);min-width:220px;aspect-ratio:1;padding:10px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.13);box-shadow:0 24px 70px #00000042}.winner-photo-button{color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.winner-photo-button:hover{transform:translateY(-2px) scale(1.025);border-color:#f2cc74d1;box-shadow:0 30px 82px #00000057,0 0 0 8px #f2cc741f}.winner-photo-button:focus-visible{outline:3px solid rgba(242,204,116,.58);outline-offset:5px}.winner-photo img,.photo-placeholder{width:100%;height:100%;border-radius:50%}.winner-photo img{display:block;object-fit:cover}.photo-placeholder{display:grid;place-items:center;color:#ffffffa3;background:rgba(255,255,255,.1);font-size:24px;font-weight:900}.spotlight.rolling .winner-photo{animation:pulse .5s ease-in-out infinite alternate}.winner-info{display:grid;gap:6px;justify-items:center;text-align:center}.winner-info span{color:#f2cc74;font-weight:900}.winner-info strong{font-size:clamp(32px,4vw,56px);line-height:1.05}.draw-actions{display:grid;justify-items:start;align-self:end;padding:20px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.record-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.my-prizes-panel{display:flex;height:520px;max-height:520px;min-height:0;flex-direction:column}.my-prizes-panel .record-list{flex:1;min-height:0;overflow:auto;padding-right:4px}.my-prizes-panel .record-list::-webkit-scrollbar{width:8px}.my-prizes-panel .record-list::-webkit-scrollbar-thumb{border-radius:999px;background:#cbd9d7}.record-list li{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;padding:12px;border-radius:8px;background:#f7faf8}.compact-list{max-height:420px;overflow:auto}.empty-state{display:grid;min-height:220px;place-items:center;color:#7b898d;border:1px dashed #c9d5d2;border-radius:8px;background:rgba(255,255,255,.44)}.empty-state.small{min-height:120px}.toast{position:fixed;right:28px;bottom:28px;max-width:min(380px,calc(100vw - 56px));padding:14px 18px;color:#fff;border-radius:8px;background:#19383c;box-shadow:0 14px 34px #0000002e;font-weight:800}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(9,23,28,.52);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-panel{display:grid;width:min(440px,100%);gap:14px;padding:24px;border:1px solid rgba(255,255,255,.45);border-radius:8px;background:#ffffff;box-shadow:0 24px 70px #0000003d}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:4px}.modal-head h2{margin:0;font-size:28px}.confirm-text{margin:4px 0 8px;color:#506168;font-size:15px;line-height:1.7}.confirm-text strong{color:#9f3434}.icon-button{display:grid;width:34px;height:34px;place-items:center;color:#506168;border-radius:50%;background:#eef4f2;font-size:24px;line-height:1}.modal-actions{display:flex;justify-content:end;gap:10px;margin-top:4px}.modal-actions .primary-action{box-shadow:none}.modal-actions .danger{color:#fff;background:#c94f4f}.image-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:34px;background:rgba(8,20,24,.64);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.image-preview{display:block;max-width:min(860px,calc(100vw - 68px));max-height:calc(100vh - 68px);object-fit:contain;border-radius:8px;background:rgba(255,255,255,.08);box-shadow:0 24px 70px #00000057;animation:preview-in .18s ease-out}.image-preview-close{position:fixed;top:22px;right:22px;display:grid;width:42px;height:42px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.14);box-shadow:0 12px 30px #0000002e;font-size:28px;line-height:1}.image-preview-close:hover{background:rgba(255,255,255,.22)}.celebration-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(242,204,116,.22),transparent 34%),rgba(7,15,21,.76);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.celebration-panel{position:relative;z-index:2;display:grid;width:min(560px,100%);justify-items:center;gap:12px;padding:28px;overflow:hidden;color:#f8fbff;border:1px solid rgba(255,255,255,.32);border-radius:8px;background:linear-gradient(155deg,rgba(13,33,39,.96),rgba(33,88,88,.92)),linear-gradient(180deg,rgba(242,204,116,.18),transparent);box-shadow:0 34px 90px #0000006b;text-align:center;animation:celebration-in .28s ease-out}.celebration-panel:before,.celebration-panel:after{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border:1px solid rgba(242,204,116,.28);border-radius:8px;pointer-events:none}.celebration-panel:after{inset:auto 0 0;height:92px;border:0;border-radius:0;background:linear-gradient(180deg,transparent,rgba(242,204,116,.14))}.celebration-panel .eyebrow,.celebration-panel h2,.celebration-panel strong,.celebration-panel span,.celebration-image-frame{position:relative;z-index:1}.celebration-panel h2{margin:0;font-size:clamp(32px,6vw,54px);line-height:1}.celebration-panel strong{max-width:100%;overflow-wrap:anywhere;font-size:clamp(30px,5vw,48px);line-height:1.1}.celebration-panel span{color:#f2cc74;font-size:18px;font-weight:900}.celebration-image-frame{width:min(330px,74vw);aspect-ratio:1;padding:12px;border:1px solid rgba(255,255,255,.36);border-radius:8px;background:rgba(255,255,255,.12);box-shadow:0 18px 56px #00000047}.celebration-image-frame img,.celebration-image-frame .photo-placeholder{display:block;width:100%;height:100%;border-radius:6px;object-fit:cover}.celebration-close{position:absolute;top:14px;right:14px;z-index:3;display:grid;width:38px;height:38px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(255,255,255,.13);font-size:26px;line-height:1}.celebration-close:hover{background:rgba(255,255,255,.22)}.fireworks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fireworks span{position:absolute;width:8px;height:8px;border-radius:50%;background:#f2cc74;opacity:0;animation:firework-burst 1.45s ease-out infinite}.fireworks span:nth-child(1){top:18%;left:18%;color:#f2cc74}.fireworks span:nth-child(2){top:16%;right:20%;color:#7be4d4;animation-delay:.18s}.fireworks span:nth-child(3){top:52%;left:10%;color:#ff8d7a;animation-delay:.36s}.fireworks span:nth-child(4){top:54%;right:12%;color:#f7f1a1;animation-delay:.54s}.fireworks span:nth-child(5){bottom:18%;left:25%;color:#9fe4ff;animation-delay:.72s}.fireworks span:nth-child(6){right:26%;bottom:16%;color:#ffc0d4;animation-delay:.9s}@keyframes pulse{0%{transform:scale(.98)}to{transform:scale(1.03)}}@keyframes preview-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes celebration-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes firework-burst{0%{opacity:0;transform:scale(.2);box-shadow:0 0 currentColor,0 0 currentColor,0 0 currentColor,0 0 currentColor,0 0 currentColor,0 0 currentColor,0 0 currentColor,0 0 currentColor}18%{opacity:1}76%{opacity:1;transform:scale(1);box-shadow:0 -52px currentColor,38px -38px currentColor,54px 0 currentColor,38px 38px currentColor,0 54px currentColor,-38px 38px currentColor,-54px 0 currentColor,-38px -38px currentColor}to{opacity:0;transform:scale(1.08);box-shadow:0 -64px transparent,46px -46px transparent,66px 0 transparent,46px 46px transparent,0 66px transparent,-46px 46px transparent,-66px 0 transparent,-46px -46px transparent}}@media (max-width: 1080px){.login-view,.admin-layout,.draw-layout,.draw-stage{grid-template-columns:1fr}.login-art{min-height:420px}.my-prizes-panel{height:auto;max-height:none}.entry-form{grid-template-columns:1fr 1fr}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 680px){.app-shell{padding:14px}.login-art,.login-panel,.draw-stage,.panel{padding:18px}.topbar{align-items:stretch;flex-direction:column}.account-box{justify-items:start}.entry-form,.record-list li,.stats-row{grid-template-columns:1fr}.winner-photo{width:230px;min-width:0}.form-actions,.card-actions{flex-direction:column}}
