*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%;overflow:hidden}
body{
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','Segoe UI',Roboto,system-ui,sans-serif;
  background-color:#0e062f;
  color:#e8e2ff;
  background:radial-gradient(ellipse at 50% 0,#1a0b3d,#0e062f 60%);
  background-attachment:fixed;
  -webkit-user-select:none;user-select:none
}

/* topbar */
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;padding-top:calc(14px + env(safe-area-inset-top,0));backdrop-filter:blur(10px);background:linear-gradient(180deg,rgba(20,8,60,.85),rgba(20,8,60,.35) 80%,transparent)}
.logo{font-weight:900;font-size:22px;letter-spacing:.5px;background:linear-gradient(90deg,#a58bff,#5ac8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo span{color:#fff;background:none;-webkit-text-fill-color:#fff}
.top-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.balance{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,rgba(255,207,63,.15),rgba(120,80,255,.25));border:1px solid rgba(255,207,63,.5);padding:6px 12px;border-radius:999px;font-weight:800;font-size:15px;color:#fff;box-shadow:0 0 20px rgba(120,80,255,.35)}
#bal-value{min-width:1ch}
.upgrade-btn{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:rgba(120,110,150,.35);color:#e8e2ff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s,background .15s}
.upgrade-btn:hover{background:rgba(150,140,190,.45)}
.upgrade-btn:active{transform:scale(.9)}

/* main */
main{height:calc(100vh - 130px - env(safe-area-inset-bottom,0));overflow-y:auto;padding:12px 16px 24px;-webkit-overflow-scrolling:touch}
.view{animation:fade .28s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.section-title{margin:8px 0 16px;font-size:22px;font-weight:800;letter-spacing:.3px}

/* clicker */
.hero{display:flex;flex-direction:column;align-items:center;padding-top:56px;gap:14px;position:relative}
.click-btn{width:210px;height:210px;border-radius:50%;border:0;background:transparent;position:relative;cursor:pointer;padding:0;transition:transform .08s ease}
.click-btn:active{transform:scale(.95)}
.click-glow{position:absolute;inset:-14px;border-radius:50%;background:radial-gradient(circle,rgba(165,139,255,.75),rgba(255,207,63,.35) 40%,transparent 70%);filter:blur(12px);animation:pulse 3s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}
.click-core{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:linear-gradient(160deg,#6d4bff,#4a2bd8 55%,#2a0f7e);box-shadow:inset 0 6px 18px rgba(255,255,255,.35),inset 0 -12px 20px rgba(0,0,0,.35),0 12px 40px rgba(96,52,255,.6)}
.click-info{font-weight:800;color:#ffcf3f;font-size:16px}
.pop{position:absolute;pointer-events:none;font-weight:900;color:#ffd93a;text-shadow:0 2px 12px rgba(255,120,50,.6);animation:pop .8s ease-out forwards;font-size:22px;transform:translate(-50%,0)}
@keyframes pop{0%{opacity:0;transform:translate(-50%,0) scale(.6)}20%{opacity:1;transform:translate(-50%,-8px) scale(1.2)}100%{opacity:0;transform:translate(-50%,-70px) scale(1)}}
.energy-wrap{width:220px;margin-top:6px;display:flex;flex-direction:column;gap:4px;align-items:center}
.energy-bar{width:100%;height:14px;border-radius:10px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid rgba(80,255,150,.28);box-shadow:inset 0 2px 4px rgba(0,0,0,.4)}
.energy-fill{height:100%;width:100%;background:linear-gradient(90deg,#8cff5f,#4dff9f 60%,#20e0b4);box-shadow:0 0 12px rgba(80,255,150,.5);transition:width .25s ease;border-radius:10px}
.energy-label{font-size:12px;opacity:.85;font-weight:700}

/* cases – 2 columns */
.cases-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.case-card{display:flex;flex-direction:column;align-items:center;padding:14px 10px;border-radius:18px;text-align:center;color:#fff;background:linear-gradient(135deg,rgba(120,80,255,.25),rgba(60,30,150,.35));border:1px solid rgba(165,139,255,.35);box-shadow:0 8px 30px rgba(30,0,80,.35);cursor:pointer;transition:transform .12s}
.case-card:active{transform:scale(.98)}
.case-card .cimg{width:68px;height:68px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:14px;background:rgba(0,0,0,.25);margin-bottom:6px}
.case-card h3{margin:0 0 3px;font-size:15px}
.case-card .sub{opacity:.75;font-size:12px}
.case-card .price{margin-top:5px;font-weight:800;color:#ffcf3f;font-size:13px}
.case-card .price.ready{color:#4dff9f;animation:btnPulse 1.5s ease-in-out infinite}
.case-card .price.cd{color:#a58bff;opacity:.8;font-weight:600}
.case-card .tag{font-size:10px;background:rgba(80,255,160,.25);color:#4dff9f;padding:1px 6px;border-radius:6px;font-weight:700;vertical-align:middle}
.case-card.daily{grid-column:1 / -1;flex-direction:row;gap:14px;text-align:left;background:linear-gradient(135deg,rgba(80,255,160,.12),rgba(30,150,80,.25));border-color:rgba(80,255,160,.4)}
.case-card.daily .cimg{margin-bottom:0}
.case-card.daily .cbody{flex:1}
.case-card.k-legendary{border-color:rgba(255,120,255,.5)}
.case-card.k-epic{border-color:rgba(0,232,255,.5);background:linear-gradient(135deg,rgba(0,232,255,.12),rgba(20,40,120,.3))}
.case-card.k-premium{border-color:rgba(255,207,63,.65);background:linear-gradient(135deg,rgba(255,180,60,.18),rgba(160,60,220,.28))}
.case-card.k-mythic{border-color:rgba(255,90,124,.5);background:linear-gradient(135deg,rgba(255,90,124,.15),rgba(200,80,255,.2))}
.case-card.k-divine{border-color:rgba(255,227,122,.6);background:linear-gradient(135deg,rgba(255,227,122,.18),rgba(255,90,0,.2))}
.case-open{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:8px}
.case-hero{width:180px;height:180px;display:flex;align-items:center;justify-content:center;border-radius:26px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.15),transparent 60%),linear-gradient(160deg,rgba(120,80,255,.35),rgba(50,20,120,.35));border:1px solid rgba(165,139,255,.4)}
.case-hero.shake{animation:shake .8s ease-in-out}
@keyframes shake{0%,100%{transform:translate(0,0) rotate(0)}10%{transform:translate(-4px,-2px) rotate(-2deg)}20%{transform:translate(5px,2px) rotate(3deg)}30%{transform:translate(-6px,3px) rotate(-3deg)}40%{transform:translate(6px,-2px) rotate(2deg)}50%{transform:translate(-5px,-3px) rotate(-2deg)}60%{transform:translate(5px,3px) rotate(3deg)}70%{transform:translate(-3px,2px) rotate(-1deg)}80%{transform:translate(3px,-2px) rotate(2deg)}90%{transform:translate(-1px,1px) rotate(-1deg)}}
.price{color:#ffcf3f;font-weight:800}
.drop-area{min-height:120px;width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.coin-fall{position:absolute;font-size:28px;animation:fall 1.2s ease-in forwards}
@keyframes fall{0%{transform:translate(var(--x),-40px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate(var(--x),140px) rotate(720deg);opacity:0}}
.win-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#ffcf3f;text-shadow:0 0 24px rgba(255,207,63,.75);animation:winBounce .8s cubic-bezier(.2,1.7,.4,1)}
@keyframes winBounce{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}

/* games grid */
.games-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.game-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:18px;color:#fff;background:linear-gradient(160deg,rgba(120,80,255,.22),rgba(60,30,150,.32));border:1px solid rgba(165,139,255,.32);cursor:pointer;transition:transform .12s}
.game-card:active{transform:scale(.97)}
.game-icon{width:70px;height:70px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:rgba(0,0,0,.2)}
.game-title{font-weight:800;font-size:14px}
.game-sub{opacity:.7;font-size:11px;text-align:center}
.mines-card{border-color:rgba(80,255,160,.4);background:linear-gradient(160deg,rgba(80,255,160,.12),rgba(30,80,60,.3))}

/* back */
.back-btn{margin-bottom:8px}

/* rocket */
.rocket-screen{display:flex;flex-direction:column;gap:10px}
.rocket-canvas{position:relative;height:220px;border-radius:22px;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,#4a2bd8 0,#1a0a5a 55%,#03011a 100%);border:1px solid rgba(165,139,255,.4);box-shadow:inset 0 0 60px rgba(0,0,0,.6)}
.stars{position:absolute;inset:0;background-image:radial-gradient(2px 2px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 60px 100px,#fff,transparent),radial-gradient(1.5px 1.5px at 120px 200px,#fff,transparent),radial-gradient(1px 1px at 180px 80px,#fff,transparent),radial-gradient(2px 2px at 220px 240px,#fff,transparent),radial-gradient(1px 1px at 300px 30px,#fff,transparent),radial-gradient(1.5px 1.5px at 350px 150px,#fff,transparent);opacity:.6;animation:starmove 22s linear infinite}
@keyframes starmove{from{background-position:0 0}to{background-position:0 500px}}
.rocket-mult{position:absolute;top:14px;left:50%;transform:translateX(-50%);font-weight:900;font-size:44px;color:#fff;text-shadow:0 0 30px rgba(160,120,255,.75)}
.rocket-mult.crashed{color:#ff5252;text-shadow:0 0 30px rgba(255,80,80,.85)}
.rocket-mult.cashed{color:#4dff9f}
.rocket-mult.idle{color:#a58bff}
.rocket-emoji{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:52px;transition:transform .12s linear;filter:drop-shadow(0 4px 18px rgba(255,140,80,.7))}
.rocket-status{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);font-size:12px;opacity:.85;white-space:nowrap}
.rocket-controls{display:flex;flex-direction:column;gap:8px}
.rocket-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.85}
.rocket-controls input,#promo-input,.admin-form input,#up-bet,#rl-bet,#pvp-bet,#mines-bet{padding:11px 14px;border-radius:12px;border:1px solid rgba(165,139,255,.35);background:rgba(20,10,60,.5);color:#fff;font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}
.rocket-controls input:focus,#promo-input:focus,.admin-form input:focus,#mines-bet:focus{border-color:#a58bff;box-shadow:0 0 0 3px rgba(165,139,255,.25)}
.row{display:flex;gap:8px}
.bet-quick button{flex:1;padding:8px 0;border-radius:10px;border:1px solid rgba(165,139,255,.35);background:rgba(20,10,60,.5);color:#e8e2ff;font-weight:700;cursor:pointer;font-size:13px}
.bet-quick button:active{transform:scale(.96)}

/* action button */
.action-btn{padding:14px 16px;border-radius:14px;border:0;font-weight:800;font-size:16px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c5bff,#4a2bd8);box-shadow:0 6px 20px rgba(80,40,200,.45),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .08s;text-align:center;width:100%}
.action-btn:active{transform:scale(.98)}
.action-btn:disabled{opacity:.85;cursor:default}
.action-btn.green{background:linear-gradient(135deg,#4dff9f,#12b76a);color:#052013}
.action-btn.red{background:linear-gradient(135deg,#ff6b6b,#c92a2a)}
.action-btn.schedule{background:linear-gradient(135deg,#a58bff,#5f38d8)}
.action-btn.placed{background:rgba(255,255,255,.08);color:#e8e2ff;box-shadow:none;border:1px dashed rgba(165,139,255,.4)}
.action-btn.cashed{background:linear-gradient(135deg,#4dff9f,#12b76a);color:#052013}
.action-btn.pulse{animation:btnPulse 1s ease-in-out infinite}
@keyframes btnPulse{0%,100%{box-shadow:0 6px 20px rgba(80,255,160,.4)}50%{box-shadow:0 6px 34px rgba(80,255,160,.85)}}

.rocket-history{display:flex;flex-wrap:wrap;gap:6px}
.rocket-history .h{padding:4px 8px;border-radius:8px;font-size:12px;font-weight:700;background:rgba(255,255,255,.06)}
.rocket-history .h.hi{color:#4dff9f}
.rocket-history .h.lo{color:#ff8a8a}

.online-block{background:rgba(20,10,60,.4);border:1px solid rgba(165,139,255,.25);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.online-head{font-weight:800;font-size:14px;display:flex;align-items:center;gap:8px}
.pill{background:rgba(165,139,255,.3);padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700}
.online-list{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}
.online-empty{opacity:.6;font-size:13px;text-align:center;padding:8px}
.ob{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:rgba(0,0,0,.2);font-size:13px}
.ob.mine{background:rgba(165,139,255,.22);border:1px solid rgba(165,139,255,.4)}
.ob-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-bet{font-weight:700;color:#ffcf3f}
.ob-cash{color:#4dff9f;font-weight:700;font-size:12px}
.ob-lose{color:#ff8a8a;font-weight:700;font-size:12px}
.ob-flying{color:#a58bff;font-size:12px;opacity:.85}

/* UPGRADER */
.up-history{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.upH{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}
.upH.win{background:rgba(80,255,160,.2);color:#4dff9f;border:1px solid rgba(80,255,160,.4)}
.upH.lose{background:rgba(255,90,90,.15);color:#ff8a8a;border:1px solid rgba(255,90,90,.35)}
.up-wheel-wrap{position:relative;width:100%;max-width:320px;margin:0 auto;aspect-ratio:1/1}
.up-wheel{width:100%;height:100%;transform-origin:50% 50%}
.up-pointer{position:absolute;top:-4px;left:50%;transform:translateX(-50%);color:#ffcf3f;font-size:26px;z-index:5;text-shadow:0 2px 8px rgba(0,0,0,.6);width:30px;height:30px;display:flex;align-items:center;justify-content:center;transform-origin:center calc(160px)}
.up-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.up-x{font-size:38px;font-weight:900;color:#fff}
.up-chance{font-size:14px;opacity:.75;margin-top:2px}
.up-targets{margin:12px 0;flex-wrap:wrap}
.up-t{flex:1;min-width:52px;padding:10px 0;border-radius:12px;border:1px solid rgba(165,139,255,.35);background:rgba(20,10,60,.5);color:#e8e2ff;font-weight:800;cursor:pointer;font-size:14px}
.up-t.active{background:linear-gradient(135deg,#7c5bff,#4a2bd8);border-color:#a58bff;box-shadow:0 4px 14px rgba(120,80,255,.5)}
.up-info{display:flex;justify-content:space-between;background:rgba(20,10,60,.5);border:1px solid rgba(165,139,255,.25);border-radius:12px;padding:10px 14px;margin:10px 0;font-size:13px}
.up-info .k{opacity:.7}
.up-info .v{font-weight:800;color:#fff}
.up-info .v.ok{color:#4dff9f}
.view[data-view='upgrader'] label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.85;margin-bottom:8px}
.view[data-view='upgrader'] .row{margin-bottom:10px}

/* ROULETTE */
.rl-history{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.rlH{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff}
.rlH.red{background:#c22a2a}.rlH.black{background:#1a1a1a}.rlH.green{background:#0d8a3d}
.rl-strip-wrap{position:relative;height:88px;overflow:hidden;background:repeating-linear-gradient(45deg,#0a3d0a 0,#0a3d0a 8px,#0e470e 8px,#0e470e 16px);border:2px solid #ffcf3f;border-radius:14px;margin-bottom:10px}
.rl-cursor{position:absolute;top:0;bottom:0;left:50%;width:3px;background:#ffcf3f;box-shadow:0 0 10px rgba(255,207,63,.9);z-index:5;transform:translateX(-50%)}
.rl-strip{display:flex;height:100%;padding:8px 0;transform:translateX(0px)}
.rl-tile{flex:0 0 60px;height:72px;margin:0 1px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;color:#fff}
.rl-tile.red{background:linear-gradient(145deg,#e04141,#a01818)}
.rl-tile.black{background:linear-gradient(145deg,#333,#0a0a0a)}
.rl-tile.green{background:linear-gradient(145deg,#4dff9f,#12b76a);color:#052013}
.rl-phase{position:absolute;top:4px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:700;background:rgba(0,0,0,.55);padding:2px 8px;border-radius:8px;white-space:nowrap;z-index:6}
.view[data-view='roulette'] label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.85;margin-bottom:8px}
.view[data-view='roulette'] .row{margin-bottom:10px}
.rl-colors{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:6px}
.rl-c{padding:14px 8px;border-radius:12px;border:0;color:#fff;font-weight:800;cursor:pointer;text-align:center;transition:transform .1s}
.rl-c:active{transform:scale(.97)}
.rl-red{background:linear-gradient(145deg,#e04141,#8a1a1a)}
.rl-black{background:linear-gradient(145deg,#333,#0a0a0a)}
.rl-green{background:linear-gradient(145deg,#4dff9f,#12b76a);color:#052013}
.rl-c-name{font-size:14px}
.rl-c-mul{font-size:12px;opacity:.85;margin-top:2px}
.my-bets{margin-top:10px;font-size:13px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.my-bets-h{opacity:.7;font-size:12px;width:100%}
.mb{padding:3px 8px;border-radius:8px;font-weight:700;font-size:12px}
.mb.red{background:rgba(224,65,65,.25);color:#ff9a9a}
.mb.black{background:rgba(50,50,50,.5);color:#e8e2ff}
.mb.green{background:rgba(77,255,159,.2);color:#4dff9f}

/* PVP */
.pvp-wheel-wrap{position:relative;width:100%;max-width:320px;margin:0 auto 12px;aspect-ratio:1/1}
.pvp-wheel{width:100%;height:100%;transform-origin:50% 50%}
.pvp-pointer{position:absolute;top:-4px;left:50%;transform:translateX(-50%);color:#ffcf3f;font-size:24px;z-index:5;text-shadow:0 2px 8px rgba(0,0,0,.7)}
.pvp-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;padding:0 10px}
.pvp-k{font-size:11px;opacity:.7;letter-spacing:.5px}
.pvp-bank{font-size:32px;font-weight:900;color:#ffcf3f;text-shadow:0 0 20px rgba(255,207,63,.5)}
.pvp-status{font-size:11px;opacity:.85;margin-top:4px;max-width:150px}
.view[data-view='pvp'] label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.85;margin-bottom:8px}
.view[data-view='pvp'] .row{margin-bottom:10px}
.pvp-players{background:rgba(20,10,60,.4);border:1px solid rgba(165,139,255,.25);border-radius:12px;padding:8px 12px;margin-top:10px;display:flex;flex-direction:column;gap:6px}
.pvp-p-h{font-weight:800;font-size:12px;opacity:.8}
.pvp-p{display:grid;grid-template-columns:1fr auto auto;gap:8px;font-size:13px;align-items:center;padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.2)}
.pvp-p.mine{background:rgba(165,139,255,.22);border:1px solid rgba(165,139,255,.4)}
.pvp-p .share{color:#4dff9f;font-weight:700;font-size:12px}
.pvp-p-name{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pvp-p-dot{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:11px;flex-shrink:0;box-shadow:inset 0 -2px 4px rgba(0,0,0,.35),0 0 0 2px rgba(255,255,255,.15)}
.pvp-extra{margin-top:8px}
.pvp-extra .ghost-btn{flex:1;padding:10px 12px;font-size:13px;text-align:center}
.pvp-refund{border-color:rgba(255,180,80,.45);color:#ffcf3f;background:rgba(255,180,80,.08)}
.pvp-history{background:rgba(20,10,60,.4);border:1px solid rgba(165,139,255,.25);border-radius:12px;padding:8px 12px;margin-top:10px}
.pvp-h-h{font-weight:800;font-size:12px;opacity:.8;margin-bottom:4px}
.pvp-h-i{font-size:12px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.05)}

/* MINESWEEPER */
.mines-levels{flex-wrap:wrap;gap:8px;margin-bottom:10px}
.mines-lvl{flex:1;min-width:55px;padding:8px 4px;border-radius:12px;border:1px solid rgba(165,139,255,.35);background:rgba(20,10,60,.5);color:#e8e2ff;cursor:pointer;text-align:center;transition:transform .1s}
.mines-lvl:active{transform:scale(.96)}
.mines-lvl.active{background:linear-gradient(135deg,#4dff9f,#12b76a);border-color:#8affd6;color:#052013;box-shadow:0 4px 14px rgba(80,255,160,.4)}
.mines-lvl-n{font-weight:800;font-size:14px}
.mines-lvl-x{font-size:11px;opacity:.8}
.mines-info{font-size:13px;margin-bottom:10px;background:rgba(20,10,60,.5);border:1px solid rgba(165,139,255,.25);border-radius:12px;padding:10px 14px}
.mines-board{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;max-width:340px;margin-left:auto;margin-right:auto}
.mines-cell{aspect-ratio:1/1;border-radius:10px;border:1px solid rgba(165,139,255,.35);background:linear-gradient(160deg,rgba(120,80,255,.25),rgba(60,30,150,.4));color:#fff;font-weight:800;font-size:14px;cursor:pointer;transition:transform .1s,background .15s;display:flex;align-items:center;justify-content:center}
.mines-cell:active:not(:disabled){transform:scale(.92)}
.mines-cell:disabled{cursor:default;opacity:.7}
.mines-cell.safe{background:linear-gradient(135deg,rgba(80,255,160,.3),rgba(30,150,80,.3));border-color:rgba(80,255,160,.5);box-shadow:inset 0 0 10px rgba(80,255,160,.2)}
.mines-cell.safe::after{content:"💎";font-size:16px}
.mines-cell.boom{background:linear-gradient(135deg,rgba(255,90,90,.4),rgba(200,40,40,.4));border-color:rgba(255,90,90,.6);animation:shake .4s ease}
.mines-cell.boom::after{content:"💣";font-size:16px}
.mines-cell.mine-shown{background:rgba(255,90,90,.15);border-color:rgba(255,90,90,.3)}
.mines-cell.mine-shown::after{content:"💣";font-size:14px;opacity:.6}
.mines-bar{display:flex;flex-direction:column;gap:8px}
.mines-bar label{display:flex;flex-direction:column;gap:4px;font-size:12px;opacity:.85}

/* profile */
.profile-card{display:flex;gap:14px;align-items:center;padding:14px;border-radius:18px;background:linear-gradient(135deg,rgba(120,80,255,.25),rgba(60,30,150,.35));border:1px solid rgba(165,139,255,.35)}
.avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#7c5bff,#2a0f7e);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:26px;color:#fff}
.pname{font-weight:800;font-size:18px;cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:6px}
.pname::after{content:"✏️";font-size:12px;opacity:.5;transition:opacity .15s}
.pname:hover::after{opacity:1}
.nick-input{background:rgba(20,10,60,.6);border:1px solid #a58bff;border-radius:8px;color:#fff;font-size:16px;font-weight:700;padding:4px 8px;width:140px;outline:none}
.pid{font-size:12px;opacity:.75;margin-top:2px}
.profile-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.pstat{padding:14px;border-radius:16px;background:rgba(20,10,60,.5);border:1px solid rgba(165,139,255,.25)}
.pstat .k{font-size:12px;opacity:.7}
.pstat .v{font-weight:800;font-size:22px;margin-top:4px;color:#ffcf3f}
/* progress */
.progress-wrap{margin-bottom:14px}
.progress-label{font-size:12px;opacity:.85;margin-bottom:4px;font-weight:700}
.progress-track{width:100%;height:12px;border-radius:8px;background:rgba(255,255,255,.08);overflow:hidden;border:1px solid rgba(165,139,255,.25)}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#a58bff,#5ac8ff);border-radius:8px;transition:width .4s ease}
.promo-block h3,.admin-block h3{margin:8px 0 10px;font-size:16px}
.promo-row{display:flex;flex-direction:column;gap:10px}
#promo-input{width:100%}
.promo-msg{margin-top:10px;font-size:14px;min-height:20px}
.promo-msg.ok{color:#4dff9f}.promo-msg.err{color:#ff8a8a}

/* shop (Telegram Stars) */
.shop-buy-card{padding:16px;border-radius:20px;background:linear-gradient(160deg,rgba(255,207,63,.14),rgba(80,40,200,.28));border:1px solid rgba(255,207,63,.35);box-shadow:0 8px 30px rgba(30,0,80,.35);display:flex;flex-direction:column;gap:12px}
.shop-hero{display:flex;align-items:center;gap:14px;margin-bottom:4px}
.shop-star{font-size:44px;filter:drop-shadow(0 4px 12px rgba(255,207,63,.6))}
.shop-title{font-weight:800;font-size:18px}
.shop-rate{font-size:13px;opacity:.78;margin-top:2px}
.view[data-view='shop'] label{display:flex;flex-direction:column;gap:6px;font-size:12px;opacity:.85}
#shop-coins{padding:12px 14px;border-radius:12px;border:1px solid rgba(255,207,63,.4);background:rgba(20,10,60,.55);color:#fff;font-size:16px;font-weight:700;outline:none;transition:border-color .15s,box-shadow .15s}
#shop-coins:focus{border-color:#ffcf3f;box-shadow:0 0 0 3px rgba(255,207,63,.25)}
.shop-preview{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;background:rgba(20,10,60,.6);border:1px solid rgba(165,139,255,.25)}
.sp-line{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.sp-line span{opacity:.7}
.sp-line b{font-size:16px;color:#ffcf3f;font-weight:800}
.shop-msg{margin-top:4px;font-size:13px;min-height:18px;text-align:center}
.shop-msg.ok{color:#4dff9f}.shop-msg.err{color:#ff8a8a}

/* buttons */
.primary-btn{padding:14px 18px;border-radius:14px;border:0;font-weight:800;font-size:16px;color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c5bff,#4a2bd8);box-shadow:0 8px 24px rgba(80,40,200,.5),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .08s}
.primary-btn:active{transform:scale(.97)}
.primary-btn:disabled{filter:grayscale(.5) brightness(.6);cursor:not-allowed}
.primary-btn.small,.ghost-btn.small{padding:8px 12px;font-size:13px}
.primary-btn.dim{opacity:.5}
.ghost-btn{background:transparent;border:1px solid rgba(165,139,255,.35);color:#e8e2ff;padding:8px 14px;border-radius:10px;font-weight:700;cursor:pointer}

/* admin */
.admin-block{margin-bottom:20px;padding:14px;border-radius:16px;background:rgba(20,10,60,.5);border:1px solid rgba(165,139,255,.25)}
.admin-form{display:flex;flex-direction:column;gap:10px}
.admin-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;opacity:.85}
.admin-result{margin-top:12px;padding:12px;border-radius:12px;background:rgba(255,207,63,.12);border:1px dashed rgba(255,207,63,.4);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:1px}
.admin-result:empty{display:none}
.admin-result .sub{opacity:.75;font-family:-apple-system,system-ui,sans-serif;letter-spacing:normal;margin-top:4px;font-size:13px}
.admin-result .adm-actions{margin-top:10px;display:flex;gap:8px}
.adm-list{display:flex;flex-direction:column;gap:6px}
.adm-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.2);font-size:12px}
.adm-item .code{font-family:ui-monospace,monospace;font-weight:700;letter-spacing:1px;font-size:14px}
.adm-item .sub{opacity:.7;margin-top:2px}
.adm-info{flex:1;min-width:0}
.adm-actions{display:flex;gap:6px;flex-shrink:0}
.icon-btn{background:rgba(165,139,255,.15);border:1px solid rgba(165,139,255,.35);color:#e8e2ff;padding:6px 10px;border-radius:8px;font-size:14px;cursor:pointer;line-height:1}
.icon-btn:active{transform:scale(.94)}
.del-btn{background:rgba(255,90,90,.15);border-color:rgba(255,90,90,.5)}
/* admin: user management */
.adm-search-results{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.adm-user-row{padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.25);cursor:pointer;transition:background .12s,transform .08s;border:1px solid transparent}
.adm-user-row:active{transform:scale(.98)}
.adm-user-row:hover{background:rgba(165,139,255,.15);border-color:rgba(165,139,255,.3)}
.adm-ur-main{display:flex;justify-content:space-between;align-items:center;gap:8px}
.adm-ur-name{font-weight:700;font-size:14px}
.adm-ur-uname{opacity:.7;font-weight:400;font-size:12px}
.adm-ur-id{font-family:ui-monospace,monospace;font-size:12px;opacity:.7}
.adm-ur-stats{display:flex;gap:10px;margin-top:4px;font-size:12px;opacity:.85;flex-wrap:wrap}
.adm-ur-ban{color:#ff8a8a;font-weight:700}
.adm-user-info{margin-bottom:12px}
.adm-ui-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:13px}
.adm-ui-row .k{opacity:.7}
.adm-ui-row .v{font-weight:700}
.adm-ui-row .v.ok{color:#4dff9f}
.adm-ui-row.ban{color:#ff8a8a}
.adm-ui-row.ban .v{color:#ff8a8a}
.adm-user-actions{display:flex;flex-direction:column;gap:8px}
.adm-action-msg{font-size:13px;min-height:18px;margin-top:6px}
.adm-action-msg.ok{color:#4dff9f}
.adm-action-msg.err{color:#ff8a8a}
.action-btn.red.small{padding:10px 14px;font-size:14px}

/* tabbar */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:8px 4px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0));background:linear-gradient(0deg,rgba(10,3,32,.95),rgba(10,3,32,.6));backdrop-filter:blur(12px);border-top:1px solid rgba(165,139,255,.25)}
.tab{display:flex;flex-direction:column;align-items:center;gap:2px;background:transparent;border:0;padding:8px 4px;color:#8a83bd;font-size:11px;font-weight:600;cursor:pointer;transition:color .15s}
.tab.active{color:#fff}
.tab.active svg{filter:drop-shadow(0 0 10px rgba(165,139,255,.8))}

/* toast */
.toast{position:fixed;top:80px;left:50%;transform:translateX(-50%) translateY(-30px);background:linear-gradient(135deg,#7c5bff,#4a2bd8);color:#fff;padding:12px 18px;border-radius:12px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100;max-width:88vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* level-up toast */
.level-toast{position:fixed;top:40px;left:50%;transform:translateX(-50%) translateY(-30px);background:linear-gradient(135deg,#ffcf3f,#ff9d00);color:#3a2000;padding:14px 22px;border-radius:16px;font-weight:800;font-size:14px;box-shadow:0 8px 30px rgba(255,157,0,.5);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:200;text-align:center;max-width:90vw}
.level-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.lt-title{font-size:16px;margin-bottom:4px}
.lt-sub{font-size:13px;opacity:.85}

/* modal */
.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center}
.modal[hidden]{display:none}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);animation:fade .2s ease}
.modal-sheet{position:relative;width:100%;max-width:520px;background:linear-gradient(180deg,#1c0e4e,#0f0630);border-top-left-radius:22px;border-top-right-radius:22px;border-top:1px solid rgba(165,139,255,.35);padding:16px 16px calc(16px + env(safe-area-inset-bottom,0));max-height:80vh;overflow-y:auto;animation:slideUp .22s cubic-bezier(.2,.9,.3,1.1)}
@keyframes slideUp{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.modal-head h3{margin:0;font-size:18px}
.shop-list{display:flex;flex-direction:column;gap:10px}
.shop-item{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;background:rgba(20,10,60,.55);border:1px solid rgba(165,139,255,.25)}
.si-icon{font-size:28px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:rgba(165,139,255,.15);flex-shrink:0}
.si-body{flex:1;min-width:0}
.si-title{font-weight:800;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.si-lvl{font-weight:600;font-size:11px;opacity:.7;background:rgba(255,255,255,.08);padding:1px 6px;border-radius:6px}
.si-cur{font-size:12px;opacity:.85;margin-top:2px}
.si-cur b{color:#4dff9f}
