:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#fff8ea;background:radial-gradient(circle at top,rgba(255,198,94,.18),transparent 30%),linear-gradient(180deg,#22070a,#5a0f12 42%,#170407);color-scheme:dark;line-height:1.4;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--panel: rgba(40, 8, 12, .78);--border: rgba(255, 239, 214, .14);--gold: #ffc85a;--shadow: 0 18px 45px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{min-height:100vh;overflow:hidden}button,select{font:inherit}.app-shell{height:100vh;height:100svh;padding:8px}.app-frame{width:min(100%,430px);height:calc(100vh - 16px);height:calc(100svh - 16px);margin:0 auto;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:8px}.play-area{min-height:0}.topbar,.jackpot-bar,.board-panel,.bet-panel,.stats-drawer{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar{border-radius:24px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between}.brand{text-align:center;display:grid}.brand strong{font-size:1.15rem;letter-spacing:.08em}.brand__eyebrow,.panel-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#fff4dcbd}.icon-button,.step-button,.chip,.ghost-button,.toggle-row,.segmented__item,select{border:1px solid rgba(255,248,234,.16);background:#ffffff0f;color:inherit;border-radius:16px}.icon-button{width:38px;height:38px}.jackpot-bar{border-radius:22px;padding:8px 14px;display:flex;align-items:center;justify-content:space-between}.jackpot-bar strong{display:block;font-size:1.2rem;color:var(--gold)}.jackpot-bar__meta{color:#fff8eabd}.board-panel{border-radius:28px;padding:10px;min-height:0;display:grid;align-content:center}.basketball,.board-ball{width:66px;height:66px;border-radius:50%;background:radial-gradient(circle at 30% 28%,#ffd58b 0 20%,#e27e2b 22% 80%,#8c3b14 82% 100%);position:relative;border:3px solid #120a07;box-shadow:inset 0 -3px 6px #0000004d,0 2px #00000059}.basketball span:before,.basketball span:after,.board-ball:before,.board-ball:after{content:"";position:absolute;background:#0e0807e6}.basketball span:before,.board-ball:before{inset:0 12px}.basketball span:after,.board-ball:after{inset:12px 0}.board-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;aspect-ratio:1;width:min(100%,clamp(220px,calc(100svh - 360px),360px));max-width:100%;margin:0 auto}.board-cell{border-radius:14px;overflow:hidden;min-height:34px;display:grid;place-items:center;position:relative}.board-cell--white{background:#f3e9d3}.board-cell--red{background:#d64d4d}.board-cell--special:after{content:"";position:absolute;inset:3px;border-radius:12px;border:3px solid #4cff86;box-shadow:inset 0 0 0 1px #3a0f0866,0 0 18px #4cff869e}.board-cell--impact{animation:cellPulse .38s ease}.special-badge{position:absolute;top:4px;right:4px;z-index:2;width:18px;height:18px;border-radius:999px;display:grid;place-items:center;background:#26120c;color:#4cff86;font-size:.62rem;font-weight:900;box-shadow:0 0 0 2px #4cff86e0}.board-cell__balls{z-index:1;display:flex;gap:4px;flex-wrap:wrap;justify-content:center;align-items:center;max-width:90%;min-height:100%}.board-ball{width:24px;height:24px;font-size:.72rem;font-weight:700;display:grid;place-items:center;color:#fff}.board-ball--special{outline:2px solid rgba(255,211,115,.88)}.bet-panel{border-radius:28px 28px 30px 30px;padding:10px;display:grid;gap:6px}.balance-strip{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:16px;background:linear-gradient(135deg,#240b09f2,#541812d1);border:1px solid rgba(255,220,125,.2)}.balance-strip span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#ffefd6b8}.balance-strip strong{color:var(--gold);font-size:1.1rem}.bet-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bet-card{border-radius:20px;min-height:60px;border:1px solid transparent;padding:10px;display:grid;align-content:space-between;text-align:left;color:inherit;position:relative;overflow:hidden}.bet-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.bet-card__title-wrap{display:flex;align-items:center;gap:6px}.bet-chip-marker{width:18px;height:18px;border-radius:999px;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#ffe08f 0 25%,#ea9836 28% 78%,#8e4b18 82% 100%);color:#2a0d07;font-size:.52rem;font-weight:900;box-shadow:inset 0 -1px 2px #0000003d,0 0 0 1px #00000047}.bet-card__amount{font-size:.82rem;font-weight:700;padding:4px 8px;border-radius:999px;background:#00000029}.bet-card__payout-feedback{position:absolute;right:12px;bottom:8px;color:#ffd24f;font-size:.96rem;font-weight:900;text-shadow:0 1px 0 rgba(73,31,8,.8),0 0 10px rgba(255,210,79,.45);animation:payoutFloat 1.1s ease forwards}.bet-card--red{background:linear-gradient(160deg,#ce3a3ad6,#620a0aeb)}.bet-card--white{background:linear-gradient(160deg,#f7edd3eb,#a09582d6);color:#380d10}.bet-card--power-red{background:linear-gradient(160deg,#ffbf59eb,#a22716f0)}.bet-card--power-white{background:linear-gradient(160deg,#ffdfb1f0,#6e2525f0)}.bet-card--active{border-color:#ffecbceb;box-shadow:0 0 0 2px #ffc85a47}.amount-panel{display:grid;gap:4px}.amount-panel__controls{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.amount-panel__actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.step-button,.chip,.throw-button,.toggle-row,.segmented__item,.ghost-button{min-height:38px}.chip--active,.segmented__item--active{background:#ffc85a3d;border-color:#ffc85ab8;box-shadow:0 0 0 1px #ffc85a52}.throw-button{width:100%;border:0;border-radius:20px;background:linear-gradient(135deg,#ffca60,#df5934);color:#2c090c;font-weight:800;letter-spacing:.14em;min-height:48px}.drawer-backdrop{position:fixed;inset:0;background:#0a040600;pointer-events:none;transition:.22s ease}.drawer-backdrop--visible{background:#0a04068f;pointer-events:auto}.stats-drawer{position:fixed;top:0;right:0;bottom:0;width:min(88vw,360px);padding:20px;transform:translate(100%);transition:transform .24s ease;overflow-y:auto;z-index:10;background:#1e060af5}.stats-drawer--open{transform:translate(0)}.stats-drawer__header,.stats-list div,.toggle-row{display:flex;justify-content:space-between;align-items:center}.stats-list,.settings-group{display:grid;gap:10px;margin-bottom:18px}.stats-list div,.rules-box,.debug-box{padding:10px 12px;border-radius:16px;background:#ffffff0a}.rules-box p{margin:0 0 8px}.rules-box p:last-child{margin-bottom:0}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ghost-button,.toggle-row,.segmented__item{padding:0 14px;color:inherit}.result-history{display:flex;flex-wrap:wrap;gap:8px}.history-pill{padding:8px 10px;border-radius:999px;background:#ffffff0f;font-size:.8rem}.debug-box{margin:0;overflow-x:auto;font-size:.72rem}.manual-grid{display:grid;gap:10px}.manual-grid__item{display:grid;gap:6px}.manual-grid__item select{min-height:42px;padding:0 10px}.jackpot-overlay{position:fixed;inset:0;display:grid;place-items:center;background:#12040500;opacity:0;pointer-events:none;transition:.22s ease;z-index:20}.jackpot-overlay--visible{opacity:1;background:#120405cc;pointer-events:auto}.jackpot-overlay__card{position:relative;z-index:1;width:min(82vw,320px);padding:24px;border-radius:28px;text-align:center;background:linear-gradient(180deg,#441407fa,#160707fa);border:1px solid rgba(255,214,132,.4)}.jackpot-overlay__card strong{display:block;margin:8px 0;font-size:2rem;color:var(--gold)}.jackpot-overlay__burst{position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,208,109,.65) 0%,rgba(255,208,109,.04) 62%,transparent 75%);animation:burst 1.1s ease-in-out infinite alternate}@keyframes cellPulse{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.04);filter:brightness(1.16)}to{transform:scale(1);filter:brightness(1)}}@keyframes burst{0%{transform:scale(.92)}to{transform:scale(1.15)}}@keyframes payoutFloat{0%{opacity:0;transform:translateY(8px) scale(.92)}20%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-18px) scale(1.02)}}@media(max-width:380px){.app-shell{padding:6px}.app-frame{height:calc(100vh - 12px);height:calc(100svh - 12px)}.amount-panel__controls{grid-template-columns:repeat(5,1fr)}}
