.lobby[data-v-10a00e6e]{display:flex;align-items:flex-start;justify-content:center;width:100%;height:100%;background:radial-gradient(ellipse at center,#1a1a2e,#0d0d1a);overflow-y:auto;padding:24px 0}.lobby-content[data-v-10a00e6e]{text-align:center;max-width:520px;width:90%;margin:auto}.title[data-v-10a00e6e]{font-size:36px;font-weight:900;background:linear-gradient(135deg,var(--accent),#ff8c00);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:8px}.subtitle[data-v-10a00e6e]{color:var(--text-secondary);font-size:14px;margin-bottom:32px}.form-section[data-v-10a00e6e]{text-align:left}.tabs[data-v-10a00e6e]{display:flex;gap:4px;margin-bottom:20px}.tab[data-v-10a00e6e]{flex:1;padding:10px;border:none;background:transparent;color:var(--text-secondary);font-size:15px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.tab.active[data-v-10a00e6e]{color:var(--accent);border-bottom-color:var(--accent)}.form[data-v-10a00e6e]{display:flex;flex-direction:column;gap:16px}.form-row[data-v-10a00e6e]{display:flex;align-items:center;gap:16px}.form-row>label[data-v-10a00e6e]{width:60px;text-align:right;color:#a0aec0;font-weight:500;flex-shrink:0}.pref-label[data-v-10a00e6e]{width:auto!important;text-align:left!important;color:#a0aec0!important;display:flex!important;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}.form-row .input[data-v-10a00e6e]{flex:1;min-height:44px;border-radius:8px}.custom-round-input[data-v-10a00e6e]{width:100px;flex:none!important}.option-group[data-v-10a00e6e]{display:flex;gap:8px;flex:1;flex-wrap:wrap}.option-btn[data-v-10a00e6e]{padding:8px 16px;min-height:44px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.option-btn[data-v-10a00e6e]:hover{border-color:var(--accent);color:var(--accent)}.option-btn.active[data-v-10a00e6e]{background:var(--accent);border-color:var(--accent);color:#fff}.status-container[data-v-10a00e6e]{min-height:40px;display:flex;flex-direction:column;align-items:center;gap:4px}.error-msg[data-v-10a00e6e]{color:var(--danger);font-size:14px}.connect-status[data-v-10a00e6e]{color:var(--text-muted);font-size:14px}.room-view[data-v-89a8aed1]{display:flex;flex-direction:column;height:100%;padding:16px 24px;background:radial-gradient(ellipse at center,#1a1a2e,#0d0d1a);overflow-y:auto}.config-panel[data-v-89a8aed1]{flex-shrink:0;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;margin-bottom:16px;overflow:hidden}.config-panel-header[data-v-89a8aed1]{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.config-panel-header[data-v-89a8aed1]:hover{background:#ffffff0f}.config-panel-title[data-v-89a8aed1]{font-size:14px;font-weight:600;color:var(--text-secondary)}.config-panel-arrow[data-v-89a8aed1]{font-size:11px;color:var(--text-muted);transition:transform .25s}.config-panel-arrow.expanded[data-v-89a8aed1]{transform:rotate(180deg)}.config-panel-body[data-v-89a8aed1]{padding:4px 16px 14px;display:flex;flex-direction:column;gap:12px;border-top:1px solid rgba(255,255,255,.06)}.cfg-row[data-v-89a8aed1]{display:flex;align-items:center;gap:12px}.cfg-label[data-v-89a8aed1]{width:42px;text-align:right;font-size:13px;color:#a0aec0;flex-shrink:0}.cfg-options[data-v-89a8aed1]{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.cfg-btn[data-v-89a8aed1]{padding:5px 12px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);border-radius:6px;font-size:13px;cursor:pointer;transition:all .15s}.cfg-btn[data-v-89a8aed1]:hover{border-color:var(--accent);color:var(--accent)}.cfg-btn.active[data-v-89a8aed1]{background:var(--accent);border-color:var(--accent);color:#fff}.cfg-input[data-v-89a8aed1]{width:70px;padding:4px 8px;border:1px solid var(--border);background:#ffffff0f;color:var(--text-primary, #fff);border-radius:6px;font-size:13px;outline:none}.cfg-input[data-v-89a8aed1]:focus{border-color:var(--accent)}.cfg-checkbox-label[data-v-89a8aed1]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer}.config-slide-enter-active[data-v-89a8aed1],.config-slide-leave-active[data-v-89a8aed1]{transition:max-height .28s ease,opacity .2s ease;max-height:300px;overflow:hidden}.config-slide-enter-from[data-v-89a8aed1],.config-slide-leave-to[data-v-89a8aed1]{max-height:0;opacity:0}.room-header[data-v-89a8aed1]{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.header-actions[data-v-89a8aed1]{display:flex;gap:8px}.room-info[data-v-89a8aed1]{display:flex;flex-direction:column;gap:4px}.room-id-wrapper[data-v-89a8aed1]{display:flex;align-items:center;gap:12px}.room-id[data-v-89a8aed1]{font-size:20px;font-weight:700;color:var(--accent)}.share-btn[data-v-89a8aed1]{background:#e945601a;color:var(--accent);border:1px solid rgba(233,69,96,.3);font-size:12px;padding:4px 10px;border-radius:12px}.share-btn[data-v-89a8aed1]:hover{background:#e9456033}.room-config[data-v-89a8aed1]{font-size:13px;color:var(--text-secondary)}.players-grid[data-v-89a8aed1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;flex:1;align-content:start;max-width:1000px;margin:0 auto;width:100%;padding:10px 0}.seat-card[data-v-89a8aed1]{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:120px;justify-content:center;transition:all .2s}.seat-card.clickable[data-v-89a8aed1]{cursor:pointer}.seat-card.clickable[data-v-89a8aed1]:hover{background:#ffffff1a;border-color:#fff6}.seat-card.mine[data-v-89a8aed1]{border-color:var(--accent);box-shadow:0 0 12px #e9456033}.seat-card.empty[data-v-89a8aed1]{border-style:dashed;opacity:.4;background:#ffffff0d;border:1px dashed rgba(255,255,255,.2);justify-content:center}.seat-avatar-wrapper[data-v-89a8aed1]{position:relative}.seat-avatar[data-v-89a8aed1]{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#ff8c00);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff}.voice-badge[data-v-89a8aed1]{position:absolute;bottom:-4px;right:-4px;font-size:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0009;color:#fff;z-index:10;border:1px solid var(--border)}.voice-speaking[data-v-89a8aed1]{background:#2ecc71;border-color:#27ae60;animation:pulse 1s infinite alternate}.voice-muted[data-v-89a8aed1]:after{content:"";position:absolute;top:50%;left:3px;right:3px;height:2px;background-color:#ff5252;transform:translateY(-50%) rotate(-45deg);border-radius:1px;z-index:1}.seat-name[data-v-89a8aed1]{font-size:15px;font-weight:600}.seat-tags[data-v-89a8aed1]{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.tag[data-v-89a8aed1]{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.tag-host[data-v-89a8aed1]{background:#e9456033;color:var(--accent)}.tag-ready[data-v-89a8aed1]{background:#2ecc7133;color:var(--success)}.tag-not-ready[data-v-89a8aed1]{background:#6c6c8033;color:var(--text-muted)}.tag-offline[data-v-89a8aed1]{background:#e74c3c33;color:var(--danger)}.seat-score[data-v-89a8aed1]{font-size:12px;color:var(--text-secondary)}.seat-empty-icon[data-v-89a8aed1]{font-size:32px;color:var(--text-muted)}.seat-empty-text[data-v-89a8aed1]{font-size:14px;color:#64748b}.spectators-area[data-v-89a8aed1]{margin-top:16px;padding:12px;background:#ffffff0d;border-radius:12px}.spectators-title[data-v-89a8aed1]{font-size:14px;color:#94a3b8;margin-bottom:8px}.spectators-list[data-v-89a8aed1]{display:flex;flex-wrap:wrap;gap:12px}.spectator-item[data-v-89a8aed1]{display:flex;flex-direction:column;align-items:center;gap:4px;width:50px}.spectator-item .seat-avatar.small[data-v-89a8aed1]{width:40px;height:40px;font-size:18px}.spectator-item .seat-name[data-v-89a8aed1]{font-size:12px;width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:center}.error-container[data-v-89a8aed1]{min-height:40px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.error-banner[data-v-89a8aed1]{background:#e74c3c26;border:1px solid rgba(231,76,60,.3);border-radius:8px;padding:8px 16px;color:var(--danger);font-size:14px;text-align:center}.room-actions[data-v-89a8aed1]{display:flex;justify-content:center;gap:12px;padding:20px 0}.player-seat[data-v-4cba78db]{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;transition:all .3s ease;min-width:auto}.player-seat.active .seat-avatar[data-v-4cba78db]{border:2px solid #ffeb3b;transform:scale(1.15);animation:avatarPulse-4cba78db 1.5s ease-in-out infinite;z-index:5}.player-seat.active .seat-name[data-v-4cba78db]{color:#ffeb3b}@keyframes avatarPulse-4cba78db{0%,to{box-shadow:0 0 10px #ffeb3b80}50%{box-shadow:0 0 20px #ffeb3be6,0 0 30px #ffeb3b66}}.avatar-wrapper[data-v-4cba78db]{position:relative;display:flex;justify-content:center}.faction-badge[data-v-4cba78db]{position:absolute;top:-6px;font-size:11px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:800;z-index:10;box-shadow:0 2px 4px #0006}.faction-badge.badge-left[data-v-4cba78db]{left:-8px;right:auto}.badge-right[data-v-4cba78db]{right:-8px;left:auto}.voice-badge[data-v-4cba78db]{position:absolute;bottom:-4px;right:-4px;font-size:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0009;color:#fff;z-index:10;border:1px solid var(--border)}.voice-speaking[data-v-4cba78db]{background:#2ecc71;border-color:#27ae60;animation:pulseSpeaking-4cba78db 1s infinite}.voice-muted[data-v-4cba78db]:after{content:"";position:absolute;top:50%;left:3px;right:3px;height:2px;background-color:#ff5252;transform:translateY(-50%) rotate(-45deg);border-radius:1px;z-index:1}@keyframes pulseSpeaking-4cba78db{0%{transform:scale(1);box-shadow:0 0 #2ecc71b3}70%{transform:scale(1.1);box-shadow:0 0 0 4px #2ecc7100}to{transform:scale(1);box-shadow:0 0 #2ecc7100}}.faction-badge.san[data-v-4cba78db]{background:var(--accent);color:#fff}.faction-badge.gu[data-v-4cba78db]{background:var(--success);color:#fff}.seat-avatar[data-v-4cba78db]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;border:2px solid transparent;box-sizing:border-box;transition:all .3s ease}.seat-info[data-v-4cba78db]{text-align:center}.seat-name[data-v-4cba78db]{font-size:12px;font-weight:600;white-space:nowrap;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9)}.seat-meta[data-v-4cba78db]{display:flex;gap:4px;justify-content:center;flex-wrap:nowrap;margin-top:0;text-shadow:0 1px 2px rgba(0,0,0,.8)}.order-tag[data-v-4cba78db],.score-tag[data-v-4cba78db],.card-count[data-v-4cba78db]{font-size:11px;padding:1px 6px;border-radius:3px;font-weight:600}.order-tag[data-v-4cba78db]{background:#3498db2e;color:var(--info, #3498db)}.score-tag[data-v-4cba78db]{background:#f1c40f2e;color:var(--warning)}.bid-action-tag[data-v-4cba78db]{font-size:10px;padding:1px 4px;border-radius:3px;margin-left:4px;font-weight:600}.bid-action-tag.pass[data-v-4cba78db]{background:#ffffff26;color:#ddd}.bid-action-tag.zha[data-v-4cba78db],.bid-action-tag.gen[data-v-4cba78db]{background:#2ecc7133;color:#2ecc71}.bid-action-tag.liang[data-v-4cba78db]{background:#e74c3c33;color:#e74c3c}.card-count[data-v-4cba78db]{font-size:11px;color:var(--text-secondary)}.position-tag[data-v-4cba78db]{font-size:10px;padding:1px 6px;border-radius:3px;background:#f1c40f33;color:var(--warning);font-weight:600}.suit-marks[data-v-4cba78db]{display:flex;gap:3px;justify-content:center;margin-top:2px}.suit-mark[data-v-4cba78db]{font-size:12px;line-height:1;color:#ffffff38;transition:color .2s ease,transform .2s ease}.suit-mark.active[data-v-4cba78db]{transform:scale(1.15)}.suit-mark.spade.active[data-v-4cba78db],.suit-mark.club.active[data-v-4cba78db]{color:#1a1a1a!important;text-shadow:0 0 2px rgba(255,255,255,.7)}.suit-mark.heart.active[data-v-4cba78db],.suit-mark.diamond.active[data-v-4cba78db]{color:#e74c3c!important;text-shadow:0 0 6px rgba(233,69,96,.5)}.suit-mark.active[data-v-4cba78db]{opacity:1;color:#e94560!important}.status-badge[data-v-4cba78db]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:14px;font-weight:700;z-index:10;white-space:nowrap}.left-badge[data-v-4cba78db]{background:#dc3545d9}.player-seat.offline .seat-avatar[data-v-4cba78db],.player-seat.left .seat-avatar[data-v-4cba78db]{filter:grayscale(1) opacity(.5)}.player-seat.offline .seat-info[data-v-4cba78db],.player-seat.left .seat-info[data-v-4cba78db]{opacity:.6}.spectate-btn[data-v-4cba78db]{position:absolute;top:60%;transform:translateY(-50%);background:var(--accent);color:#fff;border:none;padding:6px 4px;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 2px 4px #0000004d;transition:transform .2s,background .2s;z-index:20;writing-mode:vertical;text-orientation:mixed;line-height:1}.spectate-btn[data-v-4cba78db]:hover{transform:translateY(-50%) scale(1.05);background:#ff5277}.rank-badge[data-v-4cba78db]{position:absolute;top:50%;transform:translateY(-50%);background:linear-gradient(135deg,#f17c0f,#f36412);color:#fff;padding:6px 4px;border-radius:6px;font-size:13px;font-weight:900;white-space:nowrap;box-shadow:0 2px 4px #00000080;border:1px solid #ffd700;z-index:20;writing-mode:vertical-rl;text-orientation:mixed;line-height:1}.rank-left[data-v-4cba78db]{right:100%;margin-right:10px}.rank-right[data-v-4cba78db]{left:100%;margin-left:10px}.playing-card[data-v-b3819a74]{width:var(--card-w);height:var(--card-h);background-color:#fff!important;color:#1a1a1a!important;color-scheme:only light;border-radius:var(--card-radius);box-shadow:0 2px 8px #0000004d;position:relative;display:flex;flex-direction:column;justify-content:flex-start;padding:4px 5px;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0;cursor:default}.playing-card.clickable[data-v-b3819a74]{cursor:pointer}.playing-card.selected[data-v-b3819a74]{transform:translateY(-20px)}.playing-card.dimmed[data-v-b3819a74]{cursor:not-allowed}.playing-card.dimmed[data-v-b3819a74]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#00000080;border-radius:var(--card-radius);pointer-events:none}.playing-card.ghost[data-v-b3819a74]{box-shadow:0 1px 4px #00000040;border:none}.card-corner[data-v-b3819a74]{display:flex;flex-direction:column;align-items:flex-start;font-weight:800;line-height:1}.card-corner.top-left[data-v-b3819a74]{align-self:flex-start}.rank[data-v-b3819a74]{font-size:22px}.rank.rank-10[data-v-b3819a74]{letter-spacing:-2px;transform:scaleX(.85);transform-origin:left center;display:inline-block;margin-right:-4px}.suit-icon[data-v-b3819a74]{font-size:16px;margin-top:1px}.joker-text[data-v-b3819a74]{font-size:10px;writing-mode:vertical-rl;text-orientation:upright;font-weight:900;letter-spacing:-3px;margin-top:1px;margin-left:1px}.suit-heart[data-v-b3819a74],.suit-diamond[data-v-b3819a74]{color:#e74c3c!important}.suit-spade[data-v-b3819a74],.suit-club[data-v-b3819a74]{color:#1a2c3e!important}.suit-joker[data-v-b3819a74]{color:#9b59b6!important}.suit-joker.suit-big[data-v-b3819a74]{color:#e74c3c!important}.suit-joker.suit-small[data-v-b3819a74]{color:#668!important}.card-back[data-v-b3819a74]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e)!important;border-radius:var(--card-radius)}.back-pattern[data-v-b3819a74]{font-size:20px;font-weight:900;color:#e94560!important;text-shadow:0 0 10px #e94560}.bid-panel[data-v-bcb29985]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 20px;background:transparent}.bid-title[data-v-bcb29985]{font-size:14px;color:var(--text-secondary);font-weight:600}.bid-hint[data-v-bcb29985]{font-size:12px;color:var(--text-muted)}.bid-buttons[data-v-bcb29985]{display:flex;gap:12px}.bid-buttons .btn[data-v-bcb29985]{min-width:88px}.game-view[data-v-19ccccf9]{width:100%;height:100%;position:relative;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(ellipse at center,#1f2a44,#0f1626)}.table-bg[data-v-19ccccf9]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:0;pointer-events:none}.poker-table-svg[data-v-19ccccf9]{width:100%;height:100%;display:block;filter:drop-shadow(0 24px 40px rgba(0,0,0,.35))}.poker-table-text[data-v-19ccccf9]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.table-center-text[data-v-19ccccf9]{fill:#f4e8c899;stroke:#f4e8c899;stroke-width:2.6px;paint-order:stroke fill;stroke-linejoin:round}.table-center-text path[data-v-19ccccf9]{vector-effect:non-scaling-stroke}.hud-left[data-v-19ccccf9]{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px;z-index:20;pointer-events:none}.hud-badge[data-v-19ccccf9]{background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ffffffe6;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;width:fit-content;text-shadow:0 1px 2px rgba(0,0,0,.5)}.hud-multiplier[data-v-19ccccf9]{background:#e9456099;color:#fff;border:1px solid rgba(233,69,96,.8)}.hud-right[data-v-19ccccf9]{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;z-index:100}.menu-toggle-btn[data-v-19ccccf9]{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:13px;background:#0009;z-index:101}.menu-icon[data-v-19ccccf9]{font-size:16px}.dropdown-backdrop[data-v-19ccccf9]{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99}.dropdown-menu[data-v-19ccccf9]{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:6px 0;min-width:130px;box-shadow:0 4px 16px #0009;display:flex;flex-direction:column;z-index:101;animation:slideDown-19ccccf9 .2s ease-out}@keyframes slideDown-19ccccf9{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item[data-v-19ccccf9]{background:transparent;border:none;color:var(--text-primary);padding:12px 20px;text-align:center;font-size:14px;cursor:pointer;width:100%;transition:background .2s}.dropdown-item[data-v-19ccccf9]:hover{background:#ffffff1a}.dropdown-divider[data-v-19ccccf9]{height:1px;background:var(--border);margin:4px 0}.text-danger[data-v-19ccccf9]{color:#ff6b6b}.btn-hud[data-v-19ccccf9]{background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border:1px solid rgba(255,255,255,.1);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.btn-hud[data-v-19ccccf9]:hover{background:#ffffff26}.btn-danger-hud[data-v-19ccccf9]{color:#ff6b81}.btn-danger-hud[data-v-19ccccf9]:hover{background:#ff6b8133}.diamond3-badge[data-v-19ccccf9]{font-size:12px;padding:2px 10px;background:#e74c3c33;color:var(--danger);border-radius:4px;font-weight:600}.game-table[data-v-19ccccf9]{flex:1;position:relative;min-height:0;padding:4px}.seat-slot[data-v-19ccccf9]{position:absolute;width:auto}.seat-slot[data-v-19ccccf9] .player-seat{min-width:92px}.near-play[data-v-19ccccf9]{position:absolute;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:2px;z-index:5}.near-top[data-v-19ccccf9]{top:90px;left:50%;transform:translate(-50%)}.near-right[data-v-19ccccf9]{right:95px;top:50%;transform:translateY(-50%)}.near-left[data-v-19ccccf9]{left:95px;top:50%;transform:translateY(-50%)}.seat-action-text[data-v-19ccccf9]{position:absolute;display:flex;justify-content:center;align-items:center;z-index:10}.seat-action-text.near-top[data-v-19ccccf9]{top:90px;left:50%;transform:translate(-50%)}.seat-action-text.near-right[data-v-19ccccf9]{right:90px;top:50%;transform:translateY(-50%)}.seat-action-text.near-left[data-v-19ccccf9]{left:90px;top:50%;transform:translateY(-50%)}.near-play[data-v-19ccccf9] .playing-card{width:32px;height:46px;border-radius:4px}.near-play[data-v-19ccccf9] .playing-card+.playing-card{margin-left:-16px}.my-play-center[data-v-19ccccf9]{position:absolute;bottom:20px;display:flex;flex-direction:row;justify-content:center;align-items:center;z-index:15}.my-play-center[data-v-19ccccf9] .playing-card{width:48px;height:68px;border-radius:5px}.my-play-center[data-v-19ccccf9] .playing-card+.playing-card{margin-left:-24px}.center-area[data-v-19ccccf9]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;pointer-events:none}.waiting-text[data-v-19ccccf9]{color:#ffffffe6;font-size:14px;background:#0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:8px 16px;border-radius:20px;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5)}.reconnecting-banner[data-v-19ccccf9]{position:absolute;top:56px;left:50%;transform:translate(-50%);z-index:200;display:flex;align-items:center;gap:8px;background:#e74c3ce6;color:#fff;padding:6px 16px;border-radius:20px;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;box-shadow:0 4px 16px #0006}.reconnect-spinner[data-v-19ccccf9]{width:12px;height:12px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:reconnect-spin-19ccccf9 .8s linear infinite}@keyframes reconnect-spin-19ccccf9{to{transform:rotate(360deg)}}.action-bar[data-v-19ccccf9]{position:absolute;bottom:100%;left:0;width:100%;display:flex;justify-content:center;align-items:center;padding:6px 16px;min-height:clamp(48px,7vh,64px);background:transparent;z-index:50;pointer-events:none}.play-actions[data-v-19ccccf9]{display:flex;gap:16px;flex-wrap:wrap}@media (max-width: 768px){.play-actions[data-v-19ccccf9]{gap:12px}}@media (max-width: 480px){.play-actions[data-v-19ccccf9]{gap:8px;width:100%;justify-content:center}}.btn-hint[data-v-19ccccf9]{background:var(--success, #2ecc71);border:1px solid var(--success, #2ecc71);color:#fff}.btn-hint[data-v-19ccccf9]:hover{background:#27ae60}.btn-pass[data-v-19ccccf9]{background:var(--warning, #f1c40f);border:1px solid var(--warning, #f1c40f);color:#000}.btn-pass[data-v-19ccccf9]:hover{background:#f39c12}.pass-text[data-v-19ccccf9]{font-size:24px;font-weight:700;color:#fcc;text-shadow:0 2px 4px rgba(0,0,0,.8);white-space:nowrap;padding:0 10px}.pass-text.highlight[data-v-19ccccf9]{color:#fc0;text-shadow:0 2px 4px rgba(0,0,0,.8),0 0 10px rgba(255,204,0,.5)}.my-position-badge[data-v-19ccccf9]{position:absolute;top:-30px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;padding:4px 12px;border-radius:12px;font-size:16px;font-weight:900;box-shadow:0 2px 8px #00000080;white-space:nowrap}.huge-rank[data-v-19ccccf9]{font-size:32px;font-weight:900;color:gold;text-shadow:0 2px 8px rgba(0,0,0,.8)}.bottom-bar[data-v-19ccccf9]{position:absolute;bottom:0;left:0;width:100%;display:flex;align-items:flex-end;gap:10px;padding:2px 12px 6px;z-index:50;pointer-events:none}.bottom-bar>.my-info[data-v-19ccccf9],.bottom-bar>.hand-cards[data-v-19ccccf9],.action-bar[data-v-19ccccf9]>*{pointer-events:auto}.my-info[data-v-19ccccf9]{position:absolute;left:8px;bottom:4px;z-index:6;display:flex;align-items:center;gap:8px}.my-avatar[data-v-19ccccf9]{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff}.my-text[data-v-19ccccf9]{display:flex;flex-direction:column;line-height:1.2}.my-name[data-v-19ccccf9]{font-size:13px;font-weight:600;color:#ffffffe6;white-space:nowrap}.my-score[data-v-19ccccf9]{font-size:14px;color:#f1c40f;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.5)}.my-faction[data-v-19ccccf9]{font-size:14px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:0;box-shadow:0 2px 6px #0000004d;margin-left:8px}.my-faction.san[data-v-19ccccf9]{background:var(--accent)}.my-faction.gu[data-v-19ccccf9]{background:var(--success)}.my-suits[data-v-19ccccf9]{display:flex;gap:4px;margin-left:4px}.my-suits .suit-mark[data-v-19ccccf9]{font-size:15px;line-height:1;color:#ffffff26!important;transition:all .3s ease}.my-suits .suit-mark.active[data-v-19ccccf9]{transform:scale(1.2)}.my-suits .suit-mark.spade.active[data-v-19ccccf9],.my-suits .suit-mark.club.active[data-v-19ccccf9]{color:#1a1a1a!important;text-shadow:0 0 2px rgba(255,255,255,.7)}.my-suits .suit-mark.heart.active[data-v-19ccccf9],.my-suits .suit-mark.diamond.active[data-v-19ccccf9]{color:#ff4757!important;text-shadow:0 0 8px rgba(255,71,87,.8)}.hand-cards[data-v-19ccccf9]{flex:1 1 auto;min-width:0;display:flex;justify-content:safe center;overflow-x:auto;overflow-y:hidden;padding:24px 0 4px 8px;gap:0;min-height:calc(var(--card-h) + 28px)}.hand-cards[data-v-19ccccf9] .playing-card+.playing-card{margin-left:calc(var(--card-w) * -.55)}.hand-cards[data-v-19ccccf9] .playing-card{flex-shrink:0;transition:transform .15s ease}.hand-cards[data-v-19ccccf9] .playing-card.selected{transform:translateY(-20px)}.spectating-banner[data-v-19ccccf9]{position:absolute;bottom:calc(var(--card-h) + 15px);left:50%;transform:translate(-50%);z-index:60;background:#0009;color:#fff;padding:6px 16px;border-radius:20px;font-size:14px;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 16px #0006}.overlay[data-v-19ccccf9]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;padding:16px}.settle-card[data-v-19ccccf9],.game-over-card[data-v-19ccccf9]{background:var(--bg-secondary);border-radius:16px;padding:16px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 10px 40px #00000080;max-width:420px;width:100%;max-height:100%;min-height:0;overflow:hidden}@media (max-height: 700px){.settle-card[data-v-19ccccf9],.game-over-card[data-v-19ccccf9]{padding:12px 16px;gap:6px;max-height:90%}}.settle-title[data-v-19ccccf9]{font-size:22px;font-weight:800}@media (max-height: 700px){.settle-title[data-v-19ccccf9]{font-size:18px}}.san-win[data-v-19ccccf9]{color:var(--accent)}.gu-win[data-v-19ccccf9]{color:var(--success)}.tie-win[data-v-19ccccf9]{color:var(--text-secondary)}.settle-detail[data-v-19ccccf9]{font-size:13px;color:var(--text-secondary);flex-shrink:0}@media (max-height: 700px){.settle-detail[data-v-19ccccf9]{font-size:11px}}.settle-rows[data-v-19ccccf9]{display:flex;flex-direction:column;gap:4px;width:100%;overflow-y:auto;flex:1 1 auto;min-height:0;padding-right:4px}.settle-row[data-v-19ccccf9]{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--bg-card);border-radius:8px;font-size:14px}@media (max-height: 700px){.settle-row[data-v-19ccccf9]{padding:4px 10px;font-size:12px}}.settle-name[data-v-19ccccf9]{flex:1;font-weight:600}.settle-head[data-v-19ccccf9]{font-size:12px;color:var(--text-muted)}.settle-score[data-v-19ccccf9]{font-weight:700;min-width:48px;text-align:right}.settle-score.pos[data-v-19ccccf9]{color:var(--success)}.settle-score.neg[data-v-19ccccf9]{color:var(--danger)}.game-over-title[data-v-19ccccf9]{font-size:24px;font-weight:900;color:var(--accent)}.game-over-subtitle[data-v-19ccccf9]{font-size:14px;color:var(--text-secondary);margin-top:-6px}@media (max-height: 700px){.game-over-title[data-v-19ccccf9]{font-size:20px}}.rankings[data-v-19ccccf9]{display:flex;flex-direction:column;gap:4px;width:100%;overflow-y:auto;flex:1 1 auto;min-height:0;padding-right:4px}.settle-btn[data-v-19ccccf9]{flex-shrink:0;margin-top:4px}.game-over-actions[data-v-19ccccf9]{display:flex;gap:12px;justify-content:center;margin-top:16px;flex-shrink:0}.ranking-item[data-v-19ccccf9]{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-card);border-radius:8px}.ranking-item.first[data-v-19ccccf9]{background:linear-gradient(135deg,#f1c40f33,#e67e2233);border:1px solid var(--warning)}.rank-num[data-v-19ccccf9]{font-size:18px;font-weight:900;color:var(--warning);width:24px}.rank-name[data-v-19ccccf9]{flex:1;font-weight:600}.rank-score[data-v-19ccccf9]{color:var(--text-secondary);font-size:14px}.header-spacer[data-v-19ccccf9]{flex:1}.btn-history[data-v-19ccccf9]{background:#3498db26;border:1px solid var(--info, #3498db);color:var(--info, #3498db);padding:4px 14px;font-size:13px}.btn-history[data-v-19ccccf9]:hover{background:#3498db4d}.history-overlay[data-v-19ccccf9]{z-index:1100}.history-card[data-v-19ccccf9]{background:var(--bg-secondary);border-radius:16px;padding:20px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 10px 40px #00000080;max-width:460px;width:100%;max-height:90%;min-height:0}.history-title[data-v-19ccccf9]{font-size:20px;font-weight:800;color:var(--text-primary)}.history-list[data-v-19ccccf9]{display:flex;flex-direction:column;gap:8px;width:100%;overflow-y:auto;flex:1 1 auto;min-height:0}.history-round[data-v-19ccccf9]{background:var(--bg-card);border-radius:8px;padding:8px 12px}.history-round-header[data-v-19ccccf9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.history-round-num[data-v-19ccccf9]{font-size:14px;font-weight:700;color:var(--text-primary)}.room-id-badge[data-v-19ccccf9]{font-size:14px;font-weight:700;color:var(--text-secondary);background:#0000004d;padding:4px 10px;border-radius:12px;margin-left:8px}.history-winner[data-v-19ccccf9]{font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px;color:#fff}.history-winner.winner-san[data-v-19ccccf9]{background:var(--accent)}.history-winner.winner-gu[data-v-19ccccf9]{background:var(--success)}.history-winner.winner-tie[data-v-19ccccf9]{background:var(--text-muted)}.history-scores[data-v-19ccccf9]{display:flex;flex-wrap:wrap;gap:6px 12px}.history-score-item[data-v-19ccccf9]{font-size:13px;color:var(--text-secondary)}.history-score-item .pos[data-v-19ccccf9]{color:var(--success);font-weight:600}.history-score-item .neg[data-v-19ccccf9]{color:var(--danger);font-weight:600}.test-harness[data-v-8f32c1bc]{display:flex;flex-direction:column;height:100vh;width:100vw;background:#1e1e1e;color:#fff;font-family:monospace}.header[data-v-8f32c1bc]{padding:10px 20px;background:#2d2d2d;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #444}.controls[data-v-8f32c1bc]{display:flex;gap:15px;align-items:center}.iframe-grid[data-v-8f32c1bc]{flex:1;display:grid;gap:10px;padding:10px;background:#000;height:calc(100vh - 65px)}.game-iframe[data-v-8f32c1bc]{width:100%;height:100%;border:2px solid #555;border-radius:8px;background:#fff}.log-panel[data-v-8f32c1bc]{flex:1;padding:20px;overflow-y:auto;font-size:14px;line-height:1.5}.log-entry[data-v-8f32c1bc]{margin-bottom:4px}.log-entry.info[data-v-8f32c1bc]{color:#ccc}.log-entry.error[data-v-8f32c1bc]{color:#ff6b6b;font-weight:700}.log-entry.success[data-v-8f32c1bc]{color:#51cf66;font-weight:700}.btn[data-v-8f32c1bc]{padding:5px 15px;border:none;border-radius:4px;cursor:pointer;font-weight:700}.btn-primary[data-v-8f32c1bc]{background:#339af0;color:#fff}.btn-primary[data-v-8f32c1bc]:disabled{background:#666;cursor:not-allowed}.btn-danger[data-v-8f32c1bc]{background:#fa5252;color:#fff}.admin-view[data-v-fad39b6a]{width:100vw;height:100vh;display:flex;flex-direction:column;background:var(--bg-primary, #1a1a2e);color:var(--text-primary, #ffffff);overflow:hidden;font-family:system-ui,-apple-system,sans-serif}.admin-header[data-v-fad39b6a]{height:60px;padding:0 24px;background:var(--bg-secondary, #16213e);border-bottom:1px solid var(--border, rgba(255,255,255,.1));display:flex;align-items:center;justify-content:space-between}.header-left[data-v-fad39b6a]{display:flex;align-items:center;gap:12px}.logo-badge[data-v-fad39b6a]{font-size:24px}.header-title[data-v-fad39b6a]{font-size:18px;font-weight:700;margin:0}.status-chip[data-v-fad39b6a]{padding:4px 10px;border-radius:12px;font-size:12px;background:#e74c3c33;color:#e74c3c}.status-chip.online[data-v-fad39b6a]{background:#2ecc7133;color:#2ecc71}.header-right[data-v-fad39b6a]{display:flex;align-items:center;gap:16px}.token-field[data-v-fad39b6a]{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary, #a0a0b0)}.token-input[data-v-fad39b6a]{width:130px;padding:6px 10px;border-radius:6px;border:1px solid var(--border, rgba(255,255,255,.1));background:var(--bg-card, #0f3460);color:#fff}.refresh-controls[data-v-fad39b6a]{display:flex;align-items:center;gap:8px}.select-input[data-v-fad39b6a]{padding:6px 12px;border-radius:6px;border:1px solid var(--border, rgba(255,255,255,.1));background:var(--bg-card, #0f3460);color:#fff;font-size:14px}.spinning[data-v-fad39b6a]{display:inline-block;animation:spin-fad39b6a 1s linear infinite}@keyframes spin-fad39b6a{to{transform:rotate(360deg)}}.admin-nav[data-v-fad39b6a]{display:flex;gap:8px;padding:12px 24px 0;background:var(--bg-secondary, #16213e);border-bottom:1px solid var(--border, rgba(255,255,255,.1))}.nav-tab[data-v-fad39b6a]{padding:10px 20px;border:none;background:transparent;color:var(--text-secondary, #a0a0b0);font-size:15px;font-weight:600;cursor:pointer;border-top-left-radius:8px;border-top-right-radius:8px;transition:all .2s}.nav-tab[data-v-fad39b6a]:hover{color:#fff;background:#ffffff0d}.nav-tab.active[data-v-fad39b6a]{color:var(--accent, #e94560);background:var(--bg-primary, #1a1a2e);border-bottom:2px solid var(--accent, #e94560)}.error-banner[data-v-fad39b6a]{background:#e74c3c;color:#fff;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;font-size:14px}.close-btn[data-v-fad39b6a]{background:none;border:none;color:#fff;cursor:pointer;font-size:16px}.admin-main[data-v-fad39b6a]{flex:1;padding:24px;overflow-y:auto}.metrics-grid[data-v-fad39b6a]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px}.metric-card[data-v-fad39b6a]{background:var(--bg-secondary, #16213e);padding:20px;border-radius:12px;border:1px solid var(--border, rgba(255,255,255,.1));display:flex;align-items:center;gap:16px}.metric-icon[data-v-fad39b6a]{font-size:32px}.metric-label[data-v-fad39b6a]{font-size:13px;color:var(--text-secondary, #a0a0b0)}.metric-value[data-v-fad39b6a]{font-size:20px;font-weight:700;margin:4px 0}.metric-value.highlight[data-v-fad39b6a]{color:var(--accent, #e94560)}.metric-value.text-gold[data-v-fad39b6a]{color:#f1c40f}.metric-sub[data-v-fad39b6a]{font-size:12px;color:var(--text-muted, #6c6c80)}.state-card[data-v-fad39b6a]{background:var(--bg-secondary, #16213e);padding:20px;border-radius:12px}.section-title[data-v-fad39b6a]{font-size:16px;margin-bottom:16px}.state-badges[data-v-fad39b6a]{display:flex;flex-wrap:wrap;gap:12px}.state-pill[data-v-fad39b6a]{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:8px;background:var(--bg-card, #0f3460);font-weight:600}.state-count[data-v-fad39b6a]{background:#fff3;padding:2px 8px;border-radius:10px;font-size:13px}.toolbar[data-v-fad39b6a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.search-input[data-v-fad39b6a]{width:320px}.toolbar-info[data-v-fad39b6a]{font-size:14px;color:var(--text-secondary, #a0a0b0)}.table-wrapper[data-v-fad39b6a]{background:var(--bg-secondary, #16213e);border-radius:12px;border:1px solid var(--border, rgba(255,255,255,.1));overflow:auto}.mini-table-wrapper[data-v-fad39b6a]{max-height:240px}.admin-table[data-v-fad39b6a]{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.admin-table th[data-v-fad39b6a],.admin-table td[data-v-fad39b6a]{padding:14px 18px;border-bottom:1px solid var(--border, rgba(255,255,255,.05))}.mini-table th[data-v-fad39b6a],.mini-table td[data-v-fad39b6a]{padding:8px 12px;font-size:13px}.admin-table th[data-v-fad39b6a]{background:var(--bg-card, #0f3460);color:var(--text-secondary, #a0a0b0);font-weight:600}.font-mono[data-v-fad39b6a]{font-family:monospace}.player-chips[data-v-fad39b6a]{display:flex;flex-wrap:wrap;gap:6px}.player-mini-tag[data-v-fad39b6a]{background:#ffffff1a;padding:2px 8px;border-radius:4px;font-size:12px}.player-mini-tag.offline[data-v-fad39b6a]{opacity:.5;text-decoration:line-through}.spectator-tag[data-v-fad39b6a]{background:#f1c40f2e;border:1px solid rgba(241,196,15,.35);color:#f1c40f}.watching-tag[data-v-fad39b6a]{margin-left:4px;font-size:11px;color:#ffffffd9;opacity:.9}.spectators-section[data-v-fad39b6a]{background:#f1c40f0f;border:1px solid rgba(241,196,15,.2);border-radius:10px;padding:14px}.spectators-section h3[data-v-fad39b6a]{font-size:15px;margin-bottom:10px}.badge[data-v-fad39b6a]{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.badge-info[data-v-fad39b6a]{background:#3498db;color:#fff}.badge-success[data-v-fad39b6a]{background:#2ecc71;color:#fff}.badge-warning[data-v-fad39b6a]{background:#f39c12;color:#fff}.badge-purple[data-v-fad39b6a]{background:#9b59b6;color:#fff}.badge-muted[data-v-fad39b6a]{background:#7f8c8d;color:#fff}.btn-group[data-v-fad39b6a]{display:flex;gap:6px}.btn-outline[data-v-fad39b6a]{background:transparent;border:1px solid var(--border, rgba(255,255,255,.2));color:var(--text-primary, #fff)}.btn-outline[data-v-fad39b6a]:hover{background:#ffffff1a}.broadcast-card[data-v-fad39b6a]{max-width:600px;background:var(--bg-secondary, #16213e);padding:24px;border-radius:12px}.form-group[data-v-fad39b6a]{margin-bottom:16px;display:flex;flex-direction:column;gap:8px}.textarea[data-v-fad39b6a]{width:100%;padding:12px;border-radius:8px;background:var(--bg-card, #0f3460);border:1px solid var(--border, rgba(255,255,255,.1));color:#fff;font-size:14px;outline:none}.modal-overlay[data-v-fad39b6a]{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:999}.modal-content.room-modal[data-v-fad39b6a]{width:92%;max-width:1020px;max-height:88vh;background:var(--bg-secondary, #16213e);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 40px #00000080;border:1px solid var(--border, rgba(255,255,255,.15))}.modal-header[data-v-fad39b6a]{padding:16px 24px;background:var(--bg-card, #0f3460);display:flex;align-items:center;justify-content:space-between}.modal-header h2[data-v-fad39b6a]{font-size:18px;margin:0}.modal-close[data-v-fad39b6a]{background:none;border:none;color:#fff;font-size:20px;cursor:pointer}.modal-subnav[data-v-fad39b6a]{display:flex;background:#0003;border-bottom:1px solid var(--border, rgba(255,255,255,.1))}.subnav-tab[data-v-fad39b6a]{padding:10px 20px;border:none;background:none;color:var(--text-secondary, #a0a0b0);font-size:14px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent}.subnav-tab.active[data-v-fad39b6a]{color:#fff;border-bottom-color:var(--accent, #e94560);background:#ffffff0d}.modal-body[data-v-fad39b6a]{padding:20px 24px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:16px}.summary-box[data-v-fad39b6a]{background:#0f346099;border-radius:8px;padding:12px 16px;border:1px solid rgba(255,255,255,.08)}.bids-chip-list[data-v-fad39b6a]{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}.bid-chip[data-v-fad39b6a]{background:#0003;padding:4px 10px;border-radius:6px;font-size:13px;display:inline-flex;align-items:center;gap:6px}.inline-cards-span[data-v-fad39b6a]{display:inline-flex;align-items:center;gap:2px;margin-left:4px}.finish-rank-list[data-v-fad39b6a]{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.rank-tag[data-v-fad39b6a]{background:#f1c40f26;color:#f1c40f;padding:4px 10px;border-radius:6px;font-size:13px;border:1px solid rgba(241,196,15,.3)}.rank-mini-tag[data-v-fad39b6a]{background:#ffffff14;padding:2px 8px;border-radius:4px;font-size:12px;margin-right:6px}.room-meta-grid[data-v-fad39b6a]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;background:#0003;padding:12px 16px;border-radius:8px;font-size:13px}.players-grid[data-v-fad39b6a]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:10px}.player-card[data-v-fad39b6a]{background:var(--bg-card, #0f3460);border-radius:10px;padding:14px;border:1px solid rgba(255,255,255,.05);display:flex;flex-direction:column;gap:10px}.player-card.is-turn[data-v-fad39b6a]{border-color:#f1c40f;box-shadow:0 0 10px #f1c40f4d}.player-card-header[data-v-fad39b6a]{display:flex;align-items:center;gap:8px;font-weight:700}.seat-badge[data-v-fad39b6a]{background:#34495e;padding:2px 6px;border-radius:4px;font-size:11px}.host-tag[data-v-fad39b6a]{background:var(--accent, #e94560);padding:2px 6px;border-radius:4px;font-size:11px}.online-tag[data-v-fad39b6a]{font-size:11px;margin-left:auto}.online-tag.online[data-v-fad39b6a]{color:#2ecc71}.online-tag.offline[data-v-fad39b6a]{color:#e74c3c}.player-card-stats[data-v-fad39b6a]{font-size:13px;display:flex;gap:12px;align-items:center}.faction-tag[data-v-fad39b6a]{background:#8e44ad;padding:2px 6px;border-radius:4px;font-size:11px}.turn-tag[data-v-fad39b6a]{color:#f1c40f;font-size:12px;font-weight:700}.cards-block[data-v-fad39b6a]{font-size:12px}.block-title[data-v-fad39b6a]{color:var(--text-secondary, #a0a0b0);margin-bottom:4px;font-size:12px}.card-list[data-v-fad39b6a]{display:flex;flex-wrap:wrap;gap:4px}.mini-card[data-v-fad39b6a]{background:#fff;color:#000;padding:2px 6px;border-radius:4px;font-weight:700;font-size:12px;box-shadow:0 1px 3px #0000004d;display:inline-block}.mini-card.suit-red[data-v-fad39b6a]{color:#e74c3c}.mini-card.suit-black[data-v-fad39b6a]{color:#2c3e50}.mini-card.suit-joker-big[data-v-fad39b6a]{background:#f34;color:#fff;border:1px solid #d50000;box-shadow:0 0 6px #f349}.mini-card.suit-joker-small[data-v-fad39b6a]{background:#8e24aa;color:#fff;border:1px solid #4a148c;box-shadow:0 0 6px #8e24aa99}.mini-card-ghost[data-v-fad39b6a]{opacity:.85;border:1px dashed rgba(0,0,0,.2)}.history-rounds-list[data-v-fad39b6a]{display:flex;flex-direction:column;gap:16px}.round-history-card[data-v-fad39b6a]{background:#00000040;border:1px solid rgba(255,255,255,.1);padding:16px;border-radius:12px}.round-card-header[data-v-fad39b6a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.round-card-header h4[data-v-fad39b6a]{font-size:15px;margin:0}.toggle-detail-btn[data-v-fad39b6a]{margin-left:auto}.round-scores-grid[data-v-fad39b6a]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px;background:#ffffff08;padding:10px 14px;border-radius:8px}.history-finish-order[data-v-fad39b6a]{font-size:13px;margin-bottom:8px}.round-expand-body[data-v-fad39b6a]{margin-top:14px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.1);display:flex;flex-direction:column;gap:12px}.score-pill[data-v-fad39b6a]{font-size:13px}.score-pname[data-v-fad39b6a]{color:var(--text-secondary, #a0a0b0);margin-right:4px}.score-val[data-v-fad39b6a]{font-weight:700}.text-green[data-v-fad39b6a]{color:#2ecc71}.text-red[data-v-fad39b6a]{color:#e74c3c}.font-bold[data-v-fad39b6a]{font-weight:700}.history-initial-hands[data-v-fad39b6a],.history-play-logs[data-v-fad39b6a],.history-bids[data-v-fad39b6a]{margin-top:8px}.init-hands-grid[data-v-fad39b6a]{display:flex;flex-direction:column;gap:6px}.init-hand-item[data-v-fad39b6a]{display:flex;align-items:center;gap:8px;font-size:12px}.init-player-name[data-v-fad39b6a]{width:90px;color:var(--text-secondary, #a0a0b0);font-weight:600}.modal-footer[data-v-fad39b6a]{padding:16px 24px;background:var(--bg-card, #0f3460);display:flex;justify-content:flex-end;gap:12px}.voice-control-container[data-v-870cb9c0]{position:fixed;bottom:20px;right:20px;z-index:1000}.voice-control-panel[data-v-870cb9c0]{display:flex;gap:8px;background:#000000b3;padding:8px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #0000004d}.voice-btn[data-v-870cb9c0]{display:flex;align-items:center;gap:4px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:16px;padding:6px 12px;cursor:pointer;font-size:.9em;transition:all .2s}.voice-btn[data-v-870cb9c0]:hover{background:#fff3}.voice-btn.active[data-v-870cb9c0]{background:#2ecc7133;border-color:#2ecc7180;color:#2ecc71}.voice-btn.muted[data-v-870cb9c0]{background:#e74c3c33;border-color:#e74c3c80;color:#e74c3c}.voice-btn.connecting[data-v-870cb9c0]{opacity:.7;cursor:wait}.voice-btn[data-v-870cb9c0]:disabled{opacity:.5;cursor:not-allowed}.icon.slashable[data-v-870cb9c0]{position:relative;display:inline-block}.voice-btn.muted .icon.slashable[data-v-870cb9c0]:after{content:"";position:absolute;top:50%;left:-2px;right:-2px;height:2px;background-color:currentColor;transform:translateY(-50%) rotate(45deg);border-radius:2px;box-shadow:0 0 2px #00000080}.toast-host[data-v-e5698730]{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast-item[data-v-e5698730]{pointer-events:auto;padding:10px 18px;border-radius:10px;color:#fff;background:#000000d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:14px;line-height:1.4;box-shadow:0 4px 18px #00000059;max-width:80vw;cursor:pointer;border:1px solid rgba(255,255,255,.12)}.toast-item.success[data-v-e5698730]{background:#2ecc71eb}.toast-item.warning[data-v-e5698730]{background:#f1c40ff2;color:#222}.toast-item.error[data-v-e5698730]{background:#e74c3ceb}.toast-enter-active[data-v-e5698730],.toast-leave-active[data-v-e5698730]{transition:all .3s ease}.toast-enter-from[data-v-e5698730],.toast-leave-to[data-v-e5698730]{opacity:0;transform:translateY(-12px)}.app[data-v-4aeed0f8]{width:100%;height:100%}:root{color-scheme:dark;--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-card: #0f3460;--bg-table: #2d5a3d;--text-primary: #ffffff;--text-secondary: #a0a0b0;--text-muted: #6c6c80;--accent: #e94560;--accent-hover: #ff5277;--accent-light: rgba(233, 69, 96, .15);--success: #2ecc71;--warning: #f39c12;--danger: #e74c3c;--border: rgba(255, 255, 255, .1);--shadow: 0 4px 20px rgba(0, 0, 0, .3);--card-w: clamp(68px, 18dvmin, 109px);--card-h: clamp(99px, 26dvmin, 159px);--card-gap: clamp(2px, .5vw, 6px);--card-radius: 8px;--suit-red: #e74c3c;--suit-black: #2c3e50;--suit-heart: #e74c3c;--suit-diamond: #e74c3c;--suit-spade: #2c3e50;--suit-club: #2c3e50;--suit-joker: #9b59b6;--table-radius: 200px;--seat-w: 120px;--seat-h: 80px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:PingFang SC,Microsoft YaHei,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;user-select:none;-webkit-user-select:none;color-scheme:dark}#app{width:100vw;height:100vh;display:flex;flex-direction:column}@media screen and (orientation: portrait){.app.is-landscape-locked{position:fixed;top:0;left:0;width:100vh;height:100vw;width:100dvh;height:100dvw;transform-origin:0 0;transform:rotate(90deg) translateY(-100vw);transform:rotate(90deg) translateY(-100dvw);z-index:9999}}.app.css-landscape-forced{position:fixed!important;top:0!important;left:0!important;width:100vh!important;height:100vw!important;width:100dvh!important;height:100dvw!important;transform-origin:0 0!important;transform:rotate(90deg) translateY(-100vw)!important;transform:rotate(90deg) translateY(-100dvw)!important;z-index:9999!important;overflow:hidden!important}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;background:var(--bg-card);color:var(--text-primary)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.btn-primary{background:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-success{background:var(--success)}.btn-danger{background:var(--danger)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-sm{padding:6px 14px;font-size:14px}.btn-lg{padding:14px 36px;font-size:18px}.input{padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:16px;outline:none;transition:border-color .2s}.input:focus{border-color:var(--accent)}.card-container{background:var(--bg-secondary);border-radius:12px;padding:20px;box-shadow:var(--shadow)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}@media (max-width: 768px){.btn-lg{padding:13px 28px;font-size:16px}}@media (max-width: 480px){.btn-lg{padding:12px 20px;font-size:15px}}.hand-cards{scrollbar-width:none}.hand-cards::-webkit-scrollbar:vertical{display:none}
