.slots-machine{display:flex;flex-direction:column;align-items:center;gap:20px}.slots-reels{display:flex;gap:12px;background:#0a0c10;padding:24px 32px;border-radius:12px;border:3px solid var(--accent);box-shadow:0 0 30px #f0c04033}.reel{width:100px;height:100px;background:var(--bg3);border-radius:8px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.reel-symbol{font-size:3rem;line-height:1;-webkit-user-select:none;user-select:none}@keyframes reel-blur{0%,to{filter:blur(0)}50%{filter:blur(2px)}}.reel-spinning .reel-symbol{animation:reel-blur .16s ease-in-out infinite}.slots-controls{display:flex;justify-content:center;margin-top:16px}.paytable h3{margin-bottom:12px;color:var(--text2);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.paytable table{width:100%;border-collapse:collapse}.paytable tr{border-bottom:1px solid var(--border)}.paytable tr:last-child{border-bottom:none}.paytable td{padding:8px 4px}.paytable .combo{font-size:1.2rem}.paytable .pays{text-align:right;color:var(--accent);font-weight:600}.bj-table{min-height:300px;display:flex;flex-direction:column;gap:16px}.bj-idle{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text2)}.hand-row{display:flex;flex-direction:column;gap:10px}.hand-label{font-size:.85rem;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:8px}.hand-value{background:var(--bg3);padding:2px 8px;border-radius:4px;font-size:.9rem;color:var(--text);font-weight:700}.hand-cards{display:flex;gap:8px;flex-wrap:wrap}.bj-divider{border-top:1px dashed var(--border);margin:4px 0}.card{width:70px;height:100px;background:#fff;border-radius:7px;border:1px solid #ddd;position:relative;font-weight:700;box-shadow:0 2px 6px #0000004d;-webkit-user-select:none;user-select:none}.card-hidden{background:#2563eb;border-color:#1d4ed8;display:flex;align-items:center;justify-content:center}.card-back-pattern{font-size:2.5rem;opacity:.4}.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1.1}.card-corner.top-left{top:4px;left:5px;font-size:.75rem}.card-corner.bottom-right{bottom:4px;right:5px;font-size:.75rem;transform:rotate(180deg)}.card-rank{font-size:.85rem}.card-suit{font-size:.7rem}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.6rem}.bj-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.bj-action-btns{display:flex;gap:12px}.bj-rules{color:var(--text2);font-size:.85rem}.roulette-layout{display:flex;gap:24px;width:100%;flex-wrap:wrap;justify-content:center}.wheel-container{position:relative;width:300px;height:300px;flex-shrink:0}.wheel-svg-wrapper{width:300px;height:300px;transform-origin:center}.wheel-pointer{position:absolute;top:-8px;left:50%;transform:translate(-50%);color:var(--accent);font-size:1.2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.wheel-result{position:absolute;bottom:-48px;left:50%;transform:translate(-50%);width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:900;color:#fff;box-shadow:0 0 20px #fff3}.wheel-result.green{background:#16a34a}.wheel-result.red{background:#dc2626}.wheel-result.black{background:#1a1a1a;border:2px solid #555}.betting-area{flex:1;min-width:280px;display:flex;flex-direction:column;gap:12px}.chip-selector{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip{width:36px;height:36px;border-radius:50%;font-size:.7rem;font-weight:700;border:3px solid rgba(255,255,255,.3);transition:transform .1s;color:#fff}.text-sm{font-size:.85rem;color:var(--text2)}.number-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:4px}.number-grid .num-cell:first-child{grid-column:1}.num-cell,.bet-cell{padding:6px 2px;border-radius:4px;font-size:.7rem;font-weight:700;border:1px solid rgba(255,255,255,.1);transition:opacity .1s,transform .1s;cursor:pointer;text-align:center}.num-cell.red{background:#dc2626;color:#fff}.num-cell.black{background:#1e293b;color:#fff}.num-cell.green{background:#16a34a;color:#fff}.num-cell:hover{opacity:.8;transform:scale(1.05)}.num-cell.bet-placed{box-shadow:0 0 0 2px var(--accent)}.outside-bets,.dozen-bets{display:grid;grid-template-columns:repeat(6,1fr);gap:2px}.dozen-bets{grid-template-columns:repeat(3,1fr)}.bet-cell{background:var(--bg3);color:var(--text);font-size:.7rem}.bet-cell.red-bet{background:#dc2626;color:#fff}.bet-cell.black-bet{background:#1e293b;color:#fff;border:1px solid #555}.bet-cell:hover{opacity:.8}.bet-cell.bet-placed{box-shadow:0 0 0 2px var(--accent)}.bet-summary{background:var(--bg3);border-radius:6px;padding:8px 12px;min-height:48px;display:flex;flex-direction:column;gap:4px}.placed-bets{display:flex;flex-wrap:wrap;gap:6px}.placed-bet{background:var(--bg);padding:2px 8px;border-radius:4px;font-size:.75rem;color:var(--accent)}.total-bet{font-size:.85rem;font-weight:600}.no-bets{color:var(--text2);font-size:.85rem}.roulette-controls{display:flex;gap:12px;margin-top:8px}.crash-display{display:flex;flex-direction:column;align-items:center;gap:12px;background:#060810;border:1px solid var(--border)}.crash-multiplier{font-size:3rem;font-weight:900;font-variant-numeric:tabular-nums;transition:color .3s;text-shadow:0 0 30px currentColor}.crash-chart{width:100%;height:200px;border-bottom:1px solid var(--border);border-left:1px solid var(--border)}.crash-rules{color:var(--text2);font-size:.85rem}.vp-table{display:flex;flex-direction:column;align-items:center;gap:16px;min-height:200px}.vp-idle{display:flex;align-items:center;justify-content:center;height:150px;color:var(--text2)}.vp-hand{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.vp-card-wrap{position:relative;cursor:pointer;perspective:600px}.vp-card-wrap .card{transition:transform .15s}.vp-card-wrap:hover .card{transform:translateY(-4px)}.hold-badge{position:absolute;top:-22px;left:50%;transform:translate(-50%);background:var(--accent);color:#000;font-size:.65rem;font-weight:700;padding:2px 6px;border-radius:4px;z-index:1;white-space:nowrap}@keyframes card-flip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.vp-card-wrap.flipping .card{animation:card-flip .4s ease-in-out}.vp-hand-name{font-size:1.1rem;font-weight:700;color:var(--text2);text-align:center}.vp-hand-name.win{color:var(--green)}.vp-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.vp-hint{color:var(--text2);font-size:.85rem}.vp-paytable{width:100%;border-collapse:collapse;font-size:.85rem}.vp-paytable th{text-align:left;padding:6px 8px;color:var(--text2);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;border-bottom:1px solid var(--border)}.vp-paytable td{padding:5px 8px;border-bottom:1px solid var(--border)}.vp-paytable td:last-child{text-align:right;color:var(--accent);font-weight:600}.vp-paytable tr:last-child td{border-bottom:none}.vp-paytable tr.highlight td{background:#f0c0401a;color:var(--accent)}.craps-layout{display:flex;gap:20px;width:100%;flex-wrap:wrap}.craps-dice-area{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:16px;min-width:220px}.dice-row{display:flex;gap:16px;align-items:center}.die{width:72px;height:72px;background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:3rem;line-height:1;box-shadow:0 4px 12px #0006;color:#111;-webkit-user-select:none;user-select:none}@keyframes die-roll{0%{transform:rotate(0) scale(1)}25%{transform:rotate(90deg) scale(1.1)}50%{transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(1.1)}to{transform:rotate(360deg) scale(1)}}.die-rolling{animation:die-roll .3s linear infinite;background:var(--bg3);color:var(--text);font-size:2rem}.dice-total{font-size:2rem;font-weight:900;color:var(--accent);min-width:40px;text-align:center}.phase-display{text-align:center}.phase-badge{display:inline-block;padding:6px 16px;border-radius:20px;font-size:.9rem;font-weight:700}.phase-badge.come-out{background:#2ecc7126;color:var(--green);border:1px solid var(--green)}.phase-badge.point{background:#f0c04026;color:var(--accent);border:1px solid var(--accent)}.craps-result{font-size:.85rem;color:var(--text2);text-align:center;max-width:200px;line-height:1.4}.craps-table{flex:1;min-width:260px;display:flex;flex-direction:column;gap:12px}.chip-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.chip{width:36px;height:36px;border-radius:50%;font-size:.7rem;font-weight:700;border:3px solid rgba(255,255,255,.3);transition:transform .1s;color:#fff;cursor:pointer}.chip:hover{transform:scale(1.1)}.chip.active{transform:scale(1.2);box-shadow:0 0 0 3px var(--accent)}.chip-1{background:#4b5563}.chip-5{background:#dc2626}.chip-10{background:#16a34a}.chip-25{background:#2563eb}.chip-50{background:#7c3aed}.chip-100{background:#d97706}.craps-bets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}.craps-bet-cell{background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:background .15s,border-color .15s}.craps-bet-cell:hover:not(:disabled){background:var(--bg);border-color:var(--accent)}.craps-bet-cell.has-bet{border-color:var(--accent)}.craps-bet-cell.pending{border-color:var(--green);background:#2ecc710d}.craps-bet-cell:disabled{opacity:.5;cursor:default}.bet-cell-label{font-size:.75rem;color:var(--text2);text-align:center;line-height:1.2}.bet-cell-amount{font-size:.9rem;font-weight:700;color:var(--accent)}.craps-bet-actions{display:flex;gap:10px}.craps-rules{font-size:.82rem;color:var(--text2);line-height:1.7}.craps-rules strong{color:var(--text)}.mp-lobby{background:#111;border:1px solid #333;border-radius:8px;padding:24px;max-width:480px;margin:0 auto}.mp-lobby h3{margin:0 0 16px;font-size:1.1rem;color:#e8eaf0}.mp-lobby h4{margin:16px 0 8px;font-size:.9rem;color:#aaa}.room-code{font-size:1.3rem;letter-spacing:3px;color:#f5c518;margin-bottom:6px}.room-info{color:#aaa;font-size:.85rem;margin-bottom:16px}.player-slots{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.player-slot{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#1a1a1a;border-radius:6px;border:1px solid #333}.player-slot.self{border-color:#f5c518}.player-slot.empty{opacity:.4}.player-slot.disconnected .slot-name{opacity:.5}.slot-status{font-size:.75rem;color:#e74c3c;margin-left:auto}.slot-icon{font-size:1.1rem}.slot-name{font-size:.9rem;color:#e8eaf0}.waiting-actions,.lobby-actions{display:flex;gap:10px;flex-wrap:wrap}.lobby-config{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.lobby-config label{font-size:.8rem;color:#aaa;margin-bottom:2px}.option-row{display:flex;gap:8px}.option-btn{padding:6px 14px;background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#e8eaf0;cursor:pointer;font-size:.9rem}.option-btn.active{background:#f5c518;color:#000;border-color:#f5c518}.join-code-row{display:flex;gap:8px;margin-bottom:16px}.code-input{flex:1;padding:8px 12px;background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#e8eaf0;font-size:1rem;letter-spacing:2px;text-transform:uppercase}.public-rooms{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.public-room-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#1a1a1a;border:1px solid #333;border-radius:6px;font-size:.85rem;color:#aaa}.public-room-row .action-btn.small{padding:4px 12px;font-size:.8rem;margin-left:auto}.mp-error{color:#e74c3c;font-size:.85rem;margin-top:12px}.presidents-table{display:flex;flex-direction:column;gap:16px}.opponents-row{display:flex;gap:12px;flex-wrap:wrap}.opponent-slot{padding:8px 14px;background:#1a1a1a;border:1px solid #333;border-radius:6px;text-align:center;min-width:80px;transition:border-color .2s}.opponent-slot.active-turn{border-color:#f5c518}.opponent-name{font-size:.8rem;color:#aaa;margin-bottom:4px}.opponent-cards{font-size:1rem;color:#e8eaf0}.pile-area{text-align:center;padding:16px;background:#0d0d0d;border-radius:8px;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.pile-label{font-size:.8rem;color:#aaa}.pile-cards{display:flex;gap:-8px}.pile-empty{color:#555;font-size:.9rem}.my-hand{display:flex;flex-direction:column;gap:12px}.hand-actions{display:flex;gap:10px;margin-top:8px}.your-turn-badge{background:#f5c518;color:#000;font-size:.7rem;padding:2px 8px;border-radius:10px;font-weight:700;vertical-align:middle;margin-left:8px}.finish-order{display:flex;flex-direction:column;gap:8px}.finish-order.small{font-size:.85rem;color:#aaa;flex-direction:row;gap:4px}.finish-row{display:flex;align-items:center;gap:10px;padding:6px 0}.finish-row.self{color:#f5c518}.finish-place{font-size:1.2rem;width:24px}.finish-badge{margin-left:auto;font-size:.85rem;padding:2px 8px;background:#1a1a1a;border-radius:10px}.finish-badge.lose{color:#e74c3c}.castle-table{display:flex;flex-direction:column;gap:16px}.castle-center{display:flex;align-items:center;justify-content:center;gap:24px}.deck-info{font-size:.85rem;color:#aaa}.castle-opponent{padding:8px 14px;background:#1a1a1a;border:1px solid #333;border-radius:6px;min-width:100px;transition:border-color .2s}.castle-opponent.active-turn{border-color:#f5c518}.castle-opp-zones{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.8rem;color:#aaa}.opp-face-up{display:flex;gap:2px}.opp-face-up .card{width:28px;height:40px;font-size:.55rem}.my-zones{display:flex;flex-direction:column;gap:10px}.zone-label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:1px}.setup-instruction{color:#aaa;margin-bottom:12px;font-size:.9rem}.setup-status{display:flex;flex-direction:column;gap:6px;color:#aaa;font-size:.9rem}.ers-table{display:flex;flex-direction:column;gap:16px}.ers-center{display:flex;justify-content:center;align-items:center;padding:12px}.ers-pile{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.ers-pile .card{width:64px;height:90px;font-size:.9rem}.challenge-banner{background:#2c1a00;border:1px solid #f5c518;border-radius:6px;padding:8px 14px;color:#f5c518;font-size:.9rem;text-align:center}.ers-controls{display:flex;flex-direction:column;gap:14px;align-items:center}.my-pile-info{font-size:.9rem;color:#aaa}.ers-buttons{display:flex;gap:16px;align-items:center}.ers-flip-btn{min-width:100px}.ers-slap-btn{min-width:120px;font-size:1.2rem;padding:12px 24px;background:#c0392b;border-color:#c0392b;color:#fff;-webkit-user-select:none;user-select:none;transition:transform .05s}.ers-slap-btn:active{transform:scale(.95);background:#a93226}.slap-hint{font-size:.75rem;color:#666;text-align:center}.game-desc{color:#aaa;font-size:.9rem;margin-bottom:16px;line-height:1.5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #000000;--bg2: #171a22;--bg3: #1e2230;--accent: #f0c040;--accent2: #e85d3a;--green: #2ecc71;--red: #e74c3c;--text: #e8eaf0;--text2: #8890a8;--border: #2a2f3e;--radius: 12px}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif;min-height:100vh}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}input[type=number]{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 10px;font:inherit;width:80px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:56px;background:var(--bg2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;gap:12px}.header-left{display:flex;align-items:center;gap:16px;overflow:hidden}.logo-btn{font-size:1.2rem;font-weight:700;color:var(--accent);white-space:nowrap}.game-nav{display:flex;gap:4px;overflow-x:auto}.game-nav button{padding:6px 12px;border-radius:6px;font-size:.85rem;white-space:nowrap;color:var(--text2);transition:background .15s,color .15s}.game-nav button:hover{background:var(--bg3);color:var(--text)}.game-nav button.active{background:var(--accent);color:#000;font-weight:600}.token-display{display:flex;align-items:center;gap:8px;white-space:nowrap}.token-icon{font-size:1.1rem}.token-amount{font-weight:700;font-size:1.05rem;color:var(--accent)}.reload-btn{background:var(--green);color:#fff;padding:6px 12px;border-radius:6px;font-size:.8rem;font-weight:600}.app-main{max-width:1000px;margin:0 auto;padding:32px 20px}.lobby h1{font-size:2rem;margin-bottom:8px;color:var(--accent)}.lobby-subtitle{color:var(--text2);margin-bottom:32px}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.game-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:28px 20px;text-align:center;transition:border-color .2s,transform .15s}.game-card:hover{border-color:var(--accent);transform:translateY(-2px)}.game-card-emoji{font-size:3rem;margin-bottom:10px}.game-card-label{font-size:1.2rem;font-weight:700;margin-bottom:8px}.game-card-desc{font-size:.85rem;color:var(--text2);line-height:1.4}.game-container{display:flex;flex-direction:column;align-items:center;gap:24px}.game-title{font-size:1.6rem;font-weight:700;color:var(--accent)}.game-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:100%}.result-banner{padding:12px 24px;border-radius:8px;font-size:1.1rem;font-weight:700;text-align:center}.result-win{background:#2ecc7126;color:var(--green);border:1px solid var(--green)}.result-lose{background:#e74c3c26;color:var(--red);border:1px solid var(--red)}.result-push{background:#f0c04026;color:var(--accent);border:1px solid var(--accent)}.bet-input{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bet-input label{color:var(--text2)}.quick-bets{display:flex;gap:6px;flex-wrap:wrap}.quick-bets button{background:var(--bg3);border:1px solid var(--border);padding:4px 10px;border-radius:6px;font-size:.8rem;transition:background .15s}.quick-bets button:hover{background:var(--bg)}.quick-bets button.active{background:var(--accent);color:#000;border-color:var(--accent)}.quick-bets button:disabled{opacity:.4;cursor:default}.action-btn{background:var(--accent);color:#000;font-weight:700;font-size:1rem;padding:12px 32px;border-radius:8px;transition:opacity .15s,transform .1s}.action-btn:hover:not(:disabled){opacity:.9;transform:scale(1.02)}.action-btn:disabled{opacity:.4;cursor:default}.action-btn.secondary{background:var(--bg3);color:var(--text);border:1px solid var(--border)}.action-btn.danger{background:var(--red);color:#fff}
