:root{--bg0: #070d1f;--bg1: #0f1b3d;--surface: #141f42;--surface2: #1b2850;--border: rgba(255, 255, 255, .08);--text: #e8ecf8;--muted: #8b93b8;--gold: #fbbf24;--green: #22c55e;--green2: #15803d;--red: #ef4444;--red2: #b91c1c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:radial-gradient(ellipse at 50% 20%,var(--bg1) 0%,var(--bg0) 70%);-webkit-user-select:none;user-select:none;overflow-x:hidden}.app{display:flex;flex-direction:column;min-height:100%;max-width:520px;margin:0 auto}header{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 8px}.logo{font-size:22px}.header-title{font-weight:800;font-size:14px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.icon-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);width:36px;height:36px;border-radius:12px;font-size:16px;cursor:pointer}.pill-gold{margin-left:auto;background:#fbbf241f;color:var(--gold);border:1px solid rgba(251,191,36,.35);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:700}.pill-red{margin-left:auto;background:#ef444426;color:#fca5a5;border-radius:999px;padding:6px 14px;font-size:13px}.lobby{padding:8px 16px 110px;display:flex;flex-direction:column;gap:14px}.welcome{display:flex;align-items:center;gap:12px}.welcome-text{display:flex;flex-direction:column}.welcome-hi{font-size:12px;color:var(--muted)}.welcome-name{font-size:17px;font-weight:800}.banner{position:relative;overflow:hidden;border-radius:22px;padding:22px 20px;background:linear-gradient(115deg,#5b21b6,#7c3aed 45%,#a855f7);border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 30px #7c3aed40;min-height:96px;display:flex;align-items:center}.banner-text{display:flex;flex-direction:column;gap:4px;z-index:1}.banner-text b{font-size:21px}.banner-text span{font-size:12.5px;color:#fffc;line-height:1.35}.banner-card{position:absolute;width:76px;filter:drop-shadow(0 8px 12px rgba(0,0,0,.5))}.banner-card.c1{right:62px;top:8px;transform:rotate(-14deg)}.banner-card.c2{right:14px;top:18px;transform:rotate(12deg)}.btn{border:none;border-radius:16px;padding:13px 22px;font-size:15px;font-weight:800;color:var(--text);background:var(--surface2);cursor:pointer;border:1px solid var(--border)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4}.btn.primary{background:linear-gradient(135deg,#22c55e,#15803d);border-color:#ffffff26;box-shadow:0 8px 24px #22c55e59;color:#052e12}.btn.danger{background:linear-gradient(135deg,#f87171,#dc2626);border-color:#ffffff26;box-shadow:0 8px 24px #ef44444d;color:#fff}.btn.secondary{background:var(--surface2);color:var(--text)}.btn.wide{flex:1}.btn.giant{font-size:17px;padding:17px;border-radius:18px}.btn.play{background:#ffffffeb;color:#0b1226;border-radius:999px;padding:9px 18px;font-size:13px;font-weight:800;white-space:nowrap}.join-row{display:flex;gap:8px}.join-row input{flex:1;min-width:0;text-transform:uppercase;text-align:center;letter-spacing:5px;font-size:16px;font-weight:700;padding:12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none}.section-title{font-size:11px;font-weight:800;letter-spacing:2px;color:var(--muted);margin-top:6px}.empty{color:var(--muted);font-size:13px;text-align:center;padding:18px 0}.table-card{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:14px}.tc-icon{width:42px;height:42px;border-radius:12px;background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:20px}.tc-main{flex:1;min-width:0}.tc-title{font-size:11px;color:var(--muted);letter-spacing:1px}.tc-title b{color:var(--text);font-size:15px;letter-spacing:2px;margin-left:4px}.tc-meta{display:flex;gap:14px;margin-top:6px}.tc-meta span{display:flex;flex-direction:column;font-size:12px;font-weight:600}.tc-meta i{font-style:normal;font-size:9px;color:var(--muted);letter-spacing:1px;margin-bottom:1px}.board{position:relative;flex:1;min-height:380px;margin:0 6px}.felt{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:92%;height:78%;border-radius:50%;background:radial-gradient(ellipse at center,#1b3b6e,#12295a 55%,#0b1d44);box-shadow:inset 0 0 60px #00000073,0 0 0 5px #1c2b56,0 14px 40px #00000080}.felt:after{content:"";position:absolute;top:9%;right:9%;bottom:9%;left:9%;border-radius:50%;border:2px dashed rgba(255,255,255,.1)}.dealer{position:absolute;left:50%;top:9%;transform:translate(-50%);text-align:center;z-index:2}.dealer-tag{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--muted);margin-bottom:6px}.pot{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;z-index:2;background:#070d1fb3;border:1px solid var(--border);border-radius:999px;padding:6px 16px}.pot-label{font-size:8.5px;letter-spacing:2px;color:var(--muted);font-weight:800}.pot-value{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:800;color:var(--gold)}.seat-pos{position:absolute;transform:translate(-50%,-50%);z-index:2}.pod{display:flex;flex-direction:column;align-items:center;position:relative}.pod.off{opacity:.5}.pod-fan{position:absolute;top:-14px;display:flex;justify-content:center;z-index:-1;pointer-events:none}.pod-fan .card{margin-left:-14px}.pod-fan .card:first-child{margin-left:0}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;border:3px solid rgba(255,255,255,.25);box-shadow:0 6px 16px #00000073;position:relative}.avatar.glow{border-color:var(--green);box-shadow:0 0 0 3px #22c55e59,0 0 22px #22c55e8c}.pod-name{font-size:12px;font-weight:700;margin-top:5px}.pod-balance{font-size:12px;color:var(--gold);font-weight:700}.off-tag{margin-left:5px;font-size:8.5px;color:#fca5a5;text-transform:uppercase;letter-spacing:.5px}.thinking{margin-top:3px;font-size:9.5px;font-weight:700;color:#052e12;background:var(--green);border-radius:999px;padding:2px 9px}.result-tag{margin-top:3px;font-size:9.5px;font-weight:800;border-radius:999px;padding:2px 9px}.result-tag.blackjack{background:var(--gold);color:#422006}.result-tag.win{background:var(--green);color:#052e12}.result-tag.push{background:#64748b;color:#fff}.result-tag.lose{background:#ef4444e6;color:#fff}.cards{display:flex;justify-content:center;align-items:center}.card{border-radius:7px;box-shadow:0 5px 12px #00000080;transition:transform .15s ease}.card-xs{width:30px}.card-md{width:62px;margin-left:-22px}.card-lg{width:74px;margin-left:-26px}.cards .card:first-child{margin-left:0}.val-pill{display:inline-flex;align-items:center;justify-content:center;background:#ffffff1f;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;color:var(--text)}.val-pill.big{font-size:15px;padding:4px 14px}.myhand{display:flex;justify-content:center;margin-top:-6px}.myhand-row{display:flex;align-items:center;gap:12px;margin:0 10px}.controls{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 14px)}.chips-row{display:flex;justify-content:center;gap:8px}.chip-btn{background:none;border:none;padding:2px;cursor:pointer;border-radius:50%}.chip-btn:active{transform:scale(.9)}.chip-btn:disabled{opacity:.3}.chip{display:inline-block;background-image:url(/assets/chips/td-a.png);background-repeat:no-repeat}.bet-row{display:flex;align-items:center;justify-content:center;gap:18px}.btn.step{width:44px;height:44px;border-radius:50%;font-size:22px;padding:0;background:var(--surface2)}.bet-amount{font-size:26px;font-weight:900;color:var(--gold);min-width:96px;text-align:center}.actions-row{display:flex;gap:10px}.hint{text-align:center;color:var(--muted);font-size:14px;padding:6px 0}.toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 60px);left:50%;transform:translate(-50%);background:var(--red);color:#fff;padding:10px 18px;border-radius:14px;font-size:14px;font-weight:700;box-shadow:0 8px 24px #00000080;z-index:50}@media(max-width:560px){.card-md{width:50px;margin-left:-18px}.card-lg{width:62px;margin-left:-22px}.btn{font-size:14px}}
