:root{--felt: #17643f;--felt-dark: #0e4a2e;--bg: #10151b;--panel: #1a222c;--panel-light: #232d3a;--border: #2f3b4a;--text: #e8edf3;--muted: #8fa0b3;--accent: #f0b429;--accent-dark: #c99114;--danger: #d9534f;--success: #4caf7d;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-light);color:var(--text);padding:.5rem .9rem;border-radius:var(--radius)}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent-dark);color:#1a1a1a;font-weight:600}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}input,select{font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .6rem;width:100%}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--panel)}.topbar .brand{font-weight:700;letter-spacing:.02em;color:var(--accent);text-decoration:none}.topbar .spacer{flex:1}.avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;background:var(--panel-light)}.container{width:min(1100px,100%);margin:0 auto;padding:1.25rem}.lobby-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1.25rem;align-items:start}@media (max-width: 860px){.lobby-grid{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.card+.card{margin-top:1rem}.card h2,.card h3{margin-top:0}.field{margin-bottom:.75rem}.field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.25rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.table-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.table-list li{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-light)}.muted{color:var(--muted);font-size:.85rem}.felt{position:relative;background:radial-gradient(ellipse at center,var(--felt) 0%,var(--felt-dark) 100%);border:10px solid #3d2b1a;border-radius:180px/120px;aspect-ratio:16 / 10;max-width:900px;margin:0 auto}.seat{position:absolute;width:132px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;font-size:.8rem}.seat-plate{width:100%;background:#0c1218e0;border:1px solid var(--border);border-radius:var(--radius);padding:.3rem .45rem;margin-top:-.45rem}.seat.acting .seat-plate{border-color:var(--accent);box-shadow:0 0 0 2px #f0b42959}.seat.folded{opacity:.45}.seat.empty{background:#0c121873;border:1px dashed var(--border);border-radius:var(--radius);padding:.4rem .5rem}.seat .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat .stack{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700;cursor:pointer;user-select:none;-webkit-user-select:none}.seat .badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.cards{display:flex;gap:4px;justify-content:center}.playing-card{--card-width: 44px;width:var(--card-width);height:calc(var(--card-width) * 1.4);border-radius:calc(var(--card-width) * .1);background:#f7f7f5;color:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--card-width) * .04);font-weight:700;font-size:calc(var(--card-width) * .46);line-height:1;border:1px solid #cfcfcf;box-shadow:0 2px 4px #00000059}.playing-card>span:last-child{font-size:calc(var(--card-width) * .52)}.playing-card.red{color:#c0392b}.playing-card.back{background:repeating-linear-gradient(45deg,#2b4b7a,#2b4b7a 4px,#1d3557 4px,#1d3557 8px);border-color:#16283f}.playing-card.large{--card-width: 62px}.board{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);text-align:center}.pot{margin-top:.5rem;font-weight:700;color:var(--accent)}.action-bar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:1rem}.timer{height:4px;background:var(--panel-light);border-radius:2px;overflow:hidden;margin-top:.3rem}.timer-fill{height:100%;background:var(--accent);transition:width .25s linear}.chat{height:200px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;background:var(--bg);font-size:.85rem}.chat p{margin:0 0 .3rem}.chat .who{color:var(--accent);font-weight:600}.chat .log-said{color:var(--text)}.chat .log-action{font-weight:600;color:var(--muted)}.chat .log-action.bet,.chat .log-action.raise{color:#e8a33d}.chat .log-action.call{color:#7fb2e5}.chat .log-action.blind{color:#8a94a6}.chat .log-action.fold{color:#6f7787}.chat .log-result{font-weight:700;color:#58c47a;margin-top:.15rem}.chat .log-hand-start{margin-top:.5rem;padding-top:.35rem;border-top:1px solid var(--border);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.chat .log-hand-start:first-child{margin-top:0;padding-top:0;border-top:none}.ad-slot{border:1px dashed var(--border);border-radius:var(--radius);padding:1.25rem .75rem;text-align:center;color:var(--muted);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;background:var(--panel)}.affiliates{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.affiliates a{display:block;padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;text-decoration:none;background:var(--panel-light);font-size:.85rem}.affiliates a:hover{border-color:var(--accent)}.banner{padding:.6rem .9rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem}.banner.warn{background:#d9534f26;border:1px solid var(--danger)}.banner.info{background:#4caf7d1f;border:1px solid var(--success)}table.stats{width:100%;border-collapse:collapse;font-size:.9rem}table.stats th,table.stats td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}table.stats td.num{text-align:right;font-variant-numeric:tabular-nums}.pos{color:var(--success)}.neg{color:var(--danger)}.playing-card.dimmed{opacity:.4;filter:grayscale(1);box-shadow:none}.landing{display:flex;justify-content:center;padding-top:3rem}.landing-card{max-width:460px;width:100%}.landing-title{margin:0 0 .5rem}.landing-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}button.big,.button.big{padding:.7rem 1.2rem;font-size:1rem}.button{display:inline-block;text-decoration:none;text-align:center;border:1px solid var(--border);background:var(--panel-light);color:var(--text);padding:.5rem .9rem;border-radius:var(--radius)}.button.primary{background:var(--accent);border-color:var(--accent-dark);color:#1a1a1a;font-weight:600}.code-input{text-transform:uppercase;letter-spacing:.25em;font-size:1.2rem;max-width:200px}.flex-1{flex:1;min-width:110px}.center{text-align:center}.small{font-size:.78rem}button.link{background:none;border:none;color:var(--accent);padding:0}button.small{padding:.3rem .6rem;font-size:.8rem}.table-sidebar{display:flex;flex-direction:column;gap:1rem}.table-sidebar .card+.card{margin-top:0}.qr-wrap{display:flex;justify-content:center;margin:.5rem 0 .75rem}.qr{width:180px;height:180px;border-radius:4px}.invite-code{text-align:center;font-size:1.6rem;font-weight:700;letter-spacing:.3em;text-indent:.3em;margin-bottom:.75rem}.invite-panel input{flex:1;min-width:0;font-size:.8rem}.score-table{width:100%;border-collapse:collapse;font-size:.85rem}.score-table th,.score-table td{padding:.35rem .4rem;text-align:left;border-bottom:1px solid var(--border)}.score-table th{color:var(--muted);font-weight:500;font-size:.75rem}.score-table .num{text-align:right;font-variant-numeric:tabular-nums}.score-table .is-self{font-weight:600}.score-table .has-left{opacity:.55}.score-table .up{color:var(--accent)}.score-table .down{color:var(--danger)}.host-header{justify-content:space-between}.host-header h3{margin:0}.kick-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.4rem}.kick-list li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-light)}.host-end{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border)}.checkbox-field{display:flex;gap:.6rem;align-items:flex-start;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-light);cursor:pointer;margin-top:.5rem}.checkbox-field input{margin-top:.15rem;width:auto;flex:none}.checkbox-field>span{display:flex;flex-direction:column;gap:.15rem}.peek{position:relative;cursor:pointer;border-radius:var(--radius);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.seat.peekable .peek{display:flex;flex-direction:column;align-items:center;width:100%}.seat.peekable .peek:active,.seat.peekable .peek.revealed .cards{filter:brightness(1.08)}.peek:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.peek .peek-hint{display:block;text-align:center;font-size:.6rem;letter-spacing:.04em;color:var(--muted);min-height:.9em;margin:.1rem 0 .4rem}.peek.revealed .peek-hint{color:var(--accent)}.peek:not(.revealed) .playing-card.back{box-shadow:0 0 0 1px var(--accent-dark) inset}.lang-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.lang-toggle button{border:none;border-radius:0;background:transparent;padding:.25rem .55rem;font-size:.75rem;color:var(--muted)}.lang-toggle button+button{border-left:1px solid var(--border)}.lang-toggle button.active{background:var(--panel-light);color:var(--text);font-weight:600}.landing-head{align-items:flex-start;flex-wrap:nowrap}.landing-head .landing-title{margin:0}.host-pause{display:flex;flex-direction:column;gap:.35rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-light);margin-top:.75rem}.host-pause button{align-self:flex-start}.sound-toggle{padding:.25rem .5rem;font-size:.95rem;line-height:1}@media (max-width: 620px){.felt{aspect-ratio:4 / 5;border-width:6px;border-radius:120px/150px}.seat{width:88px;font-size:.68rem}.seat-plate{padding:.2rem .3rem}.playing-card{--card-width: 30px}.playing-card.large{--card-width: 36px}.cards{gap:2px}.seat .badge{font-size:.55rem}}
