*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;min-height:100vh;padding:16px 14px 108px;font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;color:#fff;background:radial-gradient(circle at 10% 0%,rgba(255,55,150,.48),transparent 32%),radial-gradient(circle at 95% 4%,rgba(255,134,36,.42),transparent 34%),linear-gradient(160deg,#4a073f,#210825 55%,#08030d);overflow-x:hidden}
.app{max-width:480px;margin:auto}
.hero{display:flex;justify-content:space-between;align-items:flex-start;margin:8px 2px 14px}
h1{margin:0;font-size:34px;line-height:1;font-weight:1000;letter-spacing:0}.sub{margin:8px 0 0;opacity:.85;font-size:15px}
.iconBtns{display:flex;gap:10px}.iconBtns button{width:56px;height:66px;border-radius:18px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;font-size:23px;font-weight:900;box-shadow:0 12px 24px rgba(0,0,0,.2)}.iconBtns span{display:block;font-size:12px;margin-top:3px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.stat{min-height:64px;border-radius:18px;padding:9px;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.065));border:1px solid rgba(255,255,255,.13);box-shadow:0 10px 24px rgba(0,0,0,.18)}.stat span{font-size:12px;opacity:.9;white-space:nowrap}.stat b{display:block;font-size:21px;margin-top:3px;color:#fff}
.stock{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:10px}.stock div{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.075);border-radius:14px;padding:7px 1px;text-align:center;font-weight:900;font-size:12px}.stock b{display:block;color:#ffd86a;font-size:15px}
.panel{border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.075);padding:11px;margin-bottom:10px;box-shadow:0 14px 28px rgba(0,0,0,.18)}.panel b{color:#ffd86a}.panel small{display:block;opacity:.8;margin-top:4px;line-height:1.4}.livePanel{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.rewardIcon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#fff3ad,#ffbf29 68%,#7b3b00);font-size:24px}
.stage{margin-top:8px}.guide{text-align:center;opacity:.8;font-size:13px;margin:0 0 8px}.ticketWrap{min-height:160px;display:flex;align-items:center}.ticket{width:100%;height:154px;border-radius:22px;position:relative;overflow:hidden;color:#251039;background:linear-gradient(180deg,#fffdf0,#ffe79f);border:2px solid rgba(255,255,255,.92);box-shadow:0 20px 44px rgba(0,0,0,.34);touch-action:none}.ticket:before{content:"";position:absolute;inset:10px;border:2px dashed rgba(37,16,57,.22);border-radius:16px;z-index:20;pointer-events:none}.ticket.shake{animation:shake .25s}
.cover{position:absolute;inset:0;z-index:10;background:linear-gradient(180deg,#fff8d5,#f2d27d);clip-path:inset(0 0 0 0);will-change:clip-path}.coverIn{height:100%;display:flex;align-items:center;gap:14px;padding:0 86px 0 22px}.logo{width:62px;height:112px;border-right:3px dashed rgba(37,16,57,.28);display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-size:31px;font-weight:1000}.main{font-size:25px;font-weight:1000}.en{font-size:13px;font-weight:900;letter-spacing:.12em;opacity:.55}.small{font-size:13px;opacity:.62;margin-top:8px}.tear{position:absolute;right:0;top:0;bottom:0;width:82px;z-index:25;border-left:4px dashed rgba(86,55,22,.55);background:linear-gradient(90deg,rgba(255,255,255,.08),#ffe28a 54%,#ffd15e);display:flex;align-items:center;justify-content:center;touch-action:none}.tear b{writing-mode:vertical-rl;font-size:22px}.hole{position:absolute;top:50%;width:28px;height:42px;border-radius:50%;background:#2c123c;z-index:30;transform:translateY(-50%)}.hole.left{left:-15px}.hole.right{right:-15px}
.result{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px 30px;opacity:0}.ticket.reveal .result{opacity:1}.ticket.done .cover,.ticket.done .tear{display:none}.rank{font-size:36px;font-weight:1000}.title{font-size:14px;font-weight:900;opacity:.72;margin-top:5px}.quote{font-size:16px;font-weight:1000;margin-top:10px;line-height:1.4}
.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px;margin-bottom:10px}.draw{min-height:60px;border:0;border-radius:17px;font-size:17px;font-weight:1000;color:#251039;box-shadow:0 15px 28px rgba(0,0,0,.28)}.draw small{display:block;font-size:12px;margin-top:3px}.single{background:linear-gradient(#fff,#e8e4e8)}.five{background:linear-gradient(#ffe9a9,#ffbe51)}.ten{background:linear-gradient(#ff78aa,#ff8b2f);color:#fff}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;padding:8px 14px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,rgba(8,3,14,.95) 26%)}.tabbar{max-width:480px;margin:auto;height:68px;border-radius:24px;padding:7px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.nav{height:54px;border:0;border-radius:19px;background:transparent;color:rgba(255,255,255,.58);font-weight:900}.nav.active{color:#ffd86a;background:radial-gradient(circle at 50% 20%,rgba(255,216,106,.32),rgba(255,216,106,.08) 55%,transparent 72%)}.nav em{display:block;font-style:normal;font-size:21px}.view{display:none}.view.active{display:block}
button{font-family:inherit}.panel button,.card button,.prizeCard button{border:0;border-radius:16px;padding:12px 18px;background:linear-gradient(#fff,#e8e4e8);color:#251039;font-weight:1000}.goldBtn{width:100%;margin-top:10px;background:linear-gradient(#fff4b0,#ffcf4d 55%,#ffae2e)!important}.dangerBtn{width:100%;margin-top:10px;background:linear-gradient(#ffb0c6,#ff3d6e)!important;color:#fff!important}
.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:rgba(0,0,0,.82);border-radius:999px;padding:11px 16px;font-weight:900;opacity:0;transition:.2s;z-index:100}.toast.show{opacity:1}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:120;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.card{width:min(92vw,390px);max-height:86vh;overflow:auto;border-radius:28px;color:#251039;text-align:center;padding:24px 20px;background:linear-gradient(145deg,#fff8cc,#fff,#ffd86a)}.card h2{margin:0 0 8px}.resultItem{background:rgba(37,16,57,.08);border:1px solid rgba(37,16,57,.12);border-radius:15px;padding:10px;margin:8px 0;text-align:left;font-weight:800;line-height:1.42}
.prizeModal{display:none;position:fixed;inset:0;z-index:130;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.75)}.prizeModal.show{display:flex}.prizeCard{width:min(92vw,390px);border-radius:32px;color:#251039;text-align:center;padding:30px 22px;background:linear-gradient(145deg,#fff8cc,#fff,#ffd86a);box-shadow:0 0 60px rgba(255,216,106,.45);animation:pop .32s}.prizeCard.A{background:linear-gradient(145deg,#fff4a8,#fff,#ffbf29)}.prizeCard.B{background:linear-gradient(145deg,#ffe4ff,#fff,#bb66ff)}.prizeCard.C{background:linear-gradient(145deg,#fff0d1,#fff,#ff8b2f)}.prizeCard.D{background:linear-gradient(145deg,#d9f0ff,#fff,#67b7ff)}.prizeRank{font-size:54px;font-weight:1000}.prizeName{font-size:22px;font-weight:1000;margin-top:8px}.prizeQuote{font-size:18px;font-weight:900;line-height:1.45;margin:14px 0 20px}
.fxLayer{pointer-events:none;position:fixed;inset:0;z-index:125;overflow:hidden}.spark{position:absolute;width:9px;height:16px;border-radius:2px;animation:fall 1.5s linear forwards}.flash{animation:flash .45s}.globalNotice{position:fixed;top:12px;left:50%;transform:translateX(-50%) translateY(-140%);z-index:140;width:min(92vw,390px);border-radius:18px;padding:14px;background:linear-gradient(145deg,#fff8cc,#fff,#ffd86a);color:#251039;box-shadow:0 20px 60px rgba(0,0,0,.45);font-weight:1000;text-align:center;transition:.35s}.globalNotice.show{transform:translateX(-50%) translateY(0)}
.log{background:rgba(0,0,0,.18);border-radius:14px;padding:10px;margin:8px 0;font-size:13px;line-height:1.5;border:1px solid rgba(255,255,255,.08)}
@keyframes pop{0%{transform:scale(.88);opacity:0}70%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:.15}}@keyframes flash{0%,100%{filter:brightness(1)}50%{filter:brightness(1.8)}}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}
@media(max-height:760px){body{padding-top:10px}.hero{margin-bottom:8px}h1{font-size:29px}.sub{font-size:13px}.panel{padding:10px;margin-bottom:8px}.stat{min-height:58px}.ticket{height:140px}.ticketWrap{min-height:146px}.draw{min-height:54px;font-size:16px}.stock div{padding:5px 1px}}


/* V3.5 optimizations */
.lastWarning{
  display:none;margin:0 0 10px;padding:10px 12px;border-radius:18px;
  background:linear-gradient(90deg,rgba(255,80,60,.22),rgba(255,216,106,.12));
  border:1px solid rgba(255,130,80,.28);
  color:#ffd86a;font-weight:1000;text-align:center;
  box-shadow:0 10px 24px rgba(255,80,40,.12);
}
.lastWarning.show{display:block;animation:pulseWarn 1.2s ease-in-out infinite}
.homeShareInvite{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 0}
.miniTask{
  min-height:92px;border-radius:20px;padding:12px;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.055));
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 12px 24px rgba(0,0,0,.18)
}
.miniTask b{display:block;color:#ffd86a;font-size:14px;line-height:1.25}
.miniTask small{display:block;font-size:12px;opacity:.78;margin:5px 0 8px;line-height:1.3}
.miniTask button{
  width:100%;height:34px;border-radius:999px!important;padding:0!important;font-size:12px!important;
  background:linear-gradient(180deg,#fff4b0,#ffcf4d 55%,#ffae2e)!important;color:#251039!important
}
.miniTask.invite button{background:linear-gradient(180deg,#b0d5ff,#4669ff)!important;color:#fff!important}
.fxGlowA:before,.fxGlowB:before,.fxGlowC:before,.fxGlowD:before{
  content:"";position:fixed;inset:-20%;z-index:124;pointer-events:none;opacity:.0;animation:awardGlow 1.4s ease-out forwards
}
.fxGlowA:before{background:radial-gradient(circle,#fff7b0 0%,rgba(255,200,40,.35) 18%,transparent 56%)}
.fxGlowB:before{background:radial-gradient(circle,#ffd8ff 0%,rgba(170,80,255,.35) 18%,transparent 56%)}
.fxGlowC:before{background:radial-gradient(circle,#ffe2a8 0%,rgba(255,120,30,.28) 20%,transparent 58%)}
.fxGlowD:before{background:radial-gradient(circle,#d8f2ff 0%,rgba(80,180,255,.28) 20%,transparent 58%)}
@keyframes awardGlow{0%{opacity:0;transform:scale(.8)}28%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
@keyframes pulseWarn{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25)}}
@media(max-height:760px){
  .homeShareInvite{display:none}
  .ticket{height:136px}
  .ticketWrap{min-height:140px}
  .hero{margin-bottom:6px}
  .panel.livePanel{display:none}
}
@media(max-width:390px){
  .homeShareInvite{grid-template-columns:1fr}
  .miniTask{min-height:78px}
}


/* Public play version */
.publicNote{
  margin:8px 0 10px;
  padding:9px 12px;
  border-radius:16px;
  background:rgba(255,216,106,.1);
  border:1px solid rgba(255,216,106,.25);
  color:#ffd86a;
  font-size:12px;
  font-weight:900;
  text-align:center;
}


.hidden{display:none!important}
.adminGate{display:none;position:fixed;inset:0;z-index:160;background:rgba(0,0,0,.72);align-items:center;justify-content:center;padding:20px}
.adminGate.show{display:flex}
.adminGateCard{width:min(92vw,390px);border-radius:28px;background:linear-gradient(145deg,#fff,#fff7cd,#ffd86a);color:#251039;padding:24px;box-shadow:0 34px 90px rgba(0,0,0,.58)}
.adminGateCard h2{margin:0 0 6px;font-size:28px}
.adminGateCard p{margin:0 0 10px;font-weight:900;opacity:.75}
.adminGateCard input{width:100%;border:0;border-radius:14px;padding:13px;background:rgba(255,255,255,.92);color:#251039;font-weight:900}
.adminGateActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}


.textInput{
  width:100%;border:0;border-radius:14px;padding:12px;margin-top:9px;
  background:rgba(255,255,255,.92);color:#251039;font-weight:900;font-size:15px;
}
.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.adminPage .panel{margin-bottom:10px}
.adminHeader{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.075);
  padding:12px;margin-bottom:10px;
}
.adminHeader b{color:#ffd86a;font-size:20px}.adminHeader small{display:block;opacity:.78;margin-top:3px}
.adminTabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.adminTab{
  border:0;border-radius:14px;padding:10px 2px;background:rgba(255,255,255,.10);
  color:rgba(255,255,255,.68);font-weight:1000;font-size:12px
}
.adminTab.active{background:linear-gradient(180deg,#fff4b0,#ffcf4d 55%,#ffae2e);color:#251039}
.adminSection{display:none}.adminSection.active{display:block}
.adminGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.adminCard{
  min-height:86px;border-radius:18px;padding:12px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.12)
}
.adminCard span{display:block;font-size:12px;opacity:.8}.adminCard b{display:block;font-size:24px;color:#ffd86a;margin-top:4px}
.codeItem{padding:10px;border-radius:13px;background:rgba(0,0,0,.18);margin:8px 0;line-height:1.45}
.codeItem b{color:#ffd86a}
@media(max-width:390px){
  .adminTabs{grid-template-columns:repeat(3,1fr)}
  .formGrid{grid-template-columns:1fr}
}


/* v2.1 fixed public/admin layout */
.tabbar .hidden{display:none!important}
body.adminMode .tabbar{grid-template-columns:repeat(4,1fr)}
body:not(.adminMode) .tabbar{grid-template-columns:repeat(3,1fr)}
body:not(.adminMode) .adminOnly{display:none!important}
.adminPage{padding-bottom:24px}
.homeShareInvite{margin-bottom:86px}
@media(max-height:820px){
  .homeShareInvite{display:none!important}
  .panel.livePanel{padding:10px!important}
  .ticket{height:138px!important}
  .ticketWrap{min-height:142px!important}
  .actions{margin-bottom:90px!important}
}
@media(max-width:420px){
  .draw{min-height:54px!important;font-size:15px!important}
  .draw small{font-size:11px!important}
  .stats{gap:6px!important}
  .stat{padding:8px!important}
  .stat b{font-size:19px!important}
}


/* Marquee + global award announcement */
.marqueeBox{
  height:42px;
  display:flex;
  align-items:center;
  overflow:hidden;
  margin:0 0 10px;
  padding:0 12px;
  border-radius:18px;
  border:1px solid rgba(255,216,106,.28);
  background:linear-gradient(90deg,rgba(255,216,106,.12),rgba(255,255,255,.055));
  color:#ffe889;
  font-weight:1000;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}
.marqueeBox span{
  display:inline-block;
  padding-left:100%;
  animation:marqueeMove 12s linear infinite;
}
@keyframes marqueeMove{
  from{transform:translateX(0)}
  to{transform:translateX(-100%)}
}
.globalNotice{
  font-size:18px;
  line-height:1.4;
  border:2px solid rgba(255,216,106,.5);
}
.globalNotice.bigPrize{
  background:linear-gradient(145deg,#fff8cc,#fff,#ffd86a,#ff9e2c);
  animation:globalPrizePop .55s ease-out, globalPrizePulse 1.1s ease-in-out infinite .6s;
}
@keyframes globalPrizePop{
  0%{transform:translateX(-50%) translateY(-150%) scale(.82);opacity:0}
  70%{transform:translateX(-50%) translateY(0) scale(1.04);opacity:1}
  100%{transform:translateX(-50%) translateY(0) scale(1)}
}
@keyframes globalPrizePulse{
  0%,100%{filter:brightness(1)}
  50%{filter:brightness(1.22)}
}


/* UI optimization v1 */
body{padding-top:18px!important}
.hero{margin-bottom:12px!important}
h1{font-size:32px!important;letter-spacing:0!important}
.sub{font-size:14px!important;line-height:1.45!important;max-width:220px}
.stats{gap:7px!important}
.stat{min-height:58px!important;border-radius:17px!important;padding:8px!important}
.stat span{font-size:12px!important}.stat b{font-size:22px!important}
.stock{gap:5px!important}.stock div{border-radius:13px!important;padding:6px 1px!important;font-size:12px!important}
.panel{border-radius:22px!important}
.livePanel{min-height:76px}
.stage{margin-top:10px!important}
.ticketWrap{min-height:150px!important}
.ticket{height:148px!important}
.actions{gap:9px!important;margin-top:12px!important;margin-bottom:104px!important}
.draw{min-height:58px!important;border-radius:18px!important}
.homeShareInvite{display:none!important}
.publicNote{font-size:12px!important;padding:8px 10px!important;margin-bottom:8px!important}
.marqueeBox{height:38px!important;margin-bottom:8px!important}
.view#memberView .panel:first-child .log{font-size:14px!important;line-height:1.7!important}
#newUser{display:none!important}
.fieldLabel{display:block;margin:14px 0 4px;color:#ffd86a;font-weight:1000;font-size:15px}
.fieldHelp{display:block;opacity:.72;font-size:12px;line-height:1.4;margin-bottom:5px}
.prizeEditor{margin-top:10px}
.prizeRow{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);border-radius:18px;padding:12px;margin:10px 0}
.prizeRowTitle{display:flex;justify-content:space-between;align-items:center;color:#ffd86a;font-weight:1000;margin-bottom:8px}
.prizeGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.prizeGrid .full{grid-column:1/-1}
@media(max-height:780px){
  .hero{margin-bottom:8px!important}
  h1{font-size:29px!important}
  .iconBtns button{width:52px!important;height:60px!important}
  .livePanel{display:none!important}
  .ticket{height:136px!important}
  .ticketWrap{min-height:140px!important}
}
@media(max-width:390px){
  body{padding-left:12px!important;padding-right:12px!important}
  .prizeGrid{grid-template-columns:1fr}
}


/* ==========================================================
   UI CLEAN V2 - true layout optimization
   ========================================================== */
body{
  padding:18px 16px 104px!important;
  background:
    radial-gradient(circle at 14% 0%,rgba(255,75,165,.42),transparent 30%),
    radial-gradient(circle at 100% 4%,rgba(255,130,55,.32),transparent 30%),
    linear-gradient(160deg,#3b0638,#17071e 58%,#06020a)!important;
}
.app{max-width:430px!important}
.hero{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:start!important;
  gap:12px!important;
  margin:4px 0 16px!important;
}
h1{
  font-size:34px!important;
  line-height:1.05!important;
  letter-spacing:0!important;
  margin:0!important;
}
.sub{
  margin-top:8px!important;
  max-width:240px!important;
  font-size:15px!important;
  color:rgba(255,255,255,.86)!important;
  line-height:1.45!important;
}
.iconBtns{gap:8px!important}
.iconBtns button{
  width:58px!important;
  height:64px!important;
  border-radius:20px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.06))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
}
.iconBtns span{font-size:12px!important}

.stats{
  grid-template-columns:repeat(4,1fr)!important;
  gap:8px!important;
  margin-bottom:10px!important;
}
.stat{
  min-height:72px!important;
  border-radius:18px!important;
  padding:10px 8px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.055))!important;
}
.stat span{
  display:flex!important;
  gap:4px!important;
  align-items:center!important;
  font-size:12px!important;
  opacity:.88!important;
}
.stat b{
  font-size:24px!important;
  line-height:1.05!important;
  margin-top:7px!important;
}

.stock{
  display:grid!important;
  grid-template-columns:repeat(7,1fr)!important;
  gap:6px!important;
  margin:8px 0 12px!important;
}
.stock div{
  min-height:58px!important;
  border-radius:15px!important;
  padding:8px 2px!important;
  background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  font-size:12px!important;
}
.stock b{font-size:16px!important;margin-top:4px!important}

.marqueeBox{
  height:42px!important;
  padding:0 14px!important;
  border-radius:18px!important;
  margin:4px 0 12px!important;
  background:linear-gradient(90deg,rgba(255,216,106,.14),rgba(255,255,255,.055))!important;
  border:1px solid rgba(255,216,106,.24)!important;
  overflow:hidden!important;
}
.marqueeBox span{
  display:inline-block!important;
  white-space:nowrap!important;
  padding-left:100%!important;
  animation:marqueeMove 12s linear infinite!important;
  font-size:14px!important;
}
@keyframes marqueeMove{from{transform:translateX(0)}to{transform:translateX(-120%)}}

.publicNote{display:none!important}
.lastWarning{margin-bottom:10px!important}

.panel.livePanel{
  min-height:auto!important;
  padding:12px!important;
  margin-bottom:12px!important;
  border-radius:22px!important;
  grid-template-columns:42px 1fr auto!important;
}
.panel.livePanel .rewardIcon{
  width:42px!important;
  height:42px!important;
  font-size:22px!important;
}
.panel.livePanel b{font-size:18px!important}
.panel.livePanel small{
  font-size:13px!important;
  line-height:1.45!important;
}
#refresh{
  min-width:72px!important;
  padding:12px 14px!important;
  border-radius:16px!important;
}

.guide{
  margin:6px 0 10px!important;
  font-size:14px!important;
  color:rgba(255,255,255,.72)!important;
}
.ticketWrap{
  min-height:168px!important;
  align-items:center!important;
}
.ticket{
  height:164px!important;
  border-radius:24px!important;
  box-shadow:0 18px 36px rgba(0,0,0,.34)!important;
}
.coverIn{
  padding:0 86px 0 22px!important;
  gap:16px!important;
}
.logo{
  width:58px!important;
  height:112px!important;
  font-size:30px!important;
}
.en{font-size:13px!important}
.main{font-size:27px!important}
.small{font-size:14px!important}
.tear{width:82px!important}
.tear b{font-size:23px!important}

.actions{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:10px!important;
  margin:14px 0 104px!important;
}
.draw{
  min-height:66px!important;
  border-radius:20px!important;
  font-size:18px!important;
}
.draw small{
  font-size:13px!important;
  margin-top:4px!important;
}

.homeShareInvite{display:none!important}

.tabs{
  padding:8px 14px calc(8px + env(safe-area-inset-bottom))!important;
}
.tabbar{
  height:66px!important;
  border-radius:24px!important;
  grid-template-columns:repeat(4,1fr)!important;
}
body.adminMode .tabbar{grid-template-columns:repeat(4,1fr)!important}
.nav{
  height:52px!important;
  border-radius:18px!important;
  font-size:13px!important;
}
.nav em{font-size:21px!important}

/* Member page clean */
#memberView .panel{
  border-radius:24px!important;
  padding:16px!important;
}
#memberView .panel:first-child b{
  font-size:21px!important;
}
#memberView .log{
  padding:14px!important;
  border-radius:18px!important;
  line-height:1.75!important;
  font-size:14px!important;
}
#newUser{display:none!important}
#history .log{
  margin:10px 0!important;
  background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.045))!important;
}

/* Mobile compact */
@media(max-height:760px){
  body{padding-top:12px!important}
  h1{font-size:30px!important}
  .sub{font-size:13px!important}
  .iconBtns button{width:52px!important;height:58px!important}
  .stats{gap:6px!important}
  .stat{min-height:58px!important;padding:8px 6px!important}
  .stat b{font-size:20px!important}
  .stock div{min-height:50px!important;font-size:11px!important}
  .panel.livePanel{display:none!important}
  .ticketWrap{min-height:142px!important}
  .ticket{height:138px!important}
  .actions{margin-bottom:90px!important}
  .draw{min-height:58px!important;font-size:16px!important}
}
@media(max-width:380px){
  body{padding-left:12px!important;padding-right:12px!important}
  h1{font-size:29px!important}
  .stock{gap:4px!important}
  .stock div{font-size:11px!important}
  .actions{gap:8px!important}
}


/* Legacy exchange styles retained only for old hidden markup */
.exchangePanel b{font-size:22px}
.exchangeOptions{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.exchangeCard{
  position:relative;
  width:100%;
  min-height:78px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  padding:13px 14px;
  text-align:left;
  color:#fff;
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.05));
  box-shadow:0 12px 24px rgba(0,0,0,.18);
}
.exchangeCard span{
  display:block;
  color:rgba(255,255,255,.76);
  font-size:13px;
  font-weight:900;
  margin-bottom:6px;
}
.exchangeCard b{
  display:block;
  color:#ffd86a;
  font-size:22px;
  line-height:1.1;
}
.exchangeCard em{
  position:absolute;
  right:12px;
  top:10px;
  padding:4px 9px;
  border-radius:999px;
  font-style:normal;
  font-size:11px;
  font-weight:1000;
  color:#251039;
  background:linear-gradient(#fff4b0,#ffcf4d);
}
.exchangeCard.hot{
  border-color:rgba(255,216,106,.38);
  background:linear-gradient(145deg,rgba(255,216,106,.18),rgba(255,255,255,.06));
}
.exchangeCard.best{
  border-color:rgba(255,120,170,.38);
  background:linear-gradient(145deg,rgba(255,120,170,.18),rgba(255,255,255,.06));
}
.exchangeCard:active{transform:scale(.98)}


/* Shop exchange v2.1 readable fix */
.exchangeCard,
.exchangeCard.single,
.exchangeCard.hot,
.exchangeCard.best{
  background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(45,15,55,.72))!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.16)!important;
}
.exchangeCard:first-child{
  background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(45,15,55,.78))!important;
}
.exchangeCard span{
  color:rgba(255,255,255,.88)!important;
  opacity:1!important;
}
.exchangeCard b{
  color:#ffd86a!important;
  text-shadow:0 2px 8px rgba(0,0,0,.22)!important;
}
.exchangeCard.hot{
  border-color:rgba(255,216,106,.42)!important;
}
.exchangeCard.best{
  border-color:rgba(255,120,170,.42)!important;
}
.exchangeCard em{
  color:#251039!important;
  background:linear-gradient(#fff7c7,#ffd34f)!important;
}


/* V4 admin field notes */
.adminFormPanel{
  padding:18px!important;
}
.adminFormPanel > b{
  display:block;
  font-size:22px!important;
  color:#ffd86a!important;
  margin-bottom:4px!important;
}
.adminFormPanel > small{
  display:block;
  color:rgba(255,255,255,.78)!important;
  font-size:13px!important;
  line-height:1.55!important;
  margin-bottom:14px!important;
}
.settingGroup{
  padding:14px;
  border-radius:20px;
  background:rgba(0,0,0,.14);
  border:1px solid rgba(255,255,255,.10);
  margin:12px 0;
}
.settingGroup h3{
  margin:0 0 10px;
  color:#ffd86a;
  font-size:18px;
}
.fieldLabel{
  display:block!important;
  margin:12px 0 4px!important;
  color:#ffd86a!important;
  font-weight:1000!important;
  font-size:15px!important;
}
.fieldHelp{
  display:block!important;
  color:rgba(255,255,255,.70)!important;
  font-size:12px!important;
  line-height:1.45!important;
  margin:0 0 6px!important;
}
.adminFormPanel .textInput{
  margin:0 0 8px!important;
  background:rgba(255,255,255,.94)!important;
  color:#251039!important;
  font-weight:900!important;
}
.adminFormPanel select.textInput{
  height:52px!important;
}
.adminFormPanel .goldBtn{
  margin-top:12px!important;
}


/* Prize control admin */
.prizeControlList{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.prizeControlCard{
  border:1px solid rgba(255,255,255,.13);
  background:rgba(0,0,0,.16);
  border-radius:20px;
  padding:13px;
}
.prizeControlHead{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:10px;
}
.prizeControlHead b{
  color:#ffd86a;
  font-size:20px;
}
.prizeControlHead small{
  color:rgba(255,255,255,.72);
  font-size:12px;
}
.prizeControlGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.prizeControlGrid .full{grid-column:1/-1}
.prizeState{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  padding:5px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:1000;
  background:rgba(255,255,255,.1);
  color:#fff;
}
.prizeState.locked{background:rgba(255,80,80,.18);color:#ffb0b0}
.prizeState.open{background:rgba(80,255,160,.16);color:#a8ffd0}
.prizeState.done{background:rgba(180,180,180,.18);color:#ddd}
.prizeState.guarantee{background:rgba(255,216,106,.20);color:#ffd86a}
@media(max-width:390px){
  .prizeControlGrid{grid-template-columns:1fr}
}


/* QR redeem/download */
.secondaryBtn{
  width:100%;
  margin-top:10px;
  border:0;
  border-radius:16px;
  padding:12px 18px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(210,205,220,.92));
  color:#251039;
  font-weight:1000;
}
.qrScanBox{
  margin-top:12px;
  border-radius:18px;
  overflow:hidden;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.12);
  padding:10px;
}
.qrScanBox.hidden{display:none!important}
#qrReader{
  width:100%;
  background:#111;
  border-radius:14px;
  overflow:hidden;
}
.codeActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.codeActions button{
  border:0;
  border-radius:13px;
  padding:9px 8px;
  font-size:12px;
  font-weight:1000;
  background:linear-gradient(#fff4b0,#ffcf4d);
  color:#251039;
}
.codeActions .copyBtn{
  background:linear-gradient(#fff,#e8e4e8);
}


/* QR batch v1 */
.codeActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.codeActions button{
  border:0;
  border-radius:13px;
  padding:9px 8px;
  font-size:12px;
  font-weight:1000;
  background:linear-gradient(#fff4b0,#ffcf4d);
  color:#251039;
}
.codeActions .copyBtn{
  background:linear-gradient(#fff,#e8e4e8);
}
.secondaryBtn{
  width:100%;
  margin-top:10px;
  border:0;
  border-radius:16px;
  padding:12px 18px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(210,205,220,.92));
  color:#251039;
  font-weight:1000;
}
.qrScanBox.hidden{display:none!important}
.qrScanBox{
  margin-top:12px;
  border-radius:18px;
  overflow:hidden;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.12);
  padding:10px;
}
#qrReader{width:100%;background:#111;border-radius:14px;overflow:hidden;}


/* Auto refresh status */
.syncTime{
  margin:-4px 0 8px;
  text-align:right;
  font-size:11px;
  color:rgba(255,255,255,.55);
  font-weight:800;
}


/* Prize reveal modal and effects */
.resultModal{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.68);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.resultModal.hidden{display:none!important}
.resultBox{
  width:min(620px,94vw);
  max-height:78vh;
  overflow:auto;
  border-radius:28px;
  padding:20px;
  background:linear-gradient(180deg,#fff8d8,#fff);
  color:#261039;
  box-shadow:0 24px 80px rgba(0,0,0,.45);
  position:relative;
}
.resultBox h2{
  margin:0 0 14px;
  text-align:center;
  font-size:28px;
  font-weight:1000;
}
.resultClose{
  position:absolute;
  right:12px;
  top:10px;
  border:0;
  background:rgba(0,0,0,.08);
  border-radius:999px;
  width:36px;
  height:36px;
  font-size:26px;
  font-weight:900;
  color:#261039;
}
.resultList{
  display:grid;
  gap:10px;
  margin:10px 0 16px;
}
.resultItem{
  display:flex;
  gap:12px;
  align-items:center;
  padding:12px;
  border-radius:18px;
  background:rgba(60,20,70,.08);
  border:1px solid rgba(60,20,70,.12);
}
.resultItem.major{
  background:linear-gradient(90deg,#fff2a8,#ffd1e2);
  border:2px solid rgba(255,190,40,.7);
}
.resultRank{
  min-width:58px;
  height:58px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  font-weight:1000;
  background:#2b103a;
  color:#ffe46b;
}
.resultInfo{
  display:grid;
  gap:3px;
}
.resultInfo b{font-size:18px}
.resultInfo small{font-size:13px;opacity:.75}
.resultInfo span{font-size:14px;font-weight:900;color:#8a4b00}
.majorPrizeBurst{
  position:fixed;
  inset:auto 20px 20%;
  z-index:10000;
  margin:auto;
  max-width:520px;
  border-radius:28px;
  padding:22px;
  text-align:center;
  background:linear-gradient(135deg,#fff1a8,#ff6aa2,#8c4dff);
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.35);
  box-shadow:0 20px 80px rgba(255,100,180,.45);
  animation:majorBurstIn .35s ease-out both, majorBurstOut .35s ease-in 2.25s forwards;
}
.majorPrizeBurst div{font-size:56px}
.majorPrizeBurst b{display:block;font-size:48px;line-height:1}
.majorPrizeBurst span{display:block;font-size:20px;font-weight:900;margin-top:8px}
@keyframes majorBurstIn{
  from{transform:scale(.7) translateY(20px);opacity:0}
  to{transform:scale(1) translateY(0);opacity:1}
}
@keyframes majorBurstOut{
  to{transform:scale(.9) translateY(20px);opacity:0}
}


.resultInfo .announceText{
  display:block;
  font-size:14px;
  line-height:1.45;
  color:#4d285d;
  opacity:1;
  font-weight:800;
}
.resultItem.major .announceText{
  color:#4a1732;
}


.recordMeta{
  display:block;
  font-size:12px;
  color:#6b4b78;
  font-weight:800;
  margin-bottom:2px;
}
.replayablePrize{
  cursor:pointer;
  outline:2px solid rgba(255,220,90,.32);
}
.replayablePrize::after{
  content:" 點擊回看";
  display:inline-block;
  margin-left:6px;
  font-size:12px;
  color:#ffe66d;
  opacity:.9;
}


.announceText{
  display:block;
  margin-top:5px;
  font-size:15px;
  line-height:1.45;
  font-weight:900;
  color:#3c174d;
}
.resultItem.major .announceText{
  color:#571b31;
}
.recordMeta{
  display:block;
  font-size:12px;
  line-height:1.4;
  color:#6b4b78;
  font-weight:800;
}
.replayHint{
  color:#ffe66d;
  font-weight:900;
}


/* V3.7.4 emergency restore */
.drawRefreshBox{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0 10px;
  padding:0 2px;
}
.miniGoldBtn{
  border:0;
  border-radius:14px;
  padding:10px 14px;
  font-weight:1000;
  color:#281038;
  background:linear-gradient(180deg,#fff4a8,#ffc13d);
  box-shadow:0 8px 18px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.5);
}
.drawRefreshHint{
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.3;
}
/* Hide the orphan former LAST chip only when it appears as a 7th prize chip */
.prizeGridNoLast > *:nth-child(n+7){
  display:none!important;
}

/* V3.7.5 safe UI/admin fix */
.stock{
  grid-template-columns:repeat(6,1fr)!important;
}
.stock > div:nth-child(n+7){
  display:none!important;
}
.drawRefreshBox{
  display:flex;
  align-items:center;
  gap:10px;
  margin:10px 0 10px;
}
.miniGoldBtn{
  border:0;
  border-radius:14px;
  padding:10px 14px;
  font-weight:1000;
  color:#281038;
  background:linear-gradient(180deg,#fff4a8,#ffc13d);
  box-shadow:0 8px 18px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.5);
}
.drawRefreshHint{
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.3;
}
.adminTabs{
  grid-template-columns:repeat(5,1fr)!important;
}
@media(max-width:520px){
  .adminTabs{grid-template-columns:repeat(3,1fr)!important;}
}
.majorDateGroup{
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  padding:10px 12px;
  background:rgba(0,0,0,.16);
  margin:10px 0;
}
.majorDateGroup summary{
  cursor:pointer;
  font-weight:1000;
  color:#ffe66d;
  padding:8px 2px;
}
.majorLogItem{
  margin:10px 0;
  padding:12px;
  border-radius:14px;
  background:rgba(0,0,0,.22);
  line-height:1.55;
}
.majorLogItem code{
  font-size:12px;
  word-break:break-all;
}


/* V3.7.6 record order and history grouping */
.historyDateGroup{
  border:1px solid rgba(255,255,255,.16);
  border-radius:18px;
  padding:10px 12px;
  background:rgba(0,0,0,.12);
  margin:12px 0;
}
.historyDateGroup summary{
  cursor:pointer;
  font-weight:1000;
  color:#ffe66d;
  padding:8px 2px;
}
.historyItem{
  margin:10px 0;
}
.majorHistoryItem{
  border:2px solid rgba(255,214,94,.75)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.06), 0 12px 28px rgba(255,196,64,.12)!important;
  background:linear-gradient(180deg,rgba(255,223,105,.13),rgba(255,255,255,.05))!important;
}
.majorBadge{
  display:inline-block;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  color:#281038;
  background:linear-gradient(180deg,#fff4a8,#ffc13d);
  font-size:12px;
  font-weight:1000;
}
.recordMeta{
  color:rgba(255,255,255,.68);
  font-size:13px;
  line-height:1.45;
}
.silverText{
  color:#fff;
  font-weight:900;
}

.adminInlineControls{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:end;
}
.adminInlineControls .textInput{
  margin-top:9px;
}
.adminInlineControls button{
  min-height:45px;
  border:0;
  border-radius:14px;
  padding:0 16px;
  color:#281038;
  font-weight:1000;
  background:linear-gradient(180deg,#fff4a8,#ffc13d);
}


/* V4 numeric kuji frontend */
.stats{grid-template-columns:1fr 1.25fr .8fr!important}
.wideStat b{font-size:18px!important}
.luckyPanel,.drawnPanel{
  margin:10px 0;
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(255,216,106,.22);
  background:linear-gradient(145deg,rgba(255,216,106,.13),rgba(255,255,255,.05));
  box-shadow:0 12px 24px rgba(0,0,0,.16);
}
.sectionTitle{
  color:#ffe66d;
  font-size:15px;
  font-weight:1000;
  margin-bottom:9px;
}
.luckyList{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  margin:0!important;
}
.luckyItem{
  display:grid;
  grid-template-columns:64px 1fr;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.07);
}
.luckyItem span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  border-radius:12px;
  color:#281038;
  background:linear-gradient(180deg,#fff4a8,#ffc13d);
  font-size:21px;
  font-weight:1000;
  letter-spacing:.04em;
}
.luckyItem b{
  color:#fff!important;
  font-size:16px;
  line-height:1.3;
}
.luckyItem.drawn{
  opacity:.48;
  filter:grayscale(.4);
}
.stage{
  border-radius:22px;
  padding:12px;
  background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));
  border:1px solid rgba(255,255,255,.12);
}
.ticketWrap{justify-content:center!important}
.ticket{
  height:182px!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 18% 50%,rgba(255,255,255,.95) 0 9px,transparent 10px),
    radial-gradient(circle at 82% 50%,rgba(255,255,255,.95) 0 9px,transparent 10px),
    linear-gradient(180deg,#fffdf8,#ffeeb8)!important;
  transform-origin:center;
}
.ticket.peeling{
  animation:ticketFocus .32s ease-out both;
}
.ticket:before{
  inset:12px!important;
  border-color:rgba(37,16,57,.18)!important;
}
.result{
  opacity:1!important;
  z-index:2!important;
}
.rank{
  font-size:54px!important;
  line-height:1!important;
  letter-spacing:.08em;
  color:#241039;
}
.title{
  margin-top:10px!important;
  font-size:18px!important;
  color:#4c2458;
  opacity:1!important;
}
.quote{
  color:#6a3a18;
  font-size:14px!important;
}
.cover{
  background:
    linear-gradient(90deg,rgba(120,70,24,.14) 0 1px,transparent 1px 18px),
    linear-gradient(180deg,#f3d5a0,#d9a963 58%,#bd813f)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28), -10px 0 22px rgba(62,28,10,.2);
}
.cover:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(100deg,transparent 45%,rgba(255,255,255,.25),transparent 55%);
  opacity:.65;
}
.coverIn{
  padding:0 76px 0 24px!important;
}
.logo{
  color:#3d2313;
  border-right-color:rgba(61,35,19,.35)!important;
}
.en,.main,.small{color:#3d2313}
.main{font-size:24px!important}
.tear{
  width:68px!important;
  color:#3d2313;
  background:linear-gradient(90deg,#cf9a50,#f1c679 52%,#d3943e)!important;
  border-left:3px dashed rgba(61,35,19,.42)!important;
  box-shadow:-8px 0 18px rgba(70,32,10,.18);
  transition:transform .12s linear;
}
.ticket.done .cover,.ticket.done .tear{display:none!important}
.actions{
  display:grid!important;
  grid-template-columns:1fr!important;
  margin:14px 0 12px!important;
}
.draw.single{
  min-height:64px!important;
  font-size:21px!important;
  color:#281038!important;
  background:linear-gradient(180deg,#fff4a8,#ffc13d 58%,#ff9f28)!important;
}
.drawnNumbers{
  display:grid;
  grid-template-columns:repeat(8,1fr);
  gap:6px;
  max-height:160px;
  overflow:auto;
  padding-right:2px;
}
.drawnNumbers span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:31px;
  border-radius:9px;
  border:1px solid rgba(255,255,255,.11);
  color:rgba(255,255,255,.68);
  background:rgba(255,255,255,.055);
  font-size:12px;
  font-weight:1000;
}
.drawnNumbers span.used{
  color:rgba(255,255,255,.42);
  background:rgba(180,180,190,.22);
  text-decoration:line-through;
}
.resultRank{
  font-size:22px!important;
  letter-spacing:.04em;
}
@keyframes ticketFocus{
  from{transform:scale(.96);filter:brightness(1)}
  to{transform:scale(1.035);filter:brightness(1.05)}
}
@media(max-width:390px){
  .stats{grid-template-columns:1fr 1fr!important}
  .drawnNumbers{grid-template-columns:repeat(6,1fr)}
  .ticket{height:166px!important}
  .rank{font-size:46px!important}
}

/* V4 fresh Japanese theme */
:root{
  --jp-ink:#2f463f;
  --jp-muted:#6d8179;
  --jp-leaf:#7faf91;
  --jp-leaf-deep:#4f8a72;
  --jp-sakura:#e8a7b8;
  --jp-sakura-soft:#fff0f4;
  --jp-cream:#fffaf1;
  --jp-paper:#fffdf8;
  --jp-line:rgba(95,132,113,.22);
  --jp-shadow:0 14px 34px rgba(79,118,97,.14);
}
*{letter-spacing:0!important}
html,body{
  color:var(--jp-ink)!important;
  background:
    radial-gradient(circle at 14% 5%,rgba(232,167,184,.34),transparent 27%),
    radial-gradient(circle at 86% 10%,rgba(127,175,145,.28),transparent 28%),
    linear-gradient(180deg,#fffaf1 0%,#f6fbf2 44%,#fff7f1 100%)!important;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(95,132,113,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(95,132,113,.045) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.7),transparent 78%);
}
.app{
  max-width:520px!important;
  background:rgba(255,253,248,.7)!important;
  border-left:1px solid rgba(255,255,255,.8)!important;
  border-right:1px solid rgba(255,255,255,.8)!important;
  box-shadow:0 24px 70px rgba(79,118,97,.16)!important;
}
.hero{
  background:linear-gradient(135deg,rgba(255,253,248,.94),rgba(246,251,242,.88))!important;
  border:1px solid rgba(255,255,255,.76)!important;
  box-shadow:var(--jp-shadow)!important;
}
h1,#appTitle{
  color:var(--jp-ink)!important;
  text-shadow:none!important;
  font-weight:1000!important;
}
.sub,.fieldHelp,small{
  color:var(--jp-muted)!important;
}
.iconBtns button,
#refresh,
#adminRefresh,
.miniGoldBtn,
.goldBtn,
.secondaryBtn,
.dangerBtn,
.miniTask button{
  color:var(--jp-ink)!important;
  background:linear-gradient(180deg,#ffffff,#f5faf2)!important;
  border:1px solid var(--jp-line)!important;
  box-shadow:0 8px 18px rgba(79,118,97,.1)!important;
}
.goldBtn,.miniGoldBtn,.draw.single{
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--jp-leaf),var(--jp-leaf-deep))!important;
  border:1px solid rgba(255,255,255,.72)!important;
}
.dangerBtn{
  color:#9b5265!important;
  background:linear-gradient(180deg,#fff,#fff0f4)!important;
  border-color:rgba(232,167,184,.42)!important;
}
.stats{
  gap:10px!important;
}
.stat,
.panel,
.luckyPanel,
.drawnPanel,
.stage,
.miniTask,
.adminHeader,
.adminCard,
.codeItem,
.recordCard,
.activityCard,
.modal,
.settingsGrid,
.prizeRow,
.drawRefreshBox,
.lastWarning{
  color:var(--jp-ink)!important;
  background:rgba(255,253,248,.86)!important;
  border:1px solid rgba(255,255,255,.82)!important;
  box-shadow:var(--jp-shadow)!important;
}
.stat{
  border-radius:18px!important;
}
.stat span,
.sectionTitle,
.fieldLabel,
.adminHeader small,
.drawRefreshHint{
  color:var(--jp-muted)!important;
}
.stat b,
.sectionTitle,
.panel>b,
.miniTask>b,
.adminHeader b{
  color:var(--jp-ink)!important;
}
.luckyItem,
.stockItem{
  color:var(--jp-ink)!important;
  background:linear-gradient(135deg,#ffffff,#f7fbf5)!important;
  border:1px solid var(--jp-line)!important;
  box-shadow:0 8px 16px rgba(79,118,97,.08)!important;
}
.luckyItem span,
.stockItem span{
  color:var(--jp-leaf-deep)!important;
}
.marqueeBox{
  color:#476a5a!important;
  background:linear-gradient(90deg,#fff7fa,#f4fbef,#fffaf1)!important;
  border:1px solid rgba(232,167,184,.28)!important;
  box-shadow:0 8px 20px rgba(232,167,184,.12)!important;
}
.livePanel{
  background:linear-gradient(135deg,rgba(255,253,248,.9),rgba(244,251,239,.9))!important;
}
.rewardIcon{
  background:linear-gradient(135deg,#fff0f4,#f4fbef)!important;
  color:var(--jp-leaf-deep)!important;
  box-shadow:none!important;
}
.ticket{
  color:var(--jp-ink)!important;
  background:
    linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,250,241,.88)),
    repeating-linear-gradient(45deg,rgba(127,175,145,.08) 0 8px,transparent 8px 18px)!important;
  border:1px solid rgba(95,132,113,.2)!important;
  box-shadow:0 18px 38px rgba(79,118,97,.16)!important;
}
.ticket:before{
  background:linear-gradient(90deg,rgba(232,167,184,.32),rgba(127,175,145,.26))!important;
}
.result{
  background:linear-gradient(180deg,rgba(255,253,248,.92),rgba(246,251,242,.88))!important;
}
.rank{
  color:var(--jp-leaf-deep)!important;
  text-shadow:none!important;
}
.title{
  color:var(--jp-ink)!important;
}
.quote{
  color:var(--jp-muted)!important;
}
.cover{
  background:
    linear-gradient(135deg,rgba(255,253,248,.96),rgba(255,240,244,.94) 52%,rgba(244,251,239,.96)),
    repeating-linear-gradient(90deg,rgba(127,175,145,.11) 0 1px,transparent 1px 18px)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.78),-10px 0 22px rgba(79,118,97,.12)!important;
}
.cover:after{
  background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.58),transparent 58%)!important;
}
.logo{
  color:var(--jp-leaf-deep)!important;
  border-right-color:rgba(95,132,113,.24)!important;
}
.en,.main,.small{
  color:var(--jp-ink)!important;
}
.tear{
  color:var(--jp-ink)!important;
  background:linear-gradient(180deg,#fff0f4,#f7dbe4 56%,#f4c9d5)!important;
  border-left:3px dashed rgba(232,167,184,.48)!important;
  box-shadow:-8px 0 18px rgba(232,167,184,.15)!important;
}
.draw.single{
  border-radius:18px!important;
  box-shadow:0 14px 28px rgba(79,138,114,.24)!important;
}
.draw.single small{
  color:rgba(255,255,255,.86)!important;
}
.drawnNumbers span{
  color:var(--jp-muted)!important;
  background:#ffffff!important;
  border:1px solid var(--jp-line)!important;
}
.drawnNumbers span.used{
  color:#98a6a0!important;
  background:#eef2ee!important;
  border-color:rgba(109,129,121,.22)!important;
}
.tabbar{
  background:rgba(255,253,248,.92)!important;
  border-top:1px solid rgba(95,132,113,.16)!important;
  box-shadow:0 -16px 36px rgba(79,118,97,.12)!important;
}
.nav{
  color:var(--jp-muted)!important;
  background:transparent!important;
}
.nav.active{
  color:var(--jp-leaf-deep)!important;
  background:linear-gradient(180deg,#f4fbef,#ffffff)!important;
  border:1px solid var(--jp-line)!important;
}
.tabs,
.adminTabs{
  background:rgba(255,253,248,.76)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  box-shadow:var(--jp-shadow)!important;
}
.tab,
.adminTab{
  color:var(--jp-muted)!important;
  background:transparent!important;
}
.tab.active,
.adminTab.active{
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--jp-leaf),var(--jp-leaf-deep))!important;
  box-shadow:0 8px 18px rgba(79,138,114,.2)!important;
}
.textInput,
select,
textarea{
  color:var(--jp-ink)!important;
  background:#ffffff!important;
  border:1px solid var(--jp-line)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8)!important;
}
.textInput:focus,
select:focus,
textarea:focus{
  border-color:rgba(127,175,145,.8)!important;
  box-shadow:0 0 0 4px rgba(127,175,145,.16)!important;
  outline:none!important;
}
.prizeRowTitle,
.resultRank{
  color:var(--jp-leaf-deep)!important;
}
.globalNotice{
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--jp-leaf),var(--jp-leaf-deep))!important;
  box-shadow:0 16px 34px rgba(79,138,114,.28)!important;
}
.log,
#history,
#redeemHistory,
#adminPoolInfo{
  color:var(--jp-muted)!important;
}
@media(max-width:390px){
  .stats{grid-template-columns:1fr 1fr!important}
  .hero{border-radius:0 0 22px 22px!important}
  .drawnNumbers{grid-template-columns:repeat(6,1fr)!important}
}

/* V4.1 refined Japanese select-shop theme */
:root{
  --shop-ink:#263b34;
  --shop-sub:#71837b;
  --shop-line:#dce8df;
  --shop-bg:#f7faf4;
  --shop-card:#fffef9;
  --shop-green:#6fa986;
  --shop-green-dark:#44745f;
  --shop-pink:#e9a9b6;
  --shop-pink-soft:#fff3f5;
  --shop-yellow:#f4d98b;
  --shop-shadow:0 10px 28px rgba(53,91,72,.11);
}
body{
  color:var(--shop-ink)!important;
  background:
    radial-gradient(circle at 12% 0%,rgba(233,169,182,.22),transparent 25%),
    radial-gradient(circle at 92% 14%,rgba(111,169,134,.22),transparent 24%),
    linear-gradient(180deg,#fbfcf7 0%,#f5faf2 52%,#fff8f4 100%)!important;
}
body:before{
  opacity:.75!important;
  background-image:
    linear-gradient(120deg,rgba(111,169,134,.06) 0 1px,transparent 1px),
    linear-gradient(60deg,rgba(233,169,182,.05) 0 1px,transparent 1px)!important;
  background-size:36px 36px!important;
}
.app{
  max-width:520px!important;
  padding:14px 14px 104px!important;
  background:linear-gradient(180deg,rgba(255,255,252,.92),rgba(250,253,247,.9))!important;
  box-shadow:0 20px 70px rgba(53,91,72,.1)!important;
}
.hero{
  position:relative!important;
  align-items:center!important;
  margin:0 -2px 14px!important;
  padding:22px 18px 20px!important;
  border-radius:24px!important;
  background:
    linear-gradient(135deg,rgba(255,254,249,.96),rgba(246,251,242,.96)),
    radial-gradient(circle at 100% 0%,rgba(233,169,182,.25),transparent 34%)!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:var(--shop-shadow)!important;
  overflow:hidden!important;
}
.hero:before{
  content:"SENSEN SELECT";
  position:absolute;
  right:14px;
  bottom:10px;
  color:rgba(68,116,95,.1);
  font-size:12px;
  font-weight:1000;
  letter-spacing:.16em!important;
}
.hero:after{
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  right:-44px;
  top:-44px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(233,169,182,.28),transparent 70%);
}
h1,#appTitle{
  position:relative!important;
  z-index:1!important;
  margin:0 0 7px!important;
  color:var(--shop-ink)!important;
  font-size:30px!important;
  line-height:1.05!important;
  font-weight:1000!important;
}
.sub{
  position:relative!important;
  z-index:1!important;
  color:var(--shop-sub)!important;
  font-size:13px!important;
  font-weight:700!important;
}
.iconBtns{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  gap:8px!important;
}
.iconBtns button{
  width:auto!important;
  min-width:58px!important;
  height:44px!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  color:var(--shop-green-dark)!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 7px 16px rgba(53,91,72,.08)!important;
  font-size:13px!important;
}
.iconBtns button span{
  display:block!important;
  margin-top:1px!important;
  color:#9aaa9f!important;
  font-size:9px!important;
  font-weight:900!important;
  text-transform:uppercase!important;
}
.stats{
  display:grid!important;
  grid-template-columns:.78fr 1.34fr .78fr!important;
  gap:8px!important;
  margin:0 0 10px!important;
}
.stat{
  min-height:58px!important;
  padding:10px 12px!important;
  border-radius:18px!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 7px 18px rgba(53,91,72,.07)!important;
}
.stat span{
  color:var(--shop-sub)!important;
  font-size:11px!important;
  font-weight:900!important;
}
.stat b{
  color:var(--shop-ink)!important;
  font-size:22px!important;
  font-weight:1000!important;
}
.wideStat{
  background:linear-gradient(180deg,#ffffff,#f8fcf5)!important;
}
.luckyPanel,
.drawnPanel,
.panel,
.miniTask,
.adminHeader,
.adminCard,
.codeItem,
.recordCard,
.activityCard,
.settingsGrid,
.prizeRow,
.drawRefreshBox,
.lastWarning{
  border-radius:20px!important;
  background:rgba(255,254,249,.94)!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 8px 22px rgba(53,91,72,.075)!important;
}
.sectionTitle,
.panel>b,
.miniTask>b,
.adminHeader b,
.fieldLabel{
  color:var(--shop-ink)!important;
}
.sectionTitle{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  font-size:15px!important;
}
.sectionTitle:before{
  content:"";
  width:9px;
  height:9px;
  border-radius:99px;
  background:var(--shop-pink);
  box-shadow:13px 0 0 var(--shop-green);
}
.luckyItem,
.stockItem{
  border-radius:16px!important;
  background:linear-gradient(180deg,#ffffff,#fbfdf8)!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:none!important;
}
.luckyItem span,
.stockItem span{
  min-width:46px!important;
  color:var(--shop-green-dark)!important;
  font-weight:1000!important;
}
.marqueeBox{
  margin:10px 0!important;
  border-radius:999px!important;
  color:#5f766c!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:none!important;
}
.drawRefreshBox{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:10px 0!important;
  padding:10px 12px!important;
}
.drawRefreshHint{
  color:var(--shop-sub)!important;
  font-size:12px!important;
}
.livePanel{
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center!important;
  background:#ffffff!important;
}
.rewardIcon{
  width:36px!important;
  height:36px!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,var(--shop-green),#a7d5b9)!important;
  color:#ffffff!important;
  font-size:14px!important;
  font-weight:1000!important;
}
.stage{
  position:relative!important;
  margin:14px 0 0!important;
  padding:18px 14px 16px!important;
  border-radius:28px!important;
  background:
    linear-gradient(180deg,#ffffff,#fbfdf8),
    radial-gradient(circle at 10% 0%,rgba(233,169,182,.2),transparent 24%)!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:var(--shop-shadow)!important;
}
.guide{
  margin-bottom:12px!important;
  color:var(--shop-sub)!important;
  font-size:13px!important;
  font-weight:800!important;
}
.ticketWrap{
  min-height:178px!important;
}
.ticket{
  height:172px!important;
  border-radius:24px!important;
  color:var(--shop-ink)!important;
  background:
    linear-gradient(180deg,#fffefa,#fff8ec),
    repeating-linear-gradient(90deg,rgba(111,169,134,.05) 0 1px,transparent 1px 17px)!important;
  border:1px solid #eadfca!important;
  box-shadow:0 14px 30px rgba(80,64,43,.12)!important;
}
.ticket:before{
  inset:12px!important;
  border:1px dashed rgba(107,87,54,.2)!important;
  background:none!important;
}
.cover{
  background:
    linear-gradient(135deg,#fff9ef 0%,#fffdf8 48%,#f4fbef 100%),
    repeating-linear-gradient(45deg,rgba(233,169,182,.1) 0 8px,transparent 8px 18px)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),-9px 0 18px rgba(78,102,86,.11)!important;
}
.coverIn{
  padding:0 72px 0 26px!important;
}
.logo{
  width:48px!important;
  height:48px!important;
  border-radius:16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--shop-green),var(--shop-green-dark))!important;
  border-right:0!important;
  box-shadow:0 8px 16px rgba(68,116,95,.22)!important;
}
.en{
  color:#90a199!important;
  font-size:10px!important;
}
.main{
  color:var(--shop-ink)!important;
  font-size:23px!important;
  font-weight:1000!important;
}
.small{
  color:var(--shop-sub)!important;
}
.tear{
  width:66px!important;
  color:#865b65!important;
  background:linear-gradient(180deg,#fff8fa,#f8dce4)!important;
  border-left:2px dashed rgba(233,169,182,.62)!important;
  box-shadow:-7px 0 16px rgba(233,169,182,.12)!important;
}
.result{
  background:linear-gradient(180deg,#fffefa,#f7fbf3)!important;
}
.rank{
  color:var(--shop-green-dark)!important;
  font-size:52px!important;
  text-shadow:none!important;
}
.title{
  color:#8c6b38!important;
}
.quote{
  color:var(--shop-ink)!important;
}
.actions{
  margin:14px 0 12px!important;
}
.draw.single{
  min-height:62px!important;
  border-radius:999px!important;
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--shop-green),var(--shop-green-dark))!important;
  border:0!important;
  box-shadow:0 14px 26px rgba(68,116,95,.24)!important;
}
.draw.single:active{
  transform:translateY(1px)!important;
}
.draw.single small{
  color:rgba(255,255,255,.82)!important;
}
.goldBtn,
.miniGoldBtn,
.secondaryBtn,
#refresh,
#adminRefresh,
.miniTask button{
  border-radius:999px!important;
  color:var(--shop-green-dark)!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 7px 16px rgba(53,91,72,.08)!important;
}
.goldBtn,
.miniGoldBtn{
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--shop-green),var(--shop-green-dark))!important;
}
.drawnNumbers{
  gap:7px!important;
}
.drawnNumbers span{
  min-height:32px!important;
  border-radius:12px!important;
  color:#6c7d75!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
}
.drawnNumbers span.used{
  color:#a4aca8!important;
  background:#eff3ef!important;
  border-color:#dde5df!important;
}
.homeShareInvite{
  gap:10px!important;
}
.tabs{
  background:linear-gradient(180deg,transparent,rgba(247,250,244,.96) 34%)!important;
}
.tabbar{
  height:66px!important;
  border-radius:24px!important;
  padding:7px!important;
  background:rgba(255,255,255,.9)!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 -10px 28px rgba(53,91,72,.13)!important;
}
.nav{
  height:52px!important;
  border-radius:18px!important;
  color:#87978f!important;
  font-size:12px!important;
  font-weight:1000!important;
}
.nav em{
  display:block!important;
  width:24px!important;
  height:24px!important;
  margin:0 auto 2px!important;
  border-radius:10px!important;
  line-height:24px!important;
  color:inherit!important;
  background:transparent!important;
  font-size:13px!important;
  font-style:normal!important;
}
.nav.active{
  color:var(--shop-green-dark)!important;
  background:#f2faf4!important;
  border:1px solid #d4e7d9!important;
}
.nav.active em{
  color:#ffffff!important;
  background:var(--shop-green)!important;
}
.adminTabs{
  border-radius:18px!important;
  padding:6px!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 8px 20px rgba(53,91,72,.07)!important;
}
.adminTab{
  min-height:38px!important;
  border-radius:13px!important;
  color:var(--shop-sub)!important;
}
.adminTab.active{
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--shop-green),var(--shop-green-dark))!important;
}
.textInput,
select,
textarea{
  border-radius:14px!important;
  color:var(--shop-ink)!important;
  background:#ffffff!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:none!important;
}
.textInput:focus,
select:focus,
textarea:focus{
  border-color:var(--shop-green)!important;
  box-shadow:0 0 0 4px rgba(111,169,134,.16)!important;
}
.modal .card,
.prizeCard,
.adminGateCard{
  color:var(--shop-ink)!important;
  border-radius:26px!important;
  background:#fffef9!important;
  border:1px solid var(--shop-line)!important;
  box-shadow:0 20px 60px rgba(53,91,72,.2)!important;
}
.prizeRank,
.prizeName,
.resultRank{
  color:var(--shop-green-dark)!important;
}
.globalNotice,
.toast{
  color:#ffffff!important;
  background:linear-gradient(135deg,var(--shop-green),var(--shop-green-dark))!important;
  border:1px solid rgba(255,255,255,.35)!important;
}
@media(max-width:390px){
  .app{padding-left:10px!important;padding-right:10px!important}
  h1,#appTitle{font-size:27px!important}
  .hero{padding:18px 14px!important}
  .stats{grid-template-columns:1fr 1.18fr 1fr!important}
  .stat{padding:9px 8px!important}
  .ticket{height:158px!important}
  .ticketWrap{min-height:164px!important}
  .rank{font-size:44px!important}
}

/* V4.2 practical Japanese lottery dashboard */
:root{
  --dash-bg:#f6f3ef;
  --dash-card:#ffffff;
  --dash-ink:#2f3033;
  --dash-muted:#70757d;
  --dash-line:#dedbd6;
  --dash-line-soft:#ece8e2;
  --dash-red:#d71920;
  --dash-red-dark:#b9151b;
  --dash-red-soft:#fff1f1;
  --dash-warm:#faf8f4;
  --dash-shadow:0 6px 18px rgba(47,48,51,.06);
}
html,body{
  color:var(--dash-ink)!important;
  background:
    linear-gradient(180deg,#faf8f4 0%,var(--dash-bg) 100%)!important;
}
body:before{
  display:none!important;
}
.app{
  max-width:520px!important;
  padding:18px 16px 98px!important;
  background:var(--dash-bg)!important;
  border:0!important;
  box-shadow:none!important;
}
.hero{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:12px!important;
  align-items:start!important;
  margin:0 0 16px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.hero:before,
.hero:after,
.sectionTitle:before{
  display:none!important;
}
h1,#appTitle{
  margin:0 0 6px!important;
  color:var(--dash-ink)!important;
  font-size:31px!important;
  line-height:1.08!important;
  font-weight:1000!important;
  letter-spacing:0!important;
}
.sub{
  color:var(--dash-muted)!important;
  font-size:13px!important;
  font-weight:800!important;
}
.iconBtns{
  display:flex!important;
  gap:8px!important;
}
.iconBtns button{
  min-width:54px!important;
  height:40px!important;
  padding:6px 10px!important;
  border-radius:8px!important;
  color:var(--dash-ink)!important;
  background:var(--dash-card)!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:var(--dash-shadow)!important;
  font-size:13px!important;
  font-weight:1000!important;
}
.iconBtns button span{
  display:none!important;
}
.stats{
  display:grid!important;
  grid-template-columns:1fr 1fr 1fr!important;
  gap:10px!important;
  margin:0 0 14px!important;
}
.stat{
  min-height:86px!important;
  padding:14px 12px!important;
  border-radius:8px!important;
  color:var(--dash-ink)!important;
  background:var(--dash-card)!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:var(--dash-shadow)!important;
}
.stat span{
  color:var(--dash-muted)!important;
  font-size:13px!important;
  font-weight:900!important;
}
.stat b{
  margin-top:10px!important;
  color:var(--dash-red)!important;
  font-size:34px!important;
  line-height:1!important;
  font-weight:1000!important;
}
.wideStat b{
  color:var(--dash-ink)!important;
}
.wideStat b::first-letter{
  color:var(--dash-red)!important;
}
.luckyPanel,
.drawnPanel,
.panel,
.miniTask,
.adminHeader,
.adminCard,
.codeItem,
.recordCard,
.activityCard,
.settingsGrid,
.prizeRow,
.lastWarning{
  border-radius:8px!important;
  color:var(--dash-ink)!important;
  background:var(--dash-card)!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:var(--dash-shadow)!important;
}
.sectionTitle,
.panel>b,
.miniTask>b,
.adminHeader b,
.fieldLabel{
  color:var(--dash-ink)!important;
  font-size:18px!important;
  font-weight:1000!important;
}
.fieldHelp,
.panel small,
.adminHeader small,
small{
  color:var(--dash-muted)!important;
}
.luckyPanel{
  padding:18px!important;
  margin-bottom:12px!important;
}
.luckyList{
  display:block!important;
  margin-top:12px!important;
  border:1px solid var(--dash-line)!important;
  border-radius:8px!important;
  overflow:hidden!important;
  background:var(--dash-card)!important;
}
.luckyList:before{
  content:"號碼    獎項";
  display:grid;
  grid-template-columns:88px 1fr;
  padding:10px 14px;
  color:var(--dash-muted);
  background:var(--dash-warm);
  border-bottom:1px solid var(--dash-line-soft);
  font-size:13px;
  font-weight:1000;
  white-space:pre;
}
.luckyItem,
.stockItem{
  display:grid!important;
  grid-template-columns:88px 1fr!important;
  align-items:center!important;
  min-height:54px!important;
  padding:0 14px!important;
  border:0!important;
  border-bottom:1px solid var(--dash-line-soft)!important;
  border-radius:0!important;
  background:var(--dash-card)!important;
  box-shadow:none!important;
}
.luckyItem:last-child,
.stockItem:last-child{
  border-bottom:0!important;
}
.luckyItem span,
.stockItem span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:62px!important;
  min-width:62px!important;
  height:32px!important;
  border-radius:6px!important;
  color:#ffffff!important;
  background:var(--dash-red)!important;
  font-size:17px!important;
  font-weight:1000!important;
}
.luckyItem b,
.stockItem b{
  color:var(--dash-ink)!important;
  font-size:16px!important;
  font-weight:900!important;
}
.luckyItem.drawn span{
  background:#b8b8b8!important;
}
.marqueeBox{
  margin:0 0 10px!important;
  padding:10px 12px!important;
  border-radius:8px!important;
  color:#60636a!important;
  background:#fff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:none!important;
}
.drawRefreshBox{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  gap:10px!important;
  align-items:center!important;
  margin:0 0 10px!important;
  padding:10px!important;
  border-radius:8px!important;
  background:#fff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:none!important;
}
.drawRefreshHint{
  color:var(--dash-muted)!important;
  font-size:12px!important;
}
.livePanel{
  min-height:auto!important;
  margin:0 0 12px!important;
  padding:10px 12px!important;
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  align-items:center!important;
  border-radius:8px!important;
  box-shadow:none!important;
}
.rewardIcon{
  width:30px!important;
  height:30px!important;
  border-radius:6px!important;
  color:#ffffff!important;
  background:var(--dash-red)!important;
  font-size:13px!important;
}
.stage{
  position:relative!important;
  margin:12px 0 0!important;
  padding:0!important;
  border-radius:8px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.guide{
  display:none!important;
}
.ticketWrap{
  min-height:198px!important;
}
.ticket{
  height:190px!important;
  border-radius:8px!important;
  color:var(--dash-ink)!important;
  background:
    linear-gradient(90deg,var(--dash-red) 0 18px,transparent 18px calc(100% - 18px),var(--dash-red) calc(100% - 18px)),
    var(--dash-card)!important;
  border:1px solid var(--dash-red)!important;
  box-shadow:0 10px 22px rgba(215,25,32,.12)!important;
}
.ticket:before{
  inset:16px 28px!important;
  border:2px dashed rgba(215,25,32,.68)!important;
  border-radius:8px!important;
  background:none!important;
}
.hole.left,
.hole.right{
  background:var(--dash-bg)!important;
  box-shadow:inset 0 0 0 1px rgba(215,25,32,.22)!important;
}
.cover{
  inset:0!important;
  background:
    linear-gradient(180deg,#ffffff 0%,#fffafa 100%)!important;
  box-shadow:none!important;
}
.cover:after{
  background:linear-gradient(105deg,transparent 42%,rgba(215,25,32,.08),transparent 58%)!important;
}
.coverIn{
  justify-content:center!important;
  gap:16px!important;
  padding:0 50px!important;
  text-align:center!important;
}
.logo{
  width:52px!important;
  height:52px!important;
  border-radius:999px!important;
  color:var(--dash-red)!important;
  background:#ffffff!important;
  border:2px solid var(--dash-red)!important;
  box-shadow:none!important;
}
.en{
  color:var(--dash-muted)!important;
  font-size:10px!important;
  font-weight:1000!important;
}
.main{
  color:var(--dash-red)!important;
  font-size:29px!important;
  font-weight:1000!important;
}
.small{
  color:var(--dash-muted)!important;
  font-size:13px!important;
}
.tear{
  width:52px!important;
  color:#ffffff!important;
  background:var(--dash-red)!important;
  border-left:0!important;
  box-shadow:none!important;
}
.tear b{
  writing-mode:vertical-rl!important;
  letter-spacing:.12em!important;
}
.result{
  background:#ffffff!important;
}
.rank{
  color:var(--dash-red)!important;
  font-size:54px!important;
  text-shadow:none!important;
}
.title{
  color:var(--dash-ink)!important;
  font-size:15px!important;
}
.quote{
  color:var(--dash-muted)!important;
}
.actions{
  margin:12px 0 14px!important;
}
.draw.single{
  min-height:62px!important;
  border-radius:8px!important;
  color:#ffffff!important;
  background:linear-gradient(180deg,#e32229,var(--dash-red-dark))!important;
  border:1px solid var(--dash-red-dark)!important;
  box-shadow:0 8px 18px rgba(215,25,32,.2)!important;
  font-size:22px!important;
  font-weight:1000!important;
}
.draw.single small{
  color:rgba(255,255,255,.84)!important;
  font-size:12px!important;
}
.goldBtn,
.miniGoldBtn,
.secondaryBtn,
#refresh,
#adminRefresh,
.miniTask button,
#newUser,
#mClose,
#pNext,
#adminLoginBtn{
  border-radius:8px!important;
  font-weight:1000!important;
  color:var(--dash-ink)!important;
  background:#ffffff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:none!important;
}
.goldBtn,
.miniGoldBtn,
#adminLoginBtn{
  color:#ffffff!important;
  background:var(--dash-red)!important;
  border-color:var(--dash-red-dark)!important;
}
.drawnPanel{
  padding:16px!important;
}
.drawnNumbers{
  display:grid!important;
  grid-template-columns:repeat(4,1fr)!important;
  gap:10px!important;
  max-height:none!important;
}
.drawnNumbers span{
  min-height:40px!important;
  border-radius:8px!important;
  color:#595d64!important;
  background:#f6f6f6!important;
  border:1px solid var(--dash-line)!important;
  font-size:18px!important;
}
.drawnNumbers span.used{
  color:#6d7178!important;
  background:#eeeeee!important;
  border-color:#dddddd!important;
  text-decoration:none!important;
}
.homeShareInvite{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
}
.miniTask{
  padding:12px!important;
}
.tabs{
  background:linear-gradient(180deg,transparent,rgba(246,243,239,.98) 24%)!important;
}
.tabbar{
  height:70px!important;
  max-width:520px!important;
  border-radius:0!important;
  padding:0!important;
  background:#ffffff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:0 -6px 18px rgba(47,48,51,.08)!important;
}
.nav{
  height:68px!important;
  border-radius:0!important;
  color:#666b73!important;
  background:#ffffff!important;
  border-right:1px solid var(--dash-line-soft)!important;
  font-size:13px!important;
}
.nav:last-child{
  border-right:0!important;
}
.nav em{
  display:block!important;
  width:auto!important;
  height:auto!important;
  margin:0 0 3px!important;
  border-radius:0!important;
  line-height:1!important;
  color:inherit!important;
  background:transparent!important;
  font-size:20px!important;
  font-weight:1000!important;
}
.nav.active{
  color:var(--dash-red)!important;
  background:#ffffff!important;
  border-top:3px solid var(--dash-red)!important;
}
.nav.active em{
  color:var(--dash-red)!important;
  background:transparent!important;
}
.adminTabs{
  border-radius:8px!important;
  padding:4px!important;
  background:#fff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:none!important;
}
.adminTab{
  min-height:36px!important;
  border-radius:6px!important;
  color:var(--dash-muted)!important;
}
.adminTab.active{
  color:#ffffff!important;
  background:var(--dash-red)!important;
}
.textInput,
select,
textarea{
  border-radius:8px!important;
  color:var(--dash-ink)!important;
  background:#ffffff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:none!important;
}
.textInput:focus,
select:focus,
textarea:focus{
  border-color:var(--dash-red)!important;
  box-shadow:0 0 0 3px rgba(215,25,32,.12)!important;
}
.modal .card,
.prizeCard,
.adminGateCard{
  color:var(--dash-ink)!important;
  border-radius:8px!important;
  background:#ffffff!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:0 18px 44px rgba(47,48,51,.18)!important;
}
.prizeRank,
.prizeName,
.resultRank{
  color:var(--dash-red)!important;
}
.globalNotice,
.toast{
  color:#ffffff!important;
  background:var(--dash-red)!important;
  border:1px solid var(--dash-red-dark)!important;
  border-radius:8px!important;
}
@media(max-width:390px){
  .app{padding:16px 12px 94px!important}
  h1,#appTitle{font-size:28px!important}
  .stats{gap:8px!important}
  .stat{min-height:76px!important;padding:12px 9px!important}
  .stat b{font-size:28px!important}
  .ticket{height:176px!important}
  .ticketWrap{min-height:184px!important}
  .main{font-size:25px!important}
  .drawnNumbers{grid-template-columns:repeat(4,1fr)!important}
  .homeShareInvite{grid-template-columns:1fr!important}
}

/* V4.2.1 fixed draw CTA: keep lottery action reachable above bottom nav */
#gameView{
  padding-bottom:170px!important;
}
.app{
  padding-bottom:190px!important;
}
#gameView .actions{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:calc(82px + env(safe-area-inset-bottom))!important;
  z-index:70!important;
  width:min(488px,calc(100vw - 28px))!important;
  max-width:488px!important;
  transform:translateX(-50%)!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
  margin:0!important;
  padding:10px!important;
  border-radius:12px!important;
  background:rgba(246,243,239,.96)!important;
  border:1px solid var(--dash-line)!important;
  box-shadow:0 12px 34px rgba(47,48,51,.18)!important;
  backdrop-filter:blur(10px)!important;
}
#gameView .draw.single{
  width:100%!important;
  min-height:60px!important;
  border-radius:8px!important;
  pointer-events:auto!important;
}
.drawnPanel,
.homeShareInvite{
  margin-bottom:22px!important;
}
.tabs{
  z-index:60!important;
}
.toast{
  bottom:calc(160px + env(safe-area-inset-bottom))!important;
}
@media(max-width:390px){
  #gameView{padding-bottom:178px!important}
  .app{padding:16px 12px 196px!important}
  #gameView .actions{
    width:calc(100vw - 24px)!important;
    bottom:calc(80px + env(safe-area-inset-bottom))!important;
    padding:9px!important;
  }
}

/* V4.2.4 clearer token and number-state UI */
.tokenHelp{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:12px!important;
  align-items:center!important;
  margin:12px 0!important;
  padding:14px!important;
  border-radius:10px!important;
  background:#fff7f7!important;
  border:1px solid rgba(215,25,32,.28)!important;
  box-shadow:0 8px 20px rgba(215,25,32,.08)!important;
}
.tokenHelp.hidden{
  display:none!important;
}
.tokenHelp b{
  display:block!important;
  color:var(--dash-red)!important;
  font-size:16px!important;
  font-weight:1000!important;
}
.tokenHelp small{
  display:block!important;
  margin-top:3px!important;
  color:#6f7379!important;
}
.tokenHelpActions{
  display:flex!important;
  gap:8px!important;
}
.tokenHelpActions button{
  min-height:38px!important;
  padding:0 12px!important;
  border-radius:8px!important;
  border:1px solid var(--dash-red)!important;
  background:#fff!important;
  color:var(--dash-red)!important;
  font-weight:1000!important;
}
.tokenHelpActions button:first-child{
  color:#fff!important;
  background:var(--dash-red)!important;
}
.drawnPanel{
  padding:18px!important;
}
.drawnPanel .sectionTitle{
  margin-bottom:10px!important;
}
.numberLegend{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin:0 0 14px!important;
  color:#686d74!important;
  font-size:12px!important;
  font-weight:900!important;
}
.numberLegend span{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:5px 8px!important;
  border-radius:999px!important;
  background:#f7f7f7!important;
  border:1px solid #e2e2e2!important;
}
.numberLegend i{
  display:inline-block!important;
  width:13px!important;
  height:13px!important;
  border-radius:4px!important;
}
.legendAvailable{
  background:#fff!important;
  border:1px solid #cfd3d8!important;
}
.legendUsed{
  background:var(--dash-red)!important;
}
.legendLatest{
  background:#fff!important;
  border:2px solid #222!important;
  box-shadow:inset 0 0 0 2px var(--dash-red)!important;
}
.drawnNumbers{
  grid-template-columns:repeat(4,1fr)!important;
  gap:9px!important;
}
.drawnNumbers span{
  position:relative!important;
  min-height:42px!important;
  border-radius:8px!important;
  font-size:17px!important;
  font-weight:1000!important;
}
.drawnNumbers span.available{
  color:#4e535a!important;
  background:#ffffff!important;
  border:1px solid #d4d7dc!important;
  box-shadow:inset 0 -2px 0 rgba(47,48,51,.035)!important;
}
.drawnNumbers span.used{
  color:#ffffff!important;
  background:linear-gradient(180deg,#e32229,var(--dash-red-dark))!important;
  border:1px solid var(--dash-red-dark)!important;
  box-shadow:0 5px 12px rgba(215,25,32,.18)!important;
}
.drawnNumbers span.latest{
  outline:3px solid #24262a!important;
  outline-offset:2px!important;
}
.drawnNumbers span.latest:after{
  content:"最新";
  position:absolute;
  right:-5px;
  top:-8px;
  padding:2px 5px;
  border-radius:999px;
  color:#fff;
  background:#24262a;
  font-size:10px;
  line-height:1;
}
.toast{
  left:50%!important;
  top:calc(14px + env(safe-area-inset-top))!important;
  bottom:auto!important;
  z-index:120!important;
  width:auto!important;
  max-width:min(360px,calc(100vw - 40px))!important;
  padding:10px 14px!important;
  border-radius:999px!important;
  text-align:center!important;
  font-size:14px!important;
  line-height:1.35!important;
  box-shadow:0 10px 24px rgba(47,48,51,.22)!important;
}
@media(max-width:390px){
  .tokenHelp{
    grid-template-columns:1fr!important;
  }
  .tokenHelpActions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  .drawnNumbers{
    grid-template-columns:repeat(4,1fr)!important;
    gap:8px!important;
  }
  .drawnNumbers span{
    min-height:40px!important;
    font-size:16px!important;
  }
}

/* V4.2.8 player result: only ticket number and admin announcement text */
.resultBox{
  width:min(520px,calc(100vw - 32px))!important;
  max-height:78vh!important;
  padding:22px!important;
  border-radius:22px!important;
  background:#fffdf3!important;
  color:#2f2f33!important;
  box-shadow:0 22px 70px rgba(47,48,51,.32)!important;
}
.resultBox h2{
  margin:4px 0 18px!important;
  color:#2f1b45!important;
  font-size:30px!important;
  letter-spacing:0!important;
}
.resultClose{
  right:14px!important;
  top:14px!important;
  background:#f3edda!important;
  color:#2f1b45!important;
}
.resultList{
  gap:12px!important;
}
.resultItem.simpleResult{
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  gap:12px!important;
  padding:22px 18px!important;
  text-align:center!important;
  border-radius:16px!important;
  background:#fff!important;
  border:1px solid #ece1cf!important;
  box-shadow:0 8px 24px rgba(47,48,51,.08)!important;
}
.resultItem.simpleResult.major{
  background:#fff!important;
  border:2px solid rgba(217,25,32,.28)!important;
}
.resultItem.simpleResult .resultRank{
  width:116px!important;
  height:76px!important;
  min-width:0!important;
  border-radius:14px!important;
  color:#fff!important;
  background:linear-gradient(180deg,#e32229,#c6151d)!important;
  font-size:38px!important;
  line-height:1!important;
  letter-spacing:1px!important;
  box-shadow:0 10px 24px rgba(217,25,32,.22)!important;
}
.resultItem.simpleResult .resultInfo{
  display:block!important;
}
.resultItem.simpleResult .resultInfo b{
  display:block!important;
  color:#34363a!important;
  font-size:22px!important;
  line-height:1.35!important;
  font-weight:1000!important;
}
.resultActions{
  display:grid!important;
  gap:10px!important;
  margin-top:16px!important;
}
.lineClaimBtn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  border-radius:10px!important;
  text-decoration:none!important;
  background:#06c755!important;
  color:#fff!important;
  font-weight:1000!important;
  box-shadow:0 10px 22px rgba(6,199,85,.22)!important;
}
.resultModal.hasWin .resultClose{
  display:none!important;
}
.resultModal.hasWin .resultBox{
  border:2px solid rgba(217,25,32,.18)!important;
}
.riskBadge{
  display:inline-flex!important;
  margin-left:8px!important;
  padding:3px 7px!important;
  border-radius:999px!important;
  color:#fff!important;
  background:#d71920!important;
  font-size:11px!important;
  font-weight:1000!important;
  vertical-align:middle!important;
}
.riskItem{
  border-left:4px solid #f0c44f!important;
}
.riskHigh{
  border-left:4px solid #d71920!important;
  background:#fff5f5!important;
}
.riskControls{
  margin:12px 0!important;
}
.riskControls button,
.riskActions button{
  min-height:38px!important;
  border-radius:8px!important;
  border:1px solid #d7d7d7!important;
  background:#fff!important;
  color:#34363a!important;
  font-weight:1000!important;
}
.riskActions{
  margin-top:10px!important;
}
.riskActions button{
  color:#d71920!important;
  border-color:rgba(215,25,32,.28)!important;
}
