:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0e14;--panel:#141824;--bg-elevated:#141824;--panel-2:#0f131c;--bg-soft:#1a1f2e;--border:#2a3142;--border-strong:#3a4358;--text:#eef1f8;--muted:#a0a9bc;--accent:#6b8cff;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-ink:#dce4ff;--game-accent:var(--accent);--good:#3ddc97;--bad:#ff6b7a;--danger:#ff6b7a;--warn:#ffc14d;--radius:14px;--radius-sm:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--touch:44px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur:.16s;--font:"Segoe UI", system-ui, -apple-system, "Noto Sans TC", sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}.app[data-game=crash]{--game-accent:#ff6b4a}.app[data-game=hilo]{--game-accent:#4ecdc4}.app[data-game=mines]{--game-accent:#f0c14a}.app[data-game=dice]{--game-accent:#9b7bff}.app[data-game=plinko]{--game-accent:#5ad4a8}.app[data-game=blast]{--game-accent:#ff7a45;--accent:#ff7a45;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(900px 480px at 50% -12%, color-mix(in srgb, var(--game-accent,var(--accent)) 14%, #1a2240) 0%, transparent 55%), var(--bg);overscroll-behavior-y:none}button,input{font:inherit}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:480px;min-height:100svh;padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom,0px));gap:var(--space-3);contain:layout style;align-content:start;margin:0 auto;display:grid}.header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.header-left{gap:2px;min-width:0;display:grid}.header h1{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700;line-height:1.2}.title-row{align-items:center;gap:10px;min-width:0;display:flex}.game-badge{width:32px;height:32px;box-shadow:0 0 0 1px color-mix(in srgb, var(--game-accent) 35%, var(--border)), 0 2px 8px #00000059;border-radius:9px;flex-shrink:0;display:block}.btn-lobby{border:1px solid var(--border);background:var(--panel-2);width:fit-content;min-height:32px;color:var(--muted);white-space:nowrap;transition:color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), background var(--dur) var(--ease-out);border-radius:999px;align-items:center;gap:4px;margin:0 0 6px;padding:4px 12px 4px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.btn-lobby:before{content:"←";opacity:.85;font-weight:700}.btn-lobby:hover{color:var(--text);border-color:color-mix(in srgb, var(--game-accent) 40%, var(--border));background:color-mix(in srgb, var(--game-accent) 8%, var(--panel-2))}.btn-lobby:active{transform:scale(.98)}.center .btn-lobby{justify-self:center;margin-top:12px}.sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;font-size:.8rem;display:flex}.sub-sep{opacity:.5}.status-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot.on{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent)}.bal{background:var(--accent-soft);color:var(--accent-ink);font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:999px;flex-shrink:0;padding:8px 12px;font-size:.9rem;font-weight:600}.bet-panel{padding:var(--space-3);border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);gap:10px;display:grid;box-shadow:inset 0 1px #ffffff0a}.amount-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.amount-row label{color:var(--muted);font-size:.9rem}.amount-row input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);width:140px;min-height:40px;color:var(--text);font-variant-numeric:tabular-nums;padding:8px 10px}.quick{flex-wrap:wrap;gap:6px;display:flex}.quick button{border:1px solid var(--border);background:var(--panel-2);min-width:44px;min-height:36px;color:var(--muted);transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);border-radius:8px;padding:6px 10px}.quick button:hover:not(:disabled){color:var(--text);background:color-mix(in srgb, var(--panel-2) 70%, var(--accent))}.quick button.on,.quick button.active{color:var(--text);border-color:color-mix(in srgb, var(--game-accent) 45%, var(--border));background:color-mix(in srgb, var(--game-accent) 14%, var(--panel-2));font-weight:600}.primary-action,.primary,.btn{background:var(--accent);color:#fff;min-height:48px;transition:filter var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);border:none;border-radius:12px;padding:12px 14px;font-weight:700}.primary-action:hover:not(:disabled),.primary:hover:not(:disabled),.btn:hover:not(:disabled){filter:brightness(1.06)}.primary-action:active:not(:disabled),.primary:active:not(:disabled),.btn:active:not(:disabled){transform:scale(.985)}.primary-action:disabled,.primary:disabled,.quick button:disabled{opacity:.45;cursor:not-allowed}.hint{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.error{color:var(--bad);margin:0;font-size:.9rem}.section h2{color:var(--muted);letter-spacing:.02em;margin:0 0 8px;font-size:.8rem;font-weight:600}.center{place-content:center;gap:var(--space-3);text-align:center;min-height:100svh;padding:var(--space-5);color:var(--text);display:grid}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto;animation:.75s linear infinite shell-spin}@keyframes shell-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-lobby:active,.primary-action:active:not(:disabled),.primary:active:not(:disabled),.btn:active:not(:disabled){transform:none}.status-dot.on{box-shadow:none}.spinner{border-top-color:var(--border);opacity:.8;animation:none}}.history{content-visibility:auto;flex-wrap:wrap;gap:6px;min-height:28px;display:flex}.history.empty,.players.empty{color:var(--muted);font-size:.9rem}.hist-chip{font-variant-numeric:tabular-nums;border-radius:8px;padding:4px 8px;font-size:.75rem;font-weight:700}.hist-red{background:color-mix(in srgb, var(--bad) 22%, transparent);color:#ffb0b8}.hist-blue{color:#9bc8ff;background:#4ea1ff38}.hist-green{background:color-mix(in srgb, var(--good) 22%, transparent);color:#8ef0c2}.chart-block{border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);min-height:220px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff08,0 16px 40px #00000059}.chart-block:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(180deg, color-mix(in srgb, var(--game-accent) 10%, transparent) 0%, transparent 28%, transparent 72%, #00000040 100%);position:absolute;inset:0}.chart-wrap{aspect-ratio:16/10;width:100%;height:min(52vw,280px);min-height:220px}.chart-canvas{z-index:0;width:100%;height:100%;display:block;position:relative}.overlay-badge{z-index:2;border:1px solid var(--border);font-variant-numeric:tabular-nums;pointer-events:none;background:#0000008c;border-radius:999px;padding:5px 12px 8px;font-size:.85rem;position:absolute;top:10px;left:50%;transform:translate(-50%)}.badge-track{background:#ffffff1f;border-radius:2px;height:2px;position:absolute;bottom:4px;left:10px;right:10px;overflow:hidden}.badge-fill{background:var(--accent);transform-origin:0;border-radius:2px;height:100%;transition:transform .12s linear}.cash-flash{z-index:2;pointer-events:none;background:radial-gradient(120% 90% at 50% 60%, color-mix(in srgb, var(--warn) 32%, transparent) 0%, transparent 65%);opacity:0;animation:cash-flash .62s var(--ease-out) both;position:absolute;inset:0}@keyframes cash-flash{0%{opacity:0}18%{opacity:1}to{opacity:0}}.primary-action.cashout{color:#1a1200;background:linear-gradient(135deg,#ffb347,#fc3)}.primary-action.pulse{animation:cashout-pulse 1.4s var(--ease-out) infinite}@keyframes cashout-pulse{0%,to{box-shadow:0 0 #ffcc3373}55%{box-shadow:0 0 0 9px #0000}}.players{content-visibility:auto;gap:6px;margin:0;padding:0;list-style:none;display:grid}.players li{border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--border);font-variant-numeric:tabular-nums;grid-template-columns:64px 64px 1fr;align-items:center;gap:8px;min-height:44px;padding:10px;font-size:.85rem;display:grid}.players li.ok{border-color:color-mix(in srgb, var(--good) 40%, transparent)}.players li.bad{border-color:color-mix(in srgb, var(--bad) 35%, transparent)}.players li.live .st{color:var(--accent)}.players li.flash.ok{animation:row-flash-good .7s var(--ease-out) both}.players li.flash.bad{animation:row-flash-bad .7s var(--ease-out) both}@keyframes row-flash-good{0%{background:color-mix(in srgb, var(--good) 30%, var(--panel))}to{background:var(--panel)}}@keyframes row-flash-bad{0%{background:color-mix(in srgb, var(--bad) 26%, var(--panel))}to{background:var(--panel)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
