.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:999;overflow:hidden}.confetti-particle{position:absolute;top:-20px;border-radius:2px;animation:confetti-fall 3s ease-in forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.big-win-callout{position:fixed;top:30%;left:50%;transform:translate(-50%,-50%);z-index:998;font-size:48px;font-weight:900;color:#e6b432;text-shadow:0 0 30px rgba(230,180,50,.6),0 4px 8px rgba(0,0,0,.5);animation:big-win-pulse .6s ease-in-out 3 alternate;pointer-events:none;white-space:nowrap}@keyframes big-win-pulse{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(1.15)}}:root{--bg: #15181d;--panel: #232730;--panel-2: #1b1e25;--border: #343944;--text: #e6e6e6;--muted: #9aa0a6;--accent: #4ca586;--accent-hi: #5fbf9c;--danger: #e0464d}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text)}code,pre{font-family:SF Mono,Menlo,Consolas,monospace;font-size:13px}.landing{max-width:680px;margin:60px auto;padding:32px;background:var(--panel);border-radius:10px;border:1px solid var(--border)}.landing h1{margin:0 0 4px;font-size:28px}.landing h2{margin:0 0 20px;font-size:16px;color:var(--muted);font-weight:400}.landing code{background:var(--panel-2);padding:2px 6px;border-radius:3px;color:var(--accent-hi)}.landing pre{background:var(--panel-2);padding:14px;border-radius:6px;overflow-x:auto;white-space:pre;color:#b9d9c4;border:1px solid var(--border)}.landing .hint{color:var(--muted);font-size:13px}.app,.board{max-width:1200px;margin:0 auto;padding:20px}.board-missing{padding:40px;text-align:center;color:var(--danger)}.top-bar{display:flex;gap:24px;align-items:center;padding:12px 18px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:18px;font-size:14px}.top-bar .turn-active{margin-left:auto;color:var(--accent-hi);font-weight:700}.top-bar .turn-waiting{margin-left:auto;color:var(--muted);font-style:italic}.suit-void{color:var(--danger)}.table-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(360px,2fr) minmax(220px,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:".    top     ." "left center  right" ".    bottom  .";gap:14px;margin:16px 0;min-height:580px}.seat{display:flex;flex-direction:column}.seat-top{grid-area:top}.seat-right{grid-area:right}.seat-bottom{grid-area:bottom}.seat-left{grid-area:left}.seat-center{grid-area:center;display:grid;grid-template-columns:minmax(40px,1fr) minmax(160px,2fr) minmax(40px,1fr);grid-template-rows:auto 1fr auto;grid-template-areas:".       disc-top    ." "disc-l  core        disc-r" ".       disc-bottom .";background:#0f1115;border:1px dashed #30343c;border-radius:10px;padding:10px;gap:6px;min-height:360px}.center-core{grid-area:core;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.discard-river{display:flex;flex-wrap:wrap;gap:2px;padding:4px;background:#ffffff05;border-radius:6px;align-content:flex-start;min-height:32px;min-width:40px;overflow:hidden}.discard-river-top{grid-area:disc-top;justify-content:center;max-height:74px}.discard-river-bottom{grid-area:disc-bottom;justify-content:center;max-height:74px}.discard-river-left{grid-area:disc-l;flex-direction:row;max-width:120px;align-items:flex-start}.discard-river-right{grid-area:disc-r;flex-direction:row;max-width:120px;align-items:flex-start}.discard-river-empty{font-size:11px;color:#555;padding:4px}.center-phase{font-size:13px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}.center-wall{font-size:14px;color:var(--text)}.center-last-discard{margin-top:18px;display:flex;flex-direction:column;align-items:center;gap:6px}.center-label{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.08em}.center-from{font-size:11px;color:var(--muted)}.opponent{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;height:100%}.opponent-hu{border-color:#d9a84a;background:linear-gradient(180deg,#2b2518 0%,var(--panel) 80%)}.opponent-active{box-shadow:0 0 0 2px #5a8cff,0 0 12px #5a8cff4d;border-color:#5a8cff}.countdown{font-family:monospace;font-size:14px;font-weight:700;padding:2px 8px;border-radius:10px;background:#5a8cff33;color:#9fb9ff}.countdown-urgent{background:#e0464d4d;color:var(--danger);animation:countdown-pulse .5s ease-in-out infinite alternate}@keyframes countdown-pulse{0%{opacity:1}to{opacity:.5}}.your-area-active{box-shadow:0 0 0 2px var(--accent),0 0 12px #4ca5864d;border-radius:8px}.swap-board{display:flex;flex-direction:column;align-items:center;gap:16px}.swap-waiting{text-align:center;padding:32px;font-size:16px;color:var(--muted)}.swap-received{margin-top:16px;display:flex;gap:8px;justify-content:center;align-items:center;font-size:14px}.swap-picker{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px}.swap-instructions{font-size:15px;color:var(--muted)}.swap-instructions b{color:var(--text)}.swap-hand{justify-content:center}.swap-tile-wrap{position:relative;cursor:pointer;border-radius:6px;transition:transform .1s}.swap-tile-wrap:hover{transform:translateY(-3px)}.swap-tile-selected{transform:translateY(-8px);filter:brightness(1.15)}.swap-tile-selected .tile{box-shadow:0 0 0 3px #5a8cff,0 4px 12px #5a8cff80!important;border-color:#5a8cff!important}.swap-check-badge{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#5a8cff;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000004d;z-index:1}.swap-result-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;margin:8px 0;background:#5a8cff1a;border:1px solid rgba(90,140,255,.3);border-radius:8px;font-size:14px}.swap-result-label{white-space:nowrap}.swap-result-tiles{display:flex;gap:4px}.swap-submit-btn{padding:10px 28px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.swap-submit-btn:disabled{opacity:.4;cursor:not-allowed}.swap-submit-btn:not(:disabled):hover{filter:brightness(1.1)}.opponent-header{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);margin-bottom:6px}.opponent-header b{color:var(--text);font-size:13px}.opponent-tag{font-size:11px}.opponent-hu-tag{color:#d9a84a}.opponent-left,.opponent-right{font-size:11px}.melds-row{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.your-melds-row{margin:10px 0}.meld-group{display:inline-flex;flex-direction:column;align-items:center;padding:4px 6px 3px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:5px}.meld-tiles{display:flex;gap:0}.meld-label{font-size:10px;color:var(--muted);margin-top:2px;letter-spacing:.05em}.meld-gang-an{border-color:#e0b54a59;background:#e0b54a14}.meld-gang-ming,.meld-gang-jia{border-color:#c97b3f59;background:#c97b3f14}.meld-peng{border-color:#5abfc259;background:#5abfc214}.your-area{background:var(--panel);border:2px solid var(--accent);border-radius:10px;padding:14px 18px;height:100%}.your-header{display:flex;gap:20px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px;font-size:14px}.your-melds{font-size:12px;color:var(--muted)}.your-discards{margin-top:10px}.your-discards .label{font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:4px}.hand{display:flex;flex-wrap:wrap;padding:4px 0;min-height:60px;align-items:center}.hand.empty{color:var(--muted);font-style:italic}.hand-gap{display:inline-block;width:18px;height:1px;flex-shrink:0}.tile{display:inline-block;background:#f5f1e8;border:1.5px solid #8a8272;border-radius:5px;margin:3px;text-align:center;font-weight:700;-webkit-user-select:none;user-select:none;transition:transform .12s ease-out,box-shadow .12s ease-out,border-color .12s ease-out;box-shadow:0 1px #5a5242,0 2px 4px #0000004d}.hand.hand-active .tile:hover,.tile.tile-interactive:hover{transform:translateY(-5px);border-color:var(--accent-hi);box-shadow:0 1px #5a5242,0 7px 12px #00000080,0 0 0 1px var(--accent-hi)}.tile-hi{border-color:var(--accent-hi);box-shadow:0 0 0 2px var(--accent-hi),0 2px 4px #0006}.tile-image{background:transparent;border:none;padding:0;overflow:hidden;box-shadow:none}.tile-back-text{background:#3a7d5c;border-color:#1a4534}.discards-strip{display:flex;flex-wrap:wrap;gap:0;align-items:center;min-height:30px;padding:2px 0}.discards-empty{color:#555;font-size:11px;font-style:italic}.action-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin-top:14px;min-height:60px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.action-panel.waiting{color:var(--muted);font-style:italic}.action-hint{color:var(--muted);font-size:13px;margin-left:8px}.action-button{padding:10px 16px;background:var(--accent);color:#0a1510;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:700;transition:background .1s}.action-button:hover{background:var(--accent-hi)}.action-button:active{transform:translateY(1px)}.action-huDianpao,.action-zimoHu{background:#e0b54a;color:#2a1f00}.action-huDianpao:hover,.action-zimoHu:hover{background:#f0c858}.action-gangMing,.action-gangAn,.action-gangAdd{background:#c97b3f;color:#1a0f03}.action-gangMing:hover,.action-gangAn:hover,.action-gangAdd:hover{background:#db8b4a}.action-peng{background:#5abfc2;color:#001518}.action-peng:hover{background:#6dd3d6}.action-pass{background:#3c4050;color:var(--muted)}.action-pass:hover{background:#4a4e60}.settlement{max-width:600px;margin:40px auto;padding:32px;background:var(--panel);border:1px solid var(--border);border-radius:10px;text-align:center}.settlement h2{margin-top:0;font-size:24px}.my-result{font-size:22px;margin:20px 0 30px}.my-result .emoji{font-size:32px;margin-right:8px}.chips-pos{color:#5fbf9c;font-weight:700}.chips-neg{color:#e0464d;font-weight:700}.pig-tag{color:#d9a84a;font-size:13px}.hu-tag{font-size:13px}.winners{background:var(--panel-2);border-radius:6px;padding:12px 16px;margin:20px 0;text-align:left}.winners h3{margin-top:0}.winner-row{font-size:13px;margin:4px 0}.all-chips{background:var(--panel-2);border-radius:6px;padding:12px 16px;margin:20px 0;text-align:left}.all-chips h3{margin-top:0}.chip-row{display:flex;gap:10px;font-family:monospace;font-size:14px;padding:3px 0}.settlement-meta{color:var(--muted);font-size:11px;margin-top:20px}.back-bar{max-width:1200px;margin:10px auto 0;padding:0 20px;display:flex;align-items:center;gap:14px;font-size:13px;color:var(--muted)}.back-bar button{background:var(--panel);color:var(--text);border:1px solid var(--border);padding:6px 12px;border-radius:4px;cursor:pointer;font-size:13px}.back-bar button:hover{border-color:var(--accent)}.back-bar-meta code{background:var(--panel);padding:1px 6px;border-radius:3px;color:var(--accent-hi)}.lobby-page{max-width:1100px;margin:0 auto;padding:32px 20px}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.lobby-header h1{margin:0 0 4px;font-size:28px}.lobby-header h2{margin:0;font-size:15px;color:var(--muted);font-weight:400}.lobby-create-btn{padding:12px 24px;background:var(--accent);color:#0a1510;border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:700}.lobby-create-btn:hover{background:var(--accent-hi)}.lobby-error{padding:12px 16px;background:#e0464d1f;border:1px solid var(--danger);border-radius:6px;color:var(--danger);margin-bottom:16px;font-size:13px}.lobby-empty{padding:40px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:8px}.room-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(440px,1fr))}.room-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.room-card.room-running{border-color:var(--accent)}.room-card.room-finished{opacity:.75}.room-card.room-error{border-color:var(--danger)}.room-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.room-match-id{font-family:monospace;font-weight:700;color:var(--text)}.room-status-pill{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--panel-2);color:var(--muted);letter-spacing:.04em}.room-status-pill.status-running{background:#4ca5862e;color:var(--accent-hi)}.room-status-pill.status-waiting{background:#e0b54a26;color:#e0b54a}.room-status-pill.status-finished{background:#9aa0a626;color:var(--muted)}.room-status-pill.status-error{background:#e0464d26;color:var(--danger)}.room-phase-pill{font-size:11px;color:var(--muted);font-family:monospace}.room-round-pill{font-size:11px;padding:2px 8px;border-radius:10px;background:#5a8cff2e;color:#9fb9ff;font-family:monospace;font-weight:600}.room-invite-code{font-family:monospace;font-size:14px;font-weight:700;padding:2px 10px;background:#e6b43233;color:#e6b432;border-radius:6px;letter-spacing:.1em;cursor:pointer;-webkit-user-select:all;user-select:all}.join-by-code{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.join-code-input{width:120px;padding:6px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:monospace;font-size:16px;letter-spacing:.15em;text-transform:uppercase;text-align:center}.join-code-btn{padding:6px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer}.join-code-btn:disabled{opacity:.4}.join-code-error{color:var(--danger);font-size:12px}.room-game-pill{font-size:11px;padding:2px 10px;border-radius:10px;background:#8cc8962e;color:#b9d9c4;font-family:monospace;font-weight:600}.game-picker{margin-bottom:16px;padding:10px 14px;background:#ffffff08;border-radius:6px}.game-picker label{display:flex;align-items:center;gap:10px;font-size:14px}.game-picker select{padding:4px 10px;font-size:14px}.player-count-picker{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:14px}.player-count-picker select{padding:4px 10px;font-size:14px}.holdem-board{max-width:1100px;margin:0 auto;padding:16px}.holdem-top{display:flex;gap:20px;padding:10px 14px;background:var(--panel-2);border-radius:6px;margin-bottom:16px;font-size:14px}.holdem-community{padding:14px;background:#4ca58614;border-radius:8px;margin-bottom:16px}.section-label{font-size:11px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.card-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.poker-card{width:44px;height:60px;border-radius:6px;background:#f4f0e4;color:#1a1a1a;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-family:Georgia,serif;border:1px solid #d5ceb8}.poker-card-red{color:#c1272d}.pc-rank{font-size:22px;line-height:1}.pc-suit{font-size:22px;line-height:1;margin-top:2px}.poker-table{position:relative;width:100%;max-width:800px;margin:0 auto 16px;min-height:420px}.poker-felt{position:absolute;left:15%;right:15%;top:18%;bottom:18%;background:radial-gradient(ellipse at center,#1a4d2e,#0f3320 70%,#0a2618);border:3px solid #2a6b42;border-radius:50%;box-shadow:0 4px 30px #00000080,inset 0 0 40px #0000004d;display:flex;align-items:center;justify-content:center;z-index:0}.poker-center{display:flex;flex-direction:column;align-items:center;gap:8px}.poker-pot{font-size:14px;color:#d4af37;font-family:monospace;font-weight:700}.poker-community{justify-content:center}.poker-seat-positioned{position:absolute;width:180px;z-index:1;left:calc(50% + 44%*sin(var(--seat-angle)) - 90px);top:calc(50% - (42%*cos(var(--seat-angle))) - 35px)}.holdem-seat{padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:6px}.holdem-seat-you{border-color:var(--accent);background:#4ca5861a}.holdem-seat-folded{opacity:.5}.holdem-seat-busted{opacity:.3;filter:grayscale(1)}.holdem-seat-action{box-shadow:0 0 0 2px #9fb9ff}.hand-strength{font-size:11px;color:#e6b432;font-weight:600;text-align:center;margin-top:2px;text-transform:uppercase;letter-spacing:.05em}.holdem-seat-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.tag{font-size:10px;padding:1px 6px;background:#ffffff14;border-radius:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.tag-warn{background:#e6b43240;color:#e6b432}.tag-danger{background:#e0464d40;color:var(--danger)}.holdem-seat-stats{font-size:12px;font-family:monospace;color:var(--muted);margin-bottom:4px}.holdem-to-call{padding:10px 14px;background:#e6b43226;color:#e6b432;border-radius:6px;font-size:14px;margin-bottom:12px}.holdem-actions{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.action-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.action-btn{padding:6px 12px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;font-family:monospace;cursor:pointer;font-size:13px}.action-btn:hover{background:var(--accent);border-color:var(--accent-hi);color:#fff}.custom-bet{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px dashed var(--border);font-size:13px}.custom-bet input{width:100px;padding:4px 8px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-family:monospace;border-radius:4px}.custom-bet button{padding:4px 12px;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer}.holdem-seat-hud{font-size:10px;color:#d4af37;font-family:monospace;opacity:.8}.holdem-session-scores{display:flex;flex-wrap:wrap;gap:8px;padding:4px 12px;font-size:12px;font-family:monospace}.session-chip{padding:2px 6px;border-radius:4px;background:#ffffff0d}.session-chip-you{background:#4ca58626;border:1px solid rgba(76,165,134,.3)}.preflop-cat{opacity:.7;font-size:11px!important}.quick-bets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-top:8px;border-top:1px dashed var(--border)}.quick-bet-btn{padding:5px 10px;background:#5a8cff26;color:#8bb4ff;border:1px solid rgba(90,140,255,.3);border-radius:4px;cursor:pointer;font-size:12px;font-family:monospace}.quick-bet-btn:hover{background:#5a8cff4d}.muted{color:var(--muted);font-style:italic}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px 40px;width:100%;max-width:400px}.auth-card h1{text-align:center;margin:0 0 20px;font-size:24px}.auth-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:1px solid var(--border)}.auth-tabs button{flex:1;padding:8px;background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;font-size:14px;cursor:pointer}.auth-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.auth-form input{padding:8px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px}.auth-error{color:var(--danger);font-size:13px;padding:6px 10px;background:#e0464d1a;border-radius:4px}.auth-submit{padding:10px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer}.auth-submit:hover{filter:brightness(1.1)}.auth-submit:disabled{opacity:.5}.auth-verify-hint{margin-top:12px;padding:10px 14px;background:#e6b43226;border:1px solid rgba(230,180,50,.3);border-radius:6px;font-size:13px;color:#e6b432}.auth-verify-hint a{color:#5a8cff;text-decoration:underline;margin-left:6px}.verify-banner{padding:10px 16px;background:#e6b4321f;border:1px solid rgba(230,180,50,.25);border-radius:6px;font-size:13px;color:#e6b432;margin-bottom:12px}.verify-banner a{color:#5a8cff;margin-left:8px}.resend-verify-btn{margin-left:12px;padding:4px 12px;border:1px solid rgba(230,180,50,.4);border-radius:4px;background:#e6b43226;color:#e6b432;font-size:12px;cursor:pointer}.resend-verify-btn:hover{background:#e6b43240}.auth-guest{margin-top:16px;text-align:center}.auth-guest-btn{background:transparent;color:var(--muted);border:1px dashed var(--border);border-radius:6px;padding:8px 16px;font-size:13px;cursor:pointer}.auth-guest-btn:hover{color:var(--text);border-color:var(--muted)}.lobby-header-right{display:flex;align-items:center;gap:12px}.user-bar{display:flex;align-items:center;gap:10px;font-size:13px}.user-name{font-weight:600;color:var(--text)}.user-coins{padding:2px 10px;background:#e6b43233;color:#e6b432;border-radius:10px;font-family:monospace;font-weight:600}.daily-claim-btn{padding:4px 12px;background:var(--accent);color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer}.daily-claim-btn:disabled{opacity:.4}.logout-btn{padding:4px 10px;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer}.guest-label{font-size:12px;color:var(--muted);font-style:italic}.lobby-lb-btn{padding:6px 14px;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:6px;font-size:13px;cursor:pointer}.lobby-lb-btn:hover{color:var(--text);border-color:var(--muted)}.leaderboard-page{max-width:680px;margin:0 auto;padding:20px}.leaderboard-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:16px}.leaderboard-table th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.leaderboard-table td{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.04)}.lb-name{font-weight:600}.lb-coins{font-family:monospace;color:#e6b432;font-weight:600}.profile-page{max-width:700px;margin:0 auto;padding:20px}.profile-stats{display:flex;gap:12px;margin:16px 0}.stat-card{flex:1;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;text-align:center}.stat-value{font-size:24px;font-weight:700;font-family:monospace}.stat-label{font-size:11px;color:var(--muted);margin-top:4px;text-transform:uppercase}.ai-review-section{margin:16px 0;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.ai-review-btn{padding:8px 16px;background:#5a8cff;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer}.ai-review-btn:disabled{opacity:.5;cursor:not-allowed}.ai-review-btn:hover:not(:disabled){background:#4a7ce6}.review-error{margin-top:8px;padding:6px 10px;background:#e6464626;color:#e66;border-radius:4px;font-size:13px}.review-results{margin-top:12px;display:flex;flex-direction:column;gap:8px}.review-header{font-size:12px;color:var(--muted);margin-bottom:4px}.review-sample{padding:8px 12px;border-radius:6px;border:1px solid var(--border);background:#0003}.review-sample.match{border-left:3px solid #4ca586}.review-sample.diff{border-left:3px solid #e6b432}.review-sample.err{border-left:3px solid #e66}.review-turn{font-size:11px;color:var(--muted);margin-bottom:4px}.review-line{font-size:13px;margin:2px 0}.review-line code{background:#0000004d;padding:1px 6px;border-radius:3px}.review-reasoning{font-size:12px;color:var(--muted);margin-top:6px;font-style:italic}.agent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.agent-card{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.agent-card-title{font-size:16px;font-weight:700;margin-bottom:8px;color:#d4af37}.agent-card-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}.agent-card-stats b{color:var(--text)}.agent-card-skills{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px}.skill-pill{font-size:10px;padding:2px 6px;background:#5a8cff26;color:#8bb4ff;border-radius:3px;font-family:monospace}.exp-controls{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.exp-controls select,.exp-controls input{padding:4px 8px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;font-size:13px}.exp-new{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:12px}.exp-new input,.exp-new textarea{padding:6px 8px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;font-size:13px}.exp-new button{align-self:flex-start;padding:6px 14px;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer}.exp-list{display:flex;flex-direction:column;gap:8px}.exp-card{padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.exp-card.exp-promoted{opacity:.6;border-left:3px solid #4ca586}.exp-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.exp-tag{font-size:10px;padding:1px 5px;background:#c8a03c26;color:#d4af37;border-radius:3px;font-family:monospace}.exp-tag-promoted{background:#4ca58633;color:#4ca586}.exp-text{font-size:13px;line-height:1.6;margin-bottom:6px}.exp-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted);margin-bottom:6px}.exp-actions{display:flex;gap:6px}.exp-actions button{padding:3px 8px;font-size:11px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:3px;cursor:pointer}.exp-actions .btn-danger{color:#e66;border-color:#e646464d}.exp-edit{display:flex;flex-direction:column;gap:6px}.exp-edit input,.exp-edit textarea{padding:6px 8px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;font-size:13px}.exp-edit-actions{display:flex;gap:6px}.exp-edit-actions button{padding:4px 10px;background:var(--accent);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px}.skill-list{display:flex;flex-direction:column;gap:12px}.skill-card{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.skill-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.skill-header button{padding:3px 10px;font-size:12px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:3px;cursor:pointer}.skill-preview{font-size:11px;color:var(--muted);white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:hidden}.skill-editor{width:100%;font-family:monospace;font-size:12px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:8px;resize:vertical}.decision-features{font-size:10px;color:var(--muted);font-family:monospace;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-controls{display:flex;gap:8px;margin-bottom:12px}.replay-controls button{padding:6px 14px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;cursor:pointer;font-size:13px}.replay-controls button:hover:not(:disabled){background:var(--accent);color:#fff}.replay-controls button:disabled{opacity:.4;cursor:not-allowed}.replay-event{margin-bottom:12px}.replay-block{padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.replay-start{border-left:3px solid #d4af37}.replay-phase{border-left:3px solid #5a8cff;font-size:14px}.replay-llm{border-left:3px solid #4ca586}.replay-end{border-left:3px solid #e66}.replay-llm-header{font-weight:700;margin-bottom:6px}.replay-reasoning{margin-top:6px;color:#a0c8b0;font-style:italic;font-size:13px}.replay-reads{margin-top:6px;font-size:12px}.replay-read-item{margin-left:16px;color:var(--muted)}.replay-fallback{color:#e66;margin-top:4px}.replay-usage{font-size:11px;color:var(--muted);margin-top:4px;font-family:monospace}.replay-timeline{display:flex;flex-wrap:wrap;gap:3px;margin-top:12px;padding:8px;background:var(--panel);border-radius:6px}.replay-dot{width:10px;height:10px;border-radius:50%;cursor:pointer;opacity:.5;transition:all .15s}.replay-dot:hover{opacity:1;transform:scale(1.3)}.replay-dot.dot-active{opacity:1;transform:scale(1.5);box-shadow:0 0 6px currentColor}.dot-llm{background:#4ca586}.dot-phase{background:#5a8cff}.dot-end{background:#e66}.dot-result{background:#d4af37}.dot-discuss{background:#c090e0}.dot-other{background:#666}.profile-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:12px}.profile-tabs button{flex:1;padding:8px;background:transparent;color:var(--muted);border:none;border-bottom:2px solid transparent;cursor:pointer}.profile-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.profile-list{display:flex;flex-direction:column;gap:2px}.profile-row{display:flex;align-items:center;gap:12px;padding:8px 12px;font-size:13px;font-family:monospace;background:#ffffff05;border-radius:4px}.profile-row-game{min-width:120px;color:var(--muted)}.profile-row-delta{flex:1;color:var(--muted)}.profile-row-type{min-width:100px;color:var(--muted)}.profile-row-memo{flex:1;color:var(--muted)}.profile-row-date{color:#666;font-size:11px}.user-name-link{cursor:pointer;text-decoration:underline;text-decoration-color:#fff3}.user-name-link:hover{text-decoration-color:var(--accent)}.avatar{border-radius:50%;border:2px solid var(--border)}.coin-chart{margin-bottom:16px;padding:10px 14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.sparkline-svg{display:block}.achievements{margin-bottom:16px}.badge-row{display:flex;flex-wrap:wrap;gap:8px}.badge{padding:4px 12px;background:#e6b43226;border:1px solid rgba(230,180,50,.3);color:#e6b432;border-radius:16px;font-size:12px;font-weight:600}.badge-locked{opacity:.3}.locale-btn{padding:4px 10px;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:4px;font-size:12px;font-weight:700;cursor:pointer}.locale-btn:hover{color:var(--text);border-color:var(--muted)}.friends-page{max-width:600px;margin:0 auto;padding:20px}.friends-add{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.friends-add input{flex:1;min-width:180px;padding:8px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px}.friends-add button{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer}.friends-add button:disabled{opacity:.4}.friends-msg{font-size:12px;color:var(--accent)}.friends-section{margin-bottom:20px}.friends-section h3{font-size:13px;color:var(--muted);margin:0 0 8px;text-transform:uppercase}.friend-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff05;border-radius:6px;margin-bottom:4px;font-size:14px}.rules-help-btn{width:28px;height:28px;border-radius:50%;background:#ffffff14;color:var(--muted);border:1px solid var(--border);font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}.rules-help-btn:hover{color:var(--text);background:#ffffff1f}.rules-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c16cc;display:flex;align-items:center;justify-content:center;z-index:200}.rules-card{background:#161b2a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px 24px;max-width:640px;width:calc(100% - 40px);max-height:80vh;overflow-y:auto}.rules-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.rules-header h2{margin:0;font-size:18px}.rules-lang-btn{padding:2px 8px;background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:4px;margin-right:4px;font-size:12px;cursor:pointer}.rules-lang-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.rules-close-btn{padding:2px 8px;background:transparent;color:var(--muted);border:none;font-size:20px;cursor:pointer;margin-left:8px}.rules-text{white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.6;color:var(--text);margin:0}.chat-toggle{position:fixed;bottom:20px;right:20px;z-index:100;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:20px;cursor:pointer;box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;justify-content:center}.chat-badge{position:absolute;top:-4px;right:-4px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.chat-panel{position:fixed;bottom:20px;right:20px;z-index:101;width:320px;max-height:420px;background:var(--panel);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 8px 30px #0006}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border)}.chat-close{background:transparent;border:none;color:var(--muted);font-size:20px;cursor:pointer}.chat-messages{flex:1;overflow-y:auto;padding:8px 12px;max-height:300px;display:flex;flex-direction:column;gap:6px}.chat-msg{display:flex;gap:6px;align-items:flex-start}.chat-msg-mine .chat-msg-name{color:var(--accent)}.chat-msg-body{display:flex;flex-direction:column}.chat-msg-name{font-size:11px;font-weight:600;color:var(--muted)}.chat-msg-text{font-size:13px;color:var(--text)}.chat-input-row{display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--border)}.chat-input{flex:1;padding:6px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px}.chat-send{padding:6px 12px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.avalon-board{max-width:1100px;margin:0 auto;padding:16px}.avalon-top{display:flex;gap:20px;padding:10px 14px;background:var(--panel-2);border-radius:6px;margin-bottom:16px;font-size:14px}.avalon-role-card{padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px}.avalon-good{color:#5fbf9c}.avalon-evil{color:#e0464d}.avalon-night-vision{margin-top:8px;font-size:13px}.avalon-nv-entry{margin-right:10px;padding:2px 8px;background:#ffffff0d;border-radius:4px}.avalon-missions{margin-bottom:16px}.mission-row{display:flex;gap:10px}.mission-cell{flex:1;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:6px;text-align:center;font-family:monospace}.mission-cell.mission-pass{background:#5fbf9c26;border-color:#5fbf9c}.mission-cell.mission-fail{background:#e0464d26;border-color:var(--danger)}.mission-cell.mission-current{background:#5a8cff1f;border-color:#5a8cff}.mission-num{font-size:18px;font-weight:700}.mission-size{font-size:11px;color:var(--muted)}.mission-res{font-size:12px;margin-top:4px}.avalon-proposal{padding:12px 16px;background:var(--panel);border:1px dashed var(--accent);border-radius:8px;margin-bottom:16px;font-size:14px}.pid-tag{display:inline-block;padding:2px 8px;margin-right:6px;background:#ffffff0d;border-radius:10px;font-family:monospace;font-size:12px}.avalon-actions{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.avalon-propose .propose-grid{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.pid-btn{padding:8px 16px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:4px;font-family:monospace;cursor:pointer;font-size:14px}.pid-btn-on{background:var(--accent);border-color:var(--accent-hi);color:#fff}.vote-matrix{margin-bottom:16px;overflow-x:auto}.vote-table{width:100%;border-collapse:collapse;font-size:12px;font-family:monospace}.vote-table th{padding:4px 8px;text-align:center;border-bottom:1px solid var(--border);color:var(--muted);font-size:10px;text-transform:uppercase}.vote-table td{padding:4px 8px;text-align:center;border-bottom:1px solid rgba(255,255,255,.04)}.vote-team{text-align:left!important;font-size:11px;color:var(--muted)}.vote-row-rejected{opacity:.5}.avalon-discussion{padding:12px 16px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px}.statement-row{padding:6px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.04);display:flex;align-items:flex-start;gap:6px}.statement-row:last-child{border-bottom:none}.statement-row b{color:var(--text);white-space:nowrap}.statement-on-team{background:#4ca58614;border-left:2px solid rgba(76,165,134,.4);padding-left:8px;margin-left:-8px}.team-badge{font-size:10px;background:#4ca58633;color:#4ca586;padding:1px 5px;border-radius:3px;white-space:nowrap}.pid-tag-team{background:#4ca58626;border-color:#4ca5864d;display:inline-flex;align-items:center;gap:3px}.rejection-urgent{color:#e66!important;font-weight:700;animation:pulse-red 1s ease-in-out infinite}.rejection-warning{padding:8px 14px;background:#e6464626;border:1px solid rgba(230,70,70,.3);border-radius:6px;color:#e66;font-weight:600;font-size:13px;text-align:center;margin-bottom:8px}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.6}}.avalon-night-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#0a1628,#000 80%);display:flex;align-items:center;justify-content:center;z-index:100;animation:night-fade-in .8s ease}@keyframes night-fade-in{0%{opacity:0}to{opacity:1}}.night-card{text-align:center;max-width:400px;padding:40px 32px;animation:night-card-rise .6s ease .3s both}@keyframes night-card-rise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.night-moon{font-size:48px;margin-bottom:12px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.night-card h2{font-size:28px;color:#c0c8e0;margin-bottom:24px;letter-spacing:4px}.night-role-reveal{margin:20px 0}.night-role-badge{display:inline-block;padding:14px 32px;border-radius:12px;font-size:24px;font-weight:700;letter-spacing:2px;animation:role-reveal .8s ease .8s both}@keyframes role-reveal{0%{opacity:0;transform:scale(.5) rotateY(90deg)}to{opacity:1;transform:scale(1) rotateY(0)}}.night-role-badge.good{background:#4ca58633;border:2px solid rgba(76,165,134,.5);color:#4ca586}.night-role-badge.evil{background:#c83c3c33;border:2px solid rgba(200,60,60,.5);color:#e06060}.night-alignment{margin-top:8px;font-size:14px;color:var(--muted)}.night-instructions{margin:16px 0;padding:12px;background:#ffffff0a;border-radius:8px;font-size:13px;color:#a0a8c0;line-height:1.6}.night-vision-reveal{margin:20px 0;text-align:left}.night-vision-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:4px 0;background:#ffffff08;border-radius:6px;animation:night-card-rise .4s ease both}.nv-name{font-weight:600}.nv-hint{font-size:12px;padding:2px 8px;background:#c8a03c26;color:#d4af37;border-radius:4px;cursor:help}.night-start-btn{margin-top:24px;padding:12px 32px;background:#4ca58633;border:1px solid rgba(76,165,134,.4);color:#4ca586;font-size:16px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s}.night-start-btn:hover{background:#4ca58659;transform:scale(1.05)}.avalon-assassin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#1a0808,#0a0000 80%);display:flex;align-items:center;justify-content:center;z-index:100;animation:night-fade-in .8s ease}.assassin-card{text-align:center;max-width:500px;padding:40px 32px}.assassin-title{font-size:32px;font-weight:800;color:#e06060;letter-spacing:3px;margin-bottom:12px;animation:pulse-red 2s ease-in-out infinite}.assassin-subtitle{color:#a08080;font-size:14px;margin-bottom:24px;line-height:1.6}.assassin-targets{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:24px}.assassin-target-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;background:#ffffff0a;border:2px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);cursor:pointer;transition:all .2s;min-width:72px}.assassin-target-btn:hover{background:#c83c3c1a;border-color:#c83c3c4d}.assassin-target-btn.selected{background:#c83c3c33;border-color:#e06060;box-shadow:0 0 16px #c83c3c4d}.assassin-kill-btn{padding:12px 32px;background:#c83c3c33;border:1px solid rgba(200,60,60,.4);color:#e06060;font-size:16px;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s}.assassin-kill-btn:disabled{opacity:.4;cursor:not-allowed}.assassin-kill-btn:hover:not(:disabled){background:#c83c3c59;transform:scale(1.05)}.assassin-waiting-pulse{width:60px;height:60px;margin:24px auto;border-radius:50%;background:#c83c3c4d;animation:assassin-pulse 1.5s ease-in-out infinite}@keyframes assassin-pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.4);opacity:.1}}.avalon-discuss-input{display:flex;flex-direction:column;gap:8px}.statement-input{width:100%;padding:8px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px;resize:vertical;font-family:inherit}.ddz-board{max-width:900px;margin:0 auto;padding:16px}.ddz-top{display:flex;gap:20px;padding:10px 14px;background:var(--panel-2);border-radius:6px;margin-bottom:16px;font-size:14px}.ddz-table{background:radial-gradient(ellipse at center,#1a3a2a,#0f2a1e 70%,#0a1f15);border:2px solid #2a5a3a;border-radius:24px;padding:20px;margin-bottom:16px}.ddz-opponents{display:flex;gap:12px;margin-bottom:16px;justify-content:center}.ddz-opp{flex:1;padding:10px 14px;background:var(--panel);border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;gap:8px;font-size:13px}.ddz-opp-landlord{border-color:#d4af37;background:#d4af3714}.ddz-last-play{padding:12px 16px;background:#4ca58614;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ddz-kitty{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:13px}.ddz-hand{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;margin-bottom:16px}.ddz-card-wrap{cursor:pointer;transition:transform .1s}.ddz-card-wrap:hover{transform:translateY(-4px)}.ddz-card-selected{transform:translateY(-12px)}.ddz-card-selected .ddz-card{box-shadow:0 0 0 2px #5a8cff}.ddz-card{width:42px;height:58px;background:#f4f0e4;border:1px solid #d5ceb8;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-family:Georgia,serif;color:#1a1a1a;font-size:14px}.ddz-card-red{color:#c1272d}.ddz-card-joker-s{background:#1a1a1a;color:#5a8cff;border-color:#333}.ddz-card-joker-b{background:#1a1a1a;color:#e0464d;border-color:#333}.ddz-actions{padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.ddz-opp-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.ddz-crown{font-size:18px}.ddz-opp-cards{display:flex;align-items:center;gap:1px}.ddz-card-back{width:18px;height:26px;background:linear-gradient(135deg,#2a4494,#1a2d5a);border:1px solid #3a5aaa;border-radius:2px;margin-left:-8px}.ddz-card-back:first-child{margin-left:0}.ddz-card-count{margin-left:8px;font-size:12px;font-family:monospace;color:var(--muted)}.ddz-you-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:14px}.room-series-scores{font-size:12px;font-family:monospace;color:var(--muted);margin-bottom:8px;padding:4px 8px;background:#ffffff08;border-radius:4px}.room-series-scores .label{color:var(--muted);margin-right:6px}.series-length-picker{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;padding:10px 14px;background:#ffffff08;border-radius:6px}.series-length-picker label{display:flex;align-items:center;gap:8px;font-size:14px}.series-length-picker select{padding:4px 8px;font-size:14px}.series-length-hint{font-size:11px;color:var(--muted)}.swap-toggle{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:14px;cursor:pointer}.swap-toggle input[type=checkbox]{width:16px;height:16px}.round-badge{padding:2px 10px;background:#5a8cff2e;border-radius:10px;color:#9fb9ff;font-family:monospace;font-size:12px}.round-badge .dealer-hint{color:#b9d9c4}.series-scores-strip{padding:6px 12px;margin:4px 8px 0;background:#ffffff08;border-radius:4px;font-size:12px;font-family:monospace;color:var(--muted)}.series-scores-strip .label{color:var(--muted);margin-right:8px}.series-badge{font-size:13px;color:var(--muted);font-weight:400}.round-history{margin-top:12px;padding:10px 14px;background:#ffffff08;border-radius:6px}.round-history h3{margin:0 0 8px;font-size:13px;color:var(--muted)}.round-history-row{font-family:monospace;font-size:12px;padding:3px 0;color:var(--muted)}.round-history-row b{color:var(--text);margin-right:8px}.round-settlement-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c16d9;display:flex;align-items:center;justify-content:center;z-index:100}.round-settlement-card{background:#161b2a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:24px 32px;max-width:620px;width:calc(100% - 48px);box-shadow:0 20px 60px #00000080}.round-settlement-card h2{margin:0 0 16px;font-size:20px}.round-settlement-card h3{margin:16px 0 6px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.rs-my-row{padding:10px 14px;background:#ffffff08;border-radius:8px;font-size:15px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.rs-emoji{font-size:22px;margin-right:4px}.rs-total{color:var(--muted)}.rs-winners{margin-top:12px}.rs-winner-row{font-family:monospace;font-size:12px;padding:4px 0;color:var(--muted)}.rs-winner-row b{color:var(--text)}.rs-tags{margin-left:8px;color:#9fb9ff}.rs-all-chips{margin-top:4px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.rs-all-chips h3{width:100%;margin-bottom:2px}.rs-chip-pill{font-family:monospace;font-size:13px;padding:3px 10px;background:#ffffff0a;border-radius:12px}.rs-actions{margin-top:20px;display:flex;justify-content:center}.rs-next-btn{padding:10px 28px;background:var(--accent, #5a8cff);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer}.rs-next-btn:hover{filter:brightness(1.1)}.rs-waiting{font-size:13px;color:var(--muted);text-align:center}.rs-pending{font-family:monospace;color:#9fb9ff;margin-left:6px}.tile-back-row{display:flex;align-items:center;gap:1px;margin:4px 0}.tile-back-row .tile{flex-shrink:0;margin-left:-4px}.tile-back-row .tile:first-child{margin-left:0}.tile-back-count{margin-left:6px;font-size:11px;color:var(--muted);font-family:monospace}.room-seats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.seat-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:14px;font-size:12px;color:var(--muted)}.seat-pill b{color:var(--text);font-size:12px}.seat-pill-human{border-color:var(--accent)}.seat-pill-llm{border-color:#e0b54a}.seat-pill-name{color:#cfd2d7}.seat-pill-skill{font-size:10px;font-family:monospace;color:#e0b54a}.room-join-row{display:flex;gap:8px;flex-wrap:wrap}.room-join-btn{padding:8px 16px;background:var(--accent);color:#0a1510;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:700}.room-join-btn:hover{background:var(--accent-hi)}.room-gameover{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;font-family:monospace}.room-gameover .label{color:#666;text-transform:uppercase;letter-spacing:.05em;margin-right:6px}.room-error{margin-top:8px;padding:6px 10px;background:#e0464d1a;color:var(--danger);border-radius:4px;font-size:11px}.create-room-page{max-width:900px;margin:0 auto;padding:32px 20px}.create-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.create-header h1{margin:0;font-size:24px}.cancel-btn{background:var(--panel);color:var(--muted);border:1px solid var(--border);padding:8px 14px;border-radius:4px;cursor:pointer;font-size:13px}.cancel-btn:hover{color:var(--text);border-color:var(--accent)}.seat-editors{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:24px}.seat-editor{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px}.seat-editor-human{border-color:var(--accent)}.seat-editor-llm{border-color:#e0b54a}.seat-editor-header{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.seat-editor-pid{font-size:18px;color:var(--text)}.seat-type-select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);padding:6px 10px;border-radius:4px;font-size:13px;cursor:pointer}.seat-editor-body{display:flex;flex-direction:column;gap:10px}.seat-editor-field{display:flex;flex-direction:column;gap:4px}.seat-editor-field span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.seat-editor-field input,.seat-editor-field select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);padding:8px 10px;border-radius:4px;font-size:13px}.seat-editor-field input:focus,.seat-editor-field select:focus{outline:none;border-color:var(--accent)}.seat-editor-skill-desc{margin-top:10px;padding:8px 10px;background:var(--panel-2);border-radius:4px;font-size:11px;color:var(--muted);line-height:1.5;border-left:2px solid #e0b54a}.create-error{padding:12px 16px;background:#e0464d1f;border:1px solid var(--danger);border-radius:6px;color:var(--danger);margin-bottom:16px;font-size:13px}.create-actions{display:flex;justify-content:flex-end}.create-confirm-btn{padding:12px 28px;background:var(--accent);color:#0a1510;border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:700}.create-confirm-btn:hover:not(:disabled){background:var(--accent-hi)}.create-confirm-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1024px){.app,.board{padding:10px}.top-bar{gap:10px;flex-wrap:wrap;font-size:12px}.lobby-header{flex-direction:column;gap:10px}.lobby-header-right{flex-wrap:wrap;gap:8px}.table-grid{grid-template-columns:1fr 2fr 1fr;min-height:400px;gap:8px}.seat-center{padding:8px;gap:4px}}@media (max-width: 768px){.app,.board{padding:6px}.back-bar{font-size:12px;padding:6px 10px}.top-bar{padding:6px 10px;gap:6px;font-size:11px}.landing{padding:16px;margin:20px auto}.auth-card{padding:20px}.lobby-header h1{font-size:20px}.user-bar{font-size:11px;gap:6px}.join-by-code{flex-wrap:wrap}.room-card-header{flex-wrap:wrap;gap:4px}.seat-editors{gap:8px}.seat-editor{padding:8px}.table-grid{display:flex;flex-direction:column;gap:6px;min-height:auto}.seat-top,.seat-left,.seat-right{order:0}.seat-center{order:1}.seat-bottom{order:2}.tile{font-size:10px!important}.hand{gap:1px}.hand-gap{width:6px}.discards-strip .tile,.discard-river .tile{width:18px!important;height:24px!important}.melds-row{gap:4px}.opponent{padding:6px 8px}.opponent-header{font-size:11px;gap:4px}.tile-back-row .tile{width:10px!important;height:14px!important}.discard-river{max-height:50px;max-width:100%;overflow-x:auto}.center-core{gap:4px}.center-phase{font-size:10px}.action-panel{padding:8px}.action-panel button{padding:6px 10px;font-size:12px}.swap-picker{padding:10px}.swap-hand .tile{width:36px!important;height:48px!important}.poker-table{min-height:300px}.poker-felt{top:5%;right:5%;bottom:5%;left:5%}.poker-seat-positioned{position:relative!important;left:auto!important;top:auto!important;width:100%!important;margin-bottom:6px}.poker-table{display:flex;flex-direction:column}.poker-card{width:36px;height:50px;font-size:12px}.ddz-table{padding:10px;border-radius:16px}.ddz-opponents{flex-direction:column;gap:6px}.ddz-card{width:34px;height:48px;font-size:12px}.ddz-hand{gap:0}.ddz-card-wrap{margin-left:-6px}.ddz-card-wrap:first-child{margin-left:0}.avalon-top{flex-wrap:wrap;gap:6px;font-size:12px}.mission-row{gap:4px}.mission-cell{padding:6px;font-size:11px}.vote-table{font-size:10px}.vote-table th,.vote-table td{padding:2px 4px}.chat-panel{left:10px;right:10px;width:auto;bottom:70px}.chat-toggle{bottom:12px;right:12px;width:38px;height:38px;font-size:16px}.round-settlement-card{padding:16px 20px}.rs-all-chips{gap:6px}.profile-stats{flex-wrap:wrap}.stat-card{min-width:80px}.profile-row{font-size:11px;gap:6px}.night-card,.assassin-card{padding:24px 16px}.night-card h2{font-size:22px}.night-role-badge{font-size:18px;padding:10px 20px}.assassin-title{font-size:24px}.assassin-target-btn{min-width:60px;padding:8px 10px}.quick-bets{gap:4px}.quick-bet-btn{font-size:11px;padding:4px 8px}.holdem-session-scores{font-size:11px;gap:4px}}
