:root{--bg:#031126;--panel:#081a33;--panel2:#0d2442;--line:#173a64;--text:#f6fbff;--muted:#8fa8c5;--blue:#208bff;--cyan:#42d9ff;--gold:#f0d27a;--danger:#ff667a;--ok:#39d99f;--shadow:0 24px 80px rgba(0,0,0,.38)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,"Noto Sans Thai",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{overflow-x:hidden}button,input,select{font:inherit}button,a{cursor:pointer}.hidden{display:none!important}.screen{position:relative;min-height:100vh;overflow:hidden;background:radial-gradient(circle at 50% 45%,#0b3970 0,#071c39 31%,#031126 66%,#020b17 100%)}.screen:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(circle at center,#000,transparent 75%)}.glow{position:absolute;border-radius:50%;filter:blur(80px);opacity:.42}.g1{width:420px;height:420px;background:#125cff;left:-120px;top:12%}.g2{width:460px;height:460px;background:#00c2ff;right:-170px;bottom:4%;opacity:.22}.top{position:relative;z-index:4;display:flex;justify-content:space-between;align-items:center;padding:24px 34px}.brand{display:flex;align-items:center;gap:14px}.brand-logo{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:rgba(3,17,38,.58);border:1px solid rgba(240,210,122,.55);box-shadow:0 0 25px rgba(240,210,122,.12)}.brand-logo img{width:54px;height:54px;object-fit:contain}.brand b{display:block;font-size:16px;letter-spacing:.02em}.brand small{display:block;color:var(--muted);margin-top:4px}.tools{display:flex;gap:8px}.iconbtn{width:42px;height:42px;border-radius:13px;border:1px solid rgba(255,255,255,.12);color:white;background:rgba(255,255,255,.05);backdrop-filter:blur(12px)}.stage{position:relative;z-index:3;display:flex;align-items:center;flex-direction:column;padding:0 18px 36px}.eyebrow{margin-top:-4px;font-size:11px;font-weight:800;letter-spacing:.33em;color:#7fcbff}.prize-title{font-size:clamp(24px,3.1vw,48px);margin:7px 0 10px;background:linear-gradient(90deg,#fff,#d8f3ff 48%,#f4dc8f);-webkit-background-clip:text;color:transparent}.wheel-wrap{position:relative;width:min(56vh,620px);aspect-ratio:1;margin-top:2px;filter:drop-shadow(0 30px 55px rgba(0,0,0,.45))}.wheel-wrap:after{content:"";position:absolute;inset:-15px;border:1px solid rgba(240,210,122,.44);border-radius:50%;box-shadow:inset 0 0 32px rgba(60,186,255,.23),0 0 40px rgba(31,139,255,.2);pointer-events:none}.wheel{position:absolute;inset:0;border-radius:50%;border:9px solid #c6a85a;box-shadow:inset 0 0 0 4px rgba(255,255,255,.28),inset 0 0 45px rgba(255,255,255,.13);transition-property:transform;transition-timing-function:cubic-bezier(.12,.72,.12,1);overflow:hidden}.wheel:after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.17) 0 1deg,transparent 1deg 18deg);mix-blend-mode:overlay;opacity:.5}.hub{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:29%;aspect-ratio:1;border-radius:50%;display:grid;place-content:center;text-align:center;font-size:clamp(18px,2.6vh,31px);font-weight:900;line-height:.85;color:var(--gold);background:radial-gradient(circle at 35% 25%,#1a4374,#061a35 64%,#020a15);border:6px solid #d5b75f;box-shadow:0 8px 25px rgba(0,0,0,.5),inset 0 0 25px rgba(53,181,255,.26)}.hub small{font-size:.47em;letter-spacing:.24em;color:#9bc8e9}.pointer{z-index:5;position:absolute;left:50%;top:-25px;transform:translateX(-50%);width:0;height:0;border-left:23px solid transparent;border-right:23px solid transparent;border-top:58px solid #f5db84;filter:drop-shadow(0 7px 7px rgba(0,0,0,.44))}.pointer:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;top:-51px;left:-5px;box-shadow:0 0 12px white}.spin-btn{margin-top:16px;width:150px;height:58px;border:0;border-radius:999px;color:#06203d;font-weight:950;font-size:20px;letter-spacing:.12em;background:linear-gradient(135deg,#fff4bd,#d3ae50);box-shadow:0 12px 34px rgba(240,210,122,.25),inset 0 1px 0 white;transition:.18s}.spin-btn:hover{transform:translateY(-2px) scale(1.025)}.spin-btn:active{transform:translateY(1px) scale(.98)}.spin-btn:disabled{filter:grayscale(.7);opacity:.55}.remaining{margin-top:10px;color:#9ab4d0;font-size:13px}.remaining b{color:#eaf7ff}.demo-mark{position:absolute;right:24px;bottom:20px;border:1px solid #f2cd62;color:#f2cd62;padding:6px 10px;border-radius:8px;font-size:11px;letter-spacing:.18em}.mode-chip{position:absolute;left:24px;bottom:20px;color:#6f8dad;font-size:11px}.overlay{position:fixed;z-index:99;inset:0;background:radial-gradient(circle at center,rgba(14,58,105,.72),rgba(1,7,16,.93));display:grid;place-items:center;backdrop-filter:blur(12px);animation:fade .28s ease}.winner{position:relative;width:min(820px,90vw);padding:48px 44px;text-align:center;border:1px solid rgba(240,210,122,.58);border-radius:34px;background:linear-gradient(160deg,rgba(14,42,78,.96),rgba(4,18,37,.98));box-shadow:0 40px 120px rgba(0,0,0,.6),inset 0 0 50px rgba(40,136,255,.08);overflow:hidden;animation:pop .5s cubic-bezier(.2,.9,.2,1.2)}.winner:before{content:"";position:absolute;inset:-50%;background:conic-gradient(transparent 0 43%,rgba(255,238,158,.18) 48%,transparent 53%);animation:sweep 3.6s linear infinite}.winner>*{position:relative}.congrats{font-size:12px;font-weight:900;letter-spacing:.4em;color:#87dfff}.star{font-size:34px;color:var(--gold);text-shadow:0 0 25px rgba(240,210,122,.7);margin:12px 0}.winner h1{font-size:clamp(38px,6vw,72px);margin:0;background:linear-gradient(90deg,#fff,#fff4bd,#fff);-webkit-background-clip:text;color:transparent;line-height:1.15}.nick{font-size:24px;color:#cbefff;margin-top:8px}.org{margin-top:12px;font-size:18px;color:#a6c4df}.tag{display:inline-block;margin-top:23px;padding:7px 14px;border-radius:999px;color:#f4dc8f;border:1px solid rgba(240,210,122,.35);background:rgba(240,210,122,.08)}.next{margin-top:28px;border:0;border-radius:14px;background:#fff;color:#082342;padding:13px 24px;font-weight:800}.confetti{position:fixed;z-index:100;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;width:8px;height:15px;background:currentColor;animation:fall linear forwards}.admin{min-height:100vh;display:grid;grid-template-columns:245px 1fr;background:#071426}.side{position:sticky;top:0;height:100vh;padding:26px 16px;border-right:1px solid #16314e;background:linear-gradient(#07182e,#051120);display:flex;flex-direction:column}.head{display:flex;align-items:center;gap:11px;padding:0 8px 24px}.head img{width:46px;height:46px}.head b{display:block;letter-spacing:.06em}.head small{font-size:10px;color:#7897b6;letter-spacing:.17em}.nav{display:grid;gap:6px}.nav button{height:43px;text-align:left;padding:0 13px;border:0;border-radius:10px;color:#8da9c5;background:transparent}.nav button.active,.nav button:hover{color:#fff;background:#102b4e}.open-public{margin-top:auto;height:43px;border-radius:10px;border:1px solid #2d78bd;background:#0d3763;color:#cdeaff;font-weight:800}.main{padding:28px 34px 48px;min-width:0}.main-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}.main-top p,.sumhead p{margin:0;color:#5d8cb8;font-size:10px;font-weight:800;letter-spacing:.25em}.main-top h1{margin:5px 0 0;font-size:31px}.pill{padding:7px 11px;border-radius:999px;font-size:10px;border:1px solid #25435f;color:#7796b2}.pill.on{color:#f3d36e;border-color:#8f7b3c;background:#342f18}.notice{padding:12px 15px;margin-bottom:18px;border:1px solid #27527b;border-radius:12px;background:#0b2441;color:#b9ddff}.notice.error{border-color:#713442;background:#2e131b;color:#ffc0c9}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat,.card{border:1px solid #173654;border-radius:17px;background:linear-gradient(160deg,#0a203a,#08182c);box-shadow:0 13px 35px rgba(0,0,0,.15)}.stat{padding:20px}.label{color:#7393b1;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.stat strong{font-size:33px;display:block;margin:8px 0 4px}.stat small{color:#7897b4}.card{margin-top:16px;padding:20px}.card h3{margin:0 0 4px}.card p{color:#809dbc;margin:5px 0;font-size:13px}.cardhead,.actionrow{display:flex;justify-content:space-between;align-items:center;gap:15px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions button,.actions a,.primary,.mini{border:1px solid #274968;background:#0d2846;color:#c9e6ff;text-decoration:none;padding:9px 13px;border-radius:10px}.actions .blue,.primary{background:#1677db;border-color:#2b94f5;color:#fff}.danger{border-color:#74394a!important;background:#351622!important;color:#ff9faf!important}.prizes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.prizes button{padding:15px;text-align:left;color:#b8cee1;border:1px solid #1d3c5a;border-radius:13px;background:#0a1d34}.prizes button.selected{border-color:#d0b458;box-shadow:inset 0 0 0 1px rgba(240,210,122,.25);color:#fff}.prizes small{display:block;color:#718da7;margin-top:5px}.search,label input,label select{width:100%;height:40px;border:1px solid #23445f;border-radius:10px;background:#06172b;color:#e9f5ff;padding:0 12px;outline:0}.search{width:320px}.tablewrap{overflow:auto;margin-top:15px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #142f49;font-size:13px}th{font-size:10px;text-transform:uppercase;color:#6785a0;letter-spacing:.06em}.status{font-size:9px;padding:5px 8px;border-radius:999px;background:#102b42;color:#8bb7d5}.status.eligible{color:#78e7bd;background:#12382e}.winner-status{color:#ffe799!important;background:#443818!important}.disabled-status{color:#a6a6b0!important;background:#26262b!important}.mini{padding:6px 9px;font-size:11px}.empty{text-align:center!important;padding:40px!important;color:#64829e}.settings{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings .card{margin:0}.settings label{display:block;margin-top:14px;color:#9eb5ca;font-size:12px}.settings label input{margin-top:7px}.check{display:flex!important;justify-content:space-between;align-items:center}.check input{width:22px;height:22px;margin:0!important}.hint{margin-top:10px!important;font-size:11px!important}.lock-card{border-color:#6f6235}.summary{min-height:100vh;background:radial-gradient(circle at 80% 0,#0b315d,#06162a 44%,#04101f);padding:35px}.sumwrap{max-width:1100px;margin:auto}.sumhead{display:flex;gap:22px;justify-content:space-between;align-items:center;margin-bottom:24px}.sumhead h1{font-size:34px;margin:4px 0}.sumhead span{color:#8faac3}.sumhead>button{border:0;background:transparent;color:#a9c1d8}.sumgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.sumitem{display:flex;gap:18px;padding:19px;border:1px solid #173a59;border-radius:16px;background:#091d35}.num{font-size:31px;color:#3b729e;font-weight:900}.sumitem small{color:#d8bd66}.sumitem h2{margin:4px 0;font-size:20px}.sumitem p{margin:0;color:#91adc7}.sumitem time{display:block;margin-top:8px;color:#577a9b;font-size:11px}.login-sheet{position:fixed;z-index:120;right:18px;bottom:18px;width:min(390px,calc(100vw - 36px));padding:18px;border-radius:16px;background:#091e37;border:1px solid #284d71;box-shadow:var(--shadow)}.login-sheet h3{margin:0 0 5px}.login-sheet p{margin:0 0 12px;color:#8eabc4;font-size:12px}.login-sheet input{width:100%;height:40px;border:1px solid #31577c;border-radius:10px;background:#061426;color:white;padding:0 12px}.login-sheet .actions{margin-top:10px}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes pop{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes sweep{to{transform:rotate(360deg)}}@keyframes fall{to{transform:translate3d(var(--x),110vh,0) rotate(720deg)}}@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.admin{grid-template-columns:1fr}.side{position:relative;height:auto}.nav{grid-template-columns:repeat(4,1fr)}.open-public{margin-top:12px}.settings{grid-template-columns:1fr}.sumgrid{grid-template-columns:1fr}.top{padding:16px}.brand b{font-size:13px}.brand small{font-size:10px}.brand-logo{width:50px;height:50px}.brand-logo img{width:42px;height:42px}}@media(max-width:600px){.main{padding:20px 14px}.stats{grid-template-columns:1fr}.cardhead,.actionrow,.sumhead{align-items:stretch;flex-direction:column}.search{width:100%}.prizes{grid-template-columns:1fr}.nav{grid-template-columns:1fr 1fr}.wheel-wrap{width:min(76vw,480px)}.winner{padding:35px 22px}.sumhead{align-items:flex-start}}
