.lobby-page{max-width:440px;margin:0 auto;padding:2rem 0}.lobby-page h1{font-size:2rem;font-weight:700;margin-bottom:1.75rem;color:var(--text-primary);letter-spacing:-.02em}.lobby-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm)}.lobby-section:last-child{margin-bottom:0}.lobby-form{display:flex;flex-direction:column;gap:1rem}.lobby-section h2{font-size:.8rem;font-weight:600;margin:0;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.lobby-section .field{min-width:0}.lobby-section .field input{display:block;width:100%;padding:.65rem .9rem;font-size:1rem;box-sizing:border-box}.lobby-section .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:.75rem;min-width:0}.lobby-section .row-cell{min-width:0}.lobby-section .row-cell input{width:100%;padding:.65rem .9rem;font-size:1rem;text-align:center;box-sizing:border-box}.lobby-section button.primary{width:100%;margin-top:0;padding:.7rem 1.25rem;font-size:1rem;font-weight:600;background:var(--accent-green);border-radius:var(--radius-sm)}.lobby-section button.primary:hover{background:var(--accent-green-hover)}.room-view{max-width:440px;margin:0 auto;padding:2rem 0}.room-view h1{font-size:1.5rem;font-weight:700;margin-bottom:.5rem;color:var(--text-primary);letter-spacing:-.02em}.room-view .code{font-size:1.9rem;font-weight:700;letter-spacing:.25em;color:var(--text-primary);margin-bottom:1rem;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border-mid);border-radius:var(--radius-md);text-align:center;font-family:var(--font)}.room-view .meta{color:var(--text-secondary);margin-bottom:.5rem;font-size:.95rem}.room-view .hint{font-size:.9rem;color:var(--text-muted);margin-bottom:1.5rem}.room-view .actions{display:flex;gap:.6rem;flex-wrap:wrap}.room-view .actions .start-btn{background:var(--accent-green);padding:.6rem 1.2rem;font-weight:600}.room-view .actions .start-btn:hover{background:var(--accent-green-hover)}.room-view .actions .leave-btn{background:var(--accent-red);padding:.6rem 1.2rem}.room-view .actions .leave-btn:hover{background:var(--accent-red-hover)}.table-page{min-height:100vh;padding:1.25rem;background:linear-gradient(165deg,var(--bg-dark) 0%,var(--bg-mid) 45%,#0a2520 100%)}.table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:.5rem 0;max-width:920px;margin-left:auto;margin-right:auto}.table-header .phase{color:var(--text-secondary);font-size:.95rem;font-weight:500;letter-spacing:.02em}.table-header .leave-btn{background:var(--accent-red);padding:.45rem 1rem;font-size:.9rem;font-weight:500}.table-header .leave-btn:hover{background:var(--accent-red-hover)}.table-felt{max-width:920px;margin:0 auto 1.5rem;background:linear-gradient(155deg,var(--bg-felt-light) 0%,var(--bg-felt) 45%,#083828 100%);border-radius:var(--radius-xl);padding:2rem;box-shadow:inset 0 2px 6px #ffffff0f,var(--shadow-lg),0 0 0 1px #00000026;border:1px solid var(--border-subtle)}.pot-area{text-align:center;margin-bottom:1.5rem}.pot-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem}.pot-amount{font-size:1.85rem;font-weight:700;color:var(--text-primary);text-shadow:0 1px 3px rgba(0,0,0,.35);letter-spacing:-.02em}.community-cards{display:flex;justify-content:center;gap:0;flex-wrap:wrap;min-height:100px;margin-top:.85rem}.community-cards .card-image{margin-right:-24px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.community-cards .card-image:last-child{margin-right:0}.player-seat .cards-wrap .card-image{margin-right:-28px;filter:drop-shadow(0 1px 4px rgba(0,0,0,.3))}.player-seat .cards-wrap .card-image:last-child{margin-right:0}.players-row{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:2rem}.player-seat{padding:1.1rem 1.35rem;background:var(--bg-card);border-radius:var(--radius-md);min-width:200px;border:2px solid transparent;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.player-seat.is-you{border-color:#c9b87a99;background:var(--bg-card-hover);box-shadow:0 0 0 1px #c9b87a26}.player-seat.is-acting{border-color:#238f61b3;background:#0a2d2399;box-shadow:0 0 14px #238f6133}.player-seat.folded{opacity:.6}.player-seat .name-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap}.player-seat .name{font-weight:600;font-size:1rem;color:var(--text-primary)}.player-seat .name .you-badge{font-size:.7rem;font-weight:500;color:var(--accent-gold);margin-left:.4rem}.player-seat .blind-markers{display:flex;gap:.3rem}.player-seat .blind-chip{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 6px;border-radius:50%;font-size:.68rem;font-weight:700;letter-spacing:.02em;border:2px solid rgba(0,0,0,.3);box-shadow:inset 0 1px #ffffff26,0 2px 4px #00000040}.player-seat .blind-chip.sb{background:linear-gradient(145deg,#3d6b8a,#2a4d66);color:#e0e8ee}.player-seat .blind-chip.bb{background:linear-gradient(145deg,#8a5a3d,#664428);color:#f0e6dc}.player-seat .chips{font-size:1.05rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.player-seat .bet{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.player-seat .status{font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.player-seat .cards-wrap{display:flex;margin-top:.5rem}.player-seat .hand-description{font-size:.85rem;color:var(--accent-gold);margin-top:.4rem;font-weight:500}.player-seat .buy-in-count{font-size:.78rem;color:var(--text-muted);margin-bottom:.25rem}.result-panel{max-width:920px;margin:0 auto 1rem;padding:1.35rem;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.result-panel .winners{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.result-panel .hand-type{color:var(--text-secondary);font-size:.9rem;margin-bottom:.5rem;text-transform:capitalize}.result-panel .bonus{font-size:.85rem;color:var(--text-secondary);margin-bottom:.4rem}.result-panel .rebuy-prompt{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border-mid)}.result-panel .rebuy-prompt p{margin:0 0 .6rem;color:var(--text-secondary);font-size:.95rem}.result-panel .rebuy-prompt.spectator p{margin-bottom:.5rem}.result-panel .rebuy-buttons{display:flex;gap:.55rem;flex-wrap:wrap}.result-panel .rebuy-yes-btn{padding:.55rem 1.1rem;font-size:.95rem;font-weight:500;background:var(--accent-green);border-radius:var(--radius-sm)}.result-panel .rebuy-yes-btn:hover{background:var(--accent-green-hover)}.result-panel .rebuy-no-btn{padding:.55rem 1.1rem;font-size:.95rem;font-weight:500;background:var(--accent-red);border-radius:var(--radius-sm)}.result-panel .rebuy-no-btn:hover{background:var(--accent-red-hover)}.result-panel .rebuy-requested{font-size:.85rem;color:var(--text-secondary);margin:.25rem 0 0}.result-panel .waiting-host{margin-top:.85rem;color:var(--text-muted);font-size:.9rem}.result-panel .next-btn{margin-top:.85rem;padding:.65rem 1.35rem;font-size:1rem;font-weight:600;background:var(--accent-green);border-radius:var(--radius-sm)}.result-panel .next-btn:hover:not(:disabled){background:var(--accent-green-hover)}.result-panel .next-btn:disabled{opacity:.5;cursor:not-allowed}.result-panel .plo-vote-section{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border-mid)}.result-panel .plo-vote-label{margin:0 0 .4rem;color:var(--text-secondary);font-size:.9rem}.result-panel .plo-vote-tally{font-size:.85rem;color:var(--text-muted);margin-bottom:.55rem}.result-panel .plo-vote-buttons{display:flex;gap:.55rem}.result-panel .plo-vote-btn,.result-panel .plo-vote-yes-btn,.result-panel .plo-vote-no-btn{padding:.45rem 1rem;font-size:.9rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer}.result-panel .plo-vote-btn{background:#2a5a6a}.result-panel .plo-vote-btn:hover{background:#346a7a}.result-panel .plo-vote-yes-btn{background:var(--accent-green)}.result-panel .plo-vote-yes-btn:hover{background:var(--accent-green-hover)}.result-panel .plo-vote-no-btn{background:var(--accent-red)}.result-panel .plo-vote-no-btn:hover{background:var(--accent-red-hover)}.actions-bar{max-width:920px;margin:1.5rem auto 0;padding:1.15rem;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-subtle);text-align:center;box-shadow:var(--shadow-sm)}.actions-bar .timer{margin-bottom:.55rem;color:var(--text-secondary);font-size:.9rem;font-weight:500}.actions-bar .buttons{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center;align-items:center}.raise-slider-wrap{display:flex;flex-direction:column;align-items:center;gap:.3rem;min-width:140px}.raise-slider-label{font-size:.9rem;color:var(--text-secondary);font-weight:500}.raise-slider{width:100%;max-width:200px;height:8px;border-radius:4px;background:#00000059;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.raise-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent-green);cursor:pointer;border:2px solid rgba(255,255,255,.25);box-shadow:0 1px 4px #0000004d}.raise-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent-green);cursor:pointer;border:2px solid rgba(255,255,255,.25);box-shadow:0 1px 4px #0000004d}.actions-bar button{padding:.55rem 1rem;border-radius:var(--radius-sm);font-weight:500}.actions-bar button.fold-btn{background:var(--accent-red)}.actions-bar button.fold-btn:hover{background:var(--accent-red-hover)}.actions-bar button.check-call-btn{background:var(--accent-green)}.actions-bar button.check-call-btn:hover{background:var(--accent-green-hover)}.actions-bar button.raise-btn{background:#1a5c44}.actions-bar button.raise-btn:hover{background:var(--accent-green-hover)}.actions-bar button.allin-btn{background:#4a3a6a}.actions-bar button.allin-btn:hover{background:#5a4a7a}.actions-bar button.fieldgoal-btn{background:#3d4a6a}.actions-bar button.fieldgoal-btn:hover:not(:disabled){background:#4d5a7a}.actions-bar button.fieldgoal-btn-disabled,.actions-bar button.fieldgoal-btn:disabled{opacity:.45;filter:grayscale(.5)}.card-image{display:inline-block}.fieldgoal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.fieldgoal-modal{background:linear-gradient(180deg,var(--bg-mid) 0%,var(--bg-dark) 100%);border:1px solid var(--border-mid);border-radius:var(--radius-lg);padding:2rem;min-width:320px;box-shadow:var(--shadow-lg)}.fieldgoal-title{margin:0 0 1.5rem;font-size:1.4rem;font-weight:600;color:var(--text-primary);text-align:center}.fieldgoal-instruction{margin:0 0 1rem;color:var(--text-secondary);font-size:.95rem;text-align:center}.fieldgoal-power-bar{position:relative;width:48px;height:200px;margin:0 auto;background:#0006;border-radius:8px;overflow:hidden}.fieldgoal-power-zone{position:absolute;left:0;right:0;bottom:40%;top:40%;background:#28b46440;border-radius:4px}.fieldgoal-power-needle{position:absolute;left:-4px;right:-4px;height:12px;background:#e8e0d5;border-radius:2px;transform:translateY(50%);box-shadow:0 0 0 2px #0000004d}.fieldgoal-direction-wrap{position:relative;height:48px;width:280px;margin:0 auto;background:#0006;border-radius:8px;overflow:hidden}.fieldgoal-direction-zone{position:absolute;left:42.5%;right:42.5%;top:0;bottom:0;background:#28b46440;border-radius:4px}.fieldgoal-direction-needle{position:absolute;top:-4px;bottom:-4px;width:12px;background:#e8e0d5;border-radius:2px;transform:translate(-50%);box-shadow:0 0 0 2px #0000004d}.fieldgoal-result{text-align:center;padding:1rem 0}.fieldgoal-uprights{position:relative;width:200px;height:80px;margin:0 auto 1rem}.fieldgoal-crossbar{position:absolute;top:0;left:50%;transform:translate(-50%);width:120px;height:6px;background:#c0b8a8;border-radius:2px}.fieldgoal-post{position:absolute;top:0;width:6px;height:80px;background:#c0b8a8;border-radius:2px}.fieldgoal-post-left{left:50%;transform:translate(-60px)}.fieldgoal-post-right{left:50%;transform:translate(54px)}.fieldgoal-success{color:#50b070;font-size:1.25rem;font-weight:600}.fieldgoal-miss{color:var(--accent-red);font-size:1.25rem;font-weight:600}.fieldgoal-btn{margin-top:1rem;padding:.55rem 1.1rem;background:var(--accent-green);color:var(--text-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:500}.fieldgoal-btn:disabled{opacity:.5;cursor:not-allowed}.fieldgoal-btn-used{opacity:.5;filter:grayscale(.5)}:root{--bg-dark: #0a1f18;--bg-mid: #0d2e24;--bg-felt: #0c4a35;--bg-felt-light: #0e5c42;--bg-card: rgba(0, 0, 0, .28);--bg-card-hover: rgba(0, 0, 0, .38);--border-subtle: rgba(255, 255, 255, .06);--border-mid: rgba(255, 255, 255, .1);--text-primary: #f2efe8;--text-secondary: #b5c4b8;--text-muted: #7d8f84;--accent-green: #1d7a52;--accent-green-hover: #238f61;--accent-red: #b85c4c;--accent-red-hover: #c96d5c;--accent-gold: #c9b87a;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 4px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--font: "Outfit", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-weight:400;background:var(--bg-dark);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}button{font-family:var(--font);font-weight:500;cursor:pointer;border:none;border-radius:var(--radius-sm);padding:.5rem 1rem;background:var(--accent-green);color:var(--text-primary);transition:background .15s ease,opacity .15s ease}button:hover{background:var(--accent-green-hover)}button:disabled{opacity:.5;cursor:not-allowed}input{font-family:var(--font);padding:.6rem .85rem;border:1px solid var(--border-mid);border-radius:var(--radius-sm);background:var(--bg-mid);color:var(--text-primary);transition:border-color .15s ease,box-shadow .15s ease}input:hover{border-color:#ffffff26}input:focus{outline:none;border-color:var(--accent-green);box-shadow:0 0 0 2px #1d7a5240}input::placeholder{color:var(--text-muted)}input[type=number]{min-width:0}.app-shell{min-height:100vh;padding:1.25rem}.app-alert{padding:.85rem 1.1rem;margin-bottom:1rem;background:#b85c4c2e;border:1px solid rgba(184,92,76,.35);border-radius:var(--radius-md);display:flex;justify-content:space-between;align-items:center;font-size:.95rem}.app-alert button{background:#ffffff1f;padding:.35rem .75rem;font-size:.875rem}.app-alert button:hover{background:#fff3}.app-connecting{color:var(--text-secondary);font-size:.95rem;padding:.5rem 0}
