:root{--bg-1: #372a8a;--bg-2: #241b5e;--bg-3: #110e2b;--glow: rgba(124, 108, 255, .55);--surface: rgba(255, 255, 255, .08);--surface-strong: rgba(255, 255, 255, .14);--border: rgba(255, 255, 255, .14);--accent: #8b7cff;--text: #ffffff;--text-2: rgba(255, 255, 255, .72);--text-3: rgba(255, 255, 255, .45);--gold: #ffd66b;--gold-bg: rgba(255, 214, 107, .12);--radius-sheet: 24px;--edge: 16px;--gap: 8px;--gap-top: 12px;--stat-pad: 10px;--card-pad: 8px;--cell-gap: 5px;--head-h: 28px;--btn-h: 52px;--num: 18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{background:transparent;font-family:Poppins,system-ui,sans-serif;font-weight:500;color:var(--text);overflow:hidden;-webkit-user-select:none;user-select:none}body.preview{background:#0b0a1d}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}p{margin:0}.backdrop{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.sheet{position:relative;width:100%;max-width:560px;max-height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:linear-gradient(180deg,var(--bg-1),var(--bg-2) 50%,var(--bg-3));padding-bottom:max(16px,env(safe-area-inset-bottom))}.sheet-game{height:100%}body.preview .sheet{max-height:86%}body.preview .sheet-game{height:86%}.glow{position:absolute;top:0;left:0;right:0;height:240px;opacity:.9;pointer-events:none;background:linear-gradient(180deg,var(--glow),transparent)}.handle{position:relative;align-self:center;width:40px;height:4px;border-radius:2px;margin-top:8px;background:#ffffff59;flex:none}.header{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:8px;padding:0 var(--edge);flex:none}.header>:first-child{justify-self:start}.header>:last-child{justify-self:end}.round-x{width:36px;height:36px;border-radius:18px;display:grid;place-items:center;flex:none;background:var(--surface-strong);border:1px solid var(--border)}.invisible{opacity:0;pointer-events:none}.header-title{min-width:0;margin:0 8px;text-align:center;font-weight:700;font-size:17px;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rule{position:relative;margin-top:2px;text-align:center;font-size:12px;color:var(--text-2);letter-spacing:.5px}.rule b{color:var(--gold);font-weight:700;letter-spacing:1px}.offline{position:relative;text-align:center;margin-top:6px;font-size:12px;font-weight:600;color:#ffb4c0}.stats{position:relative;display:flex;gap:10px;margin-top:12px;padding:0 var(--edge);flex:none}.stat{flex:1;min-width:0;padding:var(--stat-pad) 10px;border-radius:16px;text-align:start;background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column}.stat-btn:active{background:var(--surface-strong)}.stat-line{display:flex;align-items:center;gap:8px;min-width:0}.stat-value{font-weight:700;line-height:26px;flex:1}.stat-value.gold{color:var(--gold)}.stat-label{margin-top:2px;font-size:11px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-line .coin-big,.stat-line svg{flex:none}.stat-dot{width:18px;height:18px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 35%,#fff 0 22%,var(--accent) 24%)}.coin{width:14px;height:14px;object-fit:contain}.coin-big{width:20px;height:20px;object-fit:contain;flex:none}.scroll{position:relative;flex:0 1 auto;overflow-y:auto;padding:0 var(--edge) 24px;scrollbar-width:none}.scroll::-webkit-scrollbar{display:none}.scroll-game{flex:1 1 auto;min-height:0;overflow:hidden;padding-bottom:0;display:flex;flex-direction:column}.box{border-radius:20px;background:var(--surface);border:1px solid var(--border)}.game{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--gap);margin-top:var(--gap-top)}.notice{height:32px;border-radius:12px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:0 12px;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden}.notice span{overflow:hidden;text-overflow:ellipsis}.notice-hot{background:#ff5a5f38;border-color:#ff8a8a99}.stage{flex:none;display:flex;align-items:center;gap:12px;padding:5px 12px;border-radius:20px;background:var(--surface);border:1px solid var(--border)}.stage-ball{display:grid;place-items:center;flex:none}.stage-history{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px}.history-top{align-self:stretch;display:flex;align-items:center;justify-content:center;gap:8px;min-height:22px}.history-title{color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:2px}.history-balls{display:flex;gap:6px}.auto-chip{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:11px;background:var(--surface-strong);border:1px solid var(--border);font-size:11px;font-weight:600;white-space:nowrap}.auto-on{border-color:var(--gold);color:var(--gold)}.ball{position:relative;flex:none}.ball img{display:block}.ball-core{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.ball-letter{font-weight:700;margin-bottom:1px}.ball-number{color:#14163a;font-weight:700}.ball-slot{flex:none;border-radius:50%;background:var(--surface);border:2px dashed var(--border)}.ball-drop{animation:drop .6s cubic-bezier(.34,1.56,.64,1)}@keyframes drop{0%{transform:translateY(-70px) scale(.4) rotate(-200deg)}to{transform:none}}.card-frame{position:relative;border-radius:20px;background:var(--surface);border:1px solid var(--border);padding:var(--card-pad);flex:1 1 auto;min-height:calc(5 * 36px + 4 * var(--cell-gap) + var(--head-h) + var(--cell-gap) + 2 * var(--card-pad) + 2px);max-height:calc(min(100vw,560px) - 2 * var(--edge) + var(--head-h) + 2 * var(--cell-gap));display:flex;flex-direction:column}.card{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--cell-gap)}.card-row{display:flex;gap:var(--cell-gap)}.card-cells{flex:1 1 0;min-height:0}.card-head{flex:1;height:var(--head-h);border-radius:10px;display:grid;place-items:center;font-size:15px;font-weight:700}.cell-hit{flex:1;display:flex;align-items:stretch;min-width:0;min-height:0}.cell{position:relative;flex:1;width:100%;height:100%;border-radius:12px;background:var(--surface-strong);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.cell-free{flex-direction:column;gap:1px;border:2px solid rgba(255,255,255,.75)}.free-star{font-size:18px;line-height:1;color:var(--gold)}.free-label{font-size:9px;font-weight:700;letter-spacing:1px;line-height:1}.cell-empty{background:var(--surface)}.cell-num{font-size:var(--num);font-weight:600}.cell{container-type:size}.stamp{position:absolute;left:50%;top:50%;width:30px;height:30px;width:min(78cqw,78cqh);height:min(78cqw,78cqh);border-radius:50%;border:2px solid rgba(255,255,255,.75);pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(1.5) rotate(-25deg);transition:opacity .18s,transform .28s cubic-bezier(.34,1.56,.64,1)}.stamp-on{opacity:1;transform:translate(-50%,-50%)}.cell-num{position:relative;z-index:1;line-height:1}.cell-marked .cell-num{font-size:calc(var(--num) * .82);color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.35)}.cell-shake{animation:shake .22s linear}@keyframes shake{20%{transform:translate(6px)}40%{transform:translate(-6px)}60%{transform:translate(4px)}80%{transform:translate(-4px)}}.card-lock,.card-veil{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 22px;gap:12px}.card-lock{background:#110e2beb;font-size:14px;font-weight:600;white-space:pre-line}.card-veil{background:#241b5ef0}.veil-title{font-size:16px;font-weight:700}.footer{position:relative;display:flex;flex-direction:column;gap:6px;padding:var(--gap) var(--edge) 2px;flex:none}.row{display:flex;gap:10px;align-self:stretch}.btn{position:relative;flex:1;min-height:48px;border-radius:14px;padding:0 16px;overflow:hidden;font-size:15px;font-weight:600;white-space:nowrap;display:flex;align-items:center;justify-content:center}.btn .btn-label{position:relative}.fit{display:block;width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-align:center}.stat .fit{text-align:start}.btn-big{min-height:var(--btn-h);font-size:16px}.btn-purple,.btn-gold,.btn-red{background:var(--accent)}.btn-green{background:#34d39938;border:1px solid rgba(52,211,153,.6)}.btn-off{background:var(--surface-strong);color:var(--text-3)}.btn:disabled{cursor:default}.btn-pulse{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{transform:scale(1.03)}}.btn-draw{background:var(--surface-strong);border:1px solid var(--border)}.draw-bar{position:absolute;left:0;top:0;bottom:0;background:var(--accent)}.cancel{align-self:center;padding:4px;font-size:13px;color:var(--text-2);text-decoration:underline}.auto{align-self:flex-start;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2)}.center{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0;text-align:center}.title{font-size:17px;font-weight:700}.text{color:var(--text-2);font-size:13px;line-height:19px}.big-count{color:var(--gold);font-size:40px;font-weight:700;font-variant-numeric:tabular-nums}.medal{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--accent);border:1px solid var(--border)}.winners{align-self:stretch;padding:0 12px;margin:8px 0}.winner{display:flex;align-items:center;gap:12px;min-height:64px;border-bottom:.5px solid var(--border)}.winner:last-child{border-bottom:0}.winner-name{flex:1;font-size:13px;font-weight:600;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gold-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;background:var(--gold-bg);color:var(--gold);font-size:13px;font-weight:700;white-space:nowrap}.avatar{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);object-fit:cover;flex:none;background:var(--surface-strong)}.avatar-blank{background:var(--surface-strong)}.form{display:flex;flex-direction:column;gap:10px;margin-top:14px}.label{font-size:13px;font-weight:600;margin-top:4px}.help{color:var(--text-2);font-size:12px;line-height:18px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{height:38px;padding:0 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border);font-size:13px;font-weight:600}.chip-on{background:var(--accent);border-color:var(--accent)}.shortcuts{display:flex;gap:6px}.shortcut{flex:1;padding:0 4px;font-size:12px}.value-box{display:flex;align-items:center;gap:8px;height:56px;padding:0 12px;margin-bottom:4px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}.value{flex:1;display:flex;align-items:center;justify-content:center;gap:8px}.value-n{font-size:20px;font-weight:700;color:var(--gold)}.value .coin{width:20px;height:20px}.times{color:var(--text-2);font-size:13px;font-weight:600}.step{width:36px;height:36px;border-radius:18px;display:grid;place-items:center;background:var(--surface-strong);border:1px solid var(--border)}.error{position:absolute;top:60px;left:var(--edge);right:var(--edge);z-index:20;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:#c81e3a;border:1px solid rgba(255,154,168,.8);font-size:13px;font-weight:600}.panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--bg-1),var(--bg-2) 50%,var(--bg-3));border-radius:var(--radius-sheet) var(--radius-sheet) 0 0}.panel-sub{position:relative;margin:10px 0;padding:0 var(--edge);font-size:12px;color:var(--text-2);text-align:center}.panel-body{position:relative;flex:1;overflow-y:auto;padding:0 var(--edge) 16px}.panel-empty{margin-top:36px;text-align:center;font-size:13px;line-height:19px;color:var(--text-2)}.players{list-style:none;margin:0;padding:0 12px}.player{display:flex;align-items:center;gap:12px;min-height:64px;border-bottom:.5px solid var(--border)}.player:last-child{border-bottom:0}.player-texts{flex:1;min-width:0;display:flex;flex-direction:column}.player-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-cards{font-size:12px;color:var(--text-2)}.host-tag{padding:4px 10px;border-radius:12px;background:var(--gold-bg);color:var(--gold);font-size:11px;font-weight:700;letter-spacing:1px}.board{display:flex;flex-direction:column;gap:5px;padding:12px}.board-row{display:flex;gap:3px;align-items:center}.board-letter{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}.board-n{flex:1;min-width:0;height:22px;border-radius:6px;display:grid;place-items:center;font-size:10px;font-weight:600;background:var(--surface);color:var(--text-3)}.board-on{color:#fff}.board-last{outline:2px solid var(--gold)}.spinner{width:28px;height:28px;margin:40px auto;border-radius:50%;border:3px solid var(--surface-strong);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:25}.confetti i{position:absolute;top:-12px;width:8px;height:13px;border-radius:2px;animation:fall linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:.8}}.wallet-pill{flex:none;height:34px;padding:0 8px 0 4px;border-radius:17px;display:inline-flex;align-items:center;gap:5px;background:var(--surface-strong);border:1px solid var(--border);font-size:13px;font-weight:700}.wallet-coin{display:inline-flex}.wallet-val{min-width:14px}.wallet-plus{width:18px;height:18px;border-radius:9px;display:grid;place-items:center;background:#3b82f6;font-size:14px;line-height:1}@media(max-height:760px){:root{--gap: 6px;--gap-top: 8px;--stat-pad: 7px;--card-pad: 6px;--cell-gap: 4px;--head-h: 24px;--btn-h: 46px;--edge: 14px}.header{margin-top:4px}.round-x{width:32px;height:32px}.stats{margin-top:6px;gap:8px}.stat-label{font-size:10px;margin-top:0}.notice{height:28px;font-size:12px}:root{--num: 16px}}@media(max-height:600px){:root{--gap: 5px;--gap-top: 6px;--stat-pad: 5px;--head-h: 22px;--btn-h: 44px}.rule,.stat-label{display:none}}.cell-pop{animation:pop .25s ease-out}@keyframes pop{50%{transform:scale(.92)}}.blue-coin{display:inline-flex;flex:none}.blue-chip{background:#3b82f62e;color:#bcd7ff}
