.player-info-card[data-v-63e05b84]{position:absolute;top:0;left:0;background:#fff;border:1px solid #d8dee8;border-radius:8px;padding:16px;width:280px;box-shadow:0 4px 12px #0f172a1a;cursor:pointer;transition:all .3s ease}.player-info-card[data-v-63e05b84]:hover{box-shadow:0 8px 24px #0f172a26;transform:translateY(-2px)}.card-content[data-v-63e05b84]{display:flex;gap:12px;align-items:flex-start}.player-avatar[data-v-63e05b84]{width:56px;height:56px;border-radius:8px;background:linear-gradient(135deg,#1d4ed8,#1e40af);display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar-initial[data-v-63e05b84]{color:#fff;font-size:24px;font-weight:700}.player-details[data-v-63e05b84]{flex:1}.player-name[data-v-63e05b84]{margin:0 0 8px;font-size:16px;font-weight:600;color:#1f2937}.player-stats[data-v-63e05b84]{display:flex;gap:12px}.stat-item[data-v-63e05b84]{display:flex;flex-direction:column;gap:2px}.stat-label[data-v-63e05b84]{font-size:12px;color:#64748b;font-weight:500}.stat-value[data-v-63e05b84]{font-size:18px;font-weight:700;color:#1d4ed8}.card-footer[data-v-63e05b84]{margin-top:12px;padding-top:12px;border-top:1px solid #f1f5f9}.hint-text[data-v-63e05b84]{font-size:12px;color:#94a3b8;display:block;text-align:center}.stats-panel-overlay[data-v-8d0abc0c]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn-8d0abc0c .2s ease}@keyframes fadeIn-8d0abc0c{0%{opacity:0}to{opacity:1}}.stats-panel[data-v-8d0abc0c]{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0f172a33;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp-8d0abc0c .3s ease}@keyframes slideUp-8d0abc0c{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.panel-header[data-v-8d0abc0c]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:#fff}.panel-header h2[data-v-8d0abc0c]{margin:0;font-size:20px;color:#1f2937}.close-btn[data-v-8d0abc0c]{background:transparent;border:0;color:#64748b;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-btn[data-v-8d0abc0c]:hover{color:#1f2937}.close-btn svg[data-v-8d0abc0c]{width:20px;height:20px;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.panel-content[data-v-8d0abc0c]{padding:24px}.stats-section[data-v-8d0abc0c]{margin-bottom:24px}.stats-section[data-v-8d0abc0c]:last-child{margin-bottom:0}.stats-section h3[data-v-8d0abc0c]{margin:0 0 16px;font-size:14px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.stat-grid[data-v-8d0abc0c]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat-card[data-v-8d0abc0c]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:4px}.stat-label[data-v-8d0abc0c]{font-size:12px;color:#64748b;font-weight:500}.stat-value[data-v-8d0abc0c]{font-size:20px;font-weight:700;color:#1d4ed8}@media (max-width: 600px){.stats-panel[data-v-8d0abc0c]{width:95%;max-height:90vh}.stat-grid[data-v-8d0abc0c]{grid-template-columns:1fr}}.action-buttons[data-v-daaf726d]{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}.action-btn[data-v-daaf726d]{min-width:116px;min-height:42px;padding:10px 16px;border:1px solid #cbd5e1;border-radius:8px;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.action-btn[data-v-daaf726d]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #0f172a24}.action-btn[data-v-daaf726d]:disabled{opacity:.5;cursor:not-allowed}.create-btn[data-v-daaf726d],.join-btn[data-v-daaf726d]{background:#2563eb;border-color:#1d4ed8}.ready-btn[data-v-daaf726d]{background:#0f766e;border-color:#0f766e}.start-btn[data-v-daaf726d],.matchmaking-btn[data-v-daaf726d]{background:#16a34a;border-color:#15803d}.test-btn[data-v-daaf726d]{background:#7c3aed;border-color:#6d28d9}.return-btn[data-v-daaf726d]{background:#2563eb;border-color:#1d4ed8}.matchmaking-cancel-btn[data-v-daaf726d]{background:#f97316;border-color:#ea580c}.leave-btn[data-v-daaf726d]{background:#ef4444;border-color:#dc2626}.lobby-page[data-v-cd683531]{min-height:100vh;background:linear-gradient(#0f172a6b,#0f172a80),var(--lobby-bg-image) center / contain no-repeat fixed;background-color:#0f172a;display:flex;flex-direction:column}.lobby-header[data-v-cd683531]{background:#fff;border-bottom:1px solid #d8dee8;padding:16px 32px;box-shadow:0 2px 8px #0f172a14}.header-content[data-v-cd683531]{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;width:100%}.lobby-header h1[data-v-cd683531]{margin:0;font-size:28px;color:#1f2937}.logout-btn[data-v-cd683531]{background:#ef4444;color:#fff;border:1px solid #dc2626;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.logout-btn[data-v-cd683531]:hover{background:#dc2626}.logout-btn[data-v-cd683531]:disabled{opacity:.7;cursor:not-allowed}.lobby-container[data-v-cd683531]{flex:1;padding:32px;position:relative}.room-panel[data-v-cd683531]{max-width:760px;margin:28px auto 0;padding:22px;border:1px solid #d8dee8;border-radius:8px;background:#fff;box-shadow:0 10px 28px #0f172a14}.room-header[data-v-cd683531]{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.section-label[data-v-cd683531]{margin:0 0 4px;color:#64748b;font-size:13px;font-weight:700}.room-header h2[data-v-cd683531]{margin:0;color:#111827;font-size:24px}.room-status[data-v-cd683531]{padding:6px 10px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:13px;font-weight:700}.error-message[data-v-cd683531]{margin:0 0 16px;padding:10px 12px;border-radius:8px;background:#fee2e2;color:#991b1b;font-size:14px}.matchmaking-message[data-v-cd683531]{margin:0 0 16px;padding:10px 12px;border-radius:8px;background:#dcfce7;color:#166534;font-size:14px;font-weight:700}.room-content[data-v-cd683531]{display:grid;gap:18px}.seat-grid[data-v-cd683531]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.seat-card[data-v-cd683531]{min-height:108px;display:grid;align-content:center;gap:6px;padding:14px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#0f172a}.seat-card.ready[data-v-cd683531]{border-color:#22c55e;background:#f0fdf4}.seat-card.host[data-v-cd683531]{border-color:#2563eb}.seat-card.empty[data-v-cd683531]{color:#94a3b8;border-style:dashed}.seat-index[data-v-cd683531]{color:#64748b;font-size:12px;font-weight:800}.seat-card strong[data-v-cd683531]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-card small[data-v-cd683531]{color:#475569}.join-field[data-v-cd683531]{display:grid;gap:8px;color:#334155;font-size:14px;font-weight:700}.join-field input[data-v-cd683531]{width:min(280px,100%);height:42px;padding:0 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:16px}@media (max-width: 760px){.lobby-container[data-v-cd683531]{padding:18px}.seat-grid[data-v-cd683531]{grid-template-columns:repeat(2,minmax(0,1fr))}}.game-board-page[data-v-f77d3d59]{--card-width: 64px;--card-height: 96px;position:relative;width:100vw;height:100vh;min-height:100vh;overflow:hidden}.game-board-stage[data-v-f77d3d59]{display:contents}.game-board-page[data-v-f77d3d59]{--card-width: 84px;--card-height: calc(var(--card-width) * 7 / 5);position:relative;min-height:100vh;overflow:hidden;color:#f8fafc;background:linear-gradient(#0803121f,#08031257),var(--v770e3c04);background-position:center;background-size:cover;font-family:Microsoft JhengHei,PingFang TC,system-ui,sans-serif}.room-panel[data-v-f77d3d59],.top-tools[data-v-f77d3d59],.opponent[data-v-f77d3d59],.table-center[data-v-f77d3d59],.player-area[data-v-f77d3d59],.action-panel[data-v-f77d3d59]{position:absolute;z-index:1}.room-panel[data-v-f77d3d59]{top:18px;left:18px;width:202px;display:grid;gap:8px}.room-row[data-v-f77d3d59]{min-height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border:1px solid rgba(248,250,252,.88);border-radius:8px;background:#050210b8;font-size:15px}.signal-icon[data-v-f77d3d59]{font-weight:700;transform:rotate(-18deg)}.top-tools[data-v-f77d3d59]{top:20px;right:24px;display:flex;gap:12px}.tool-btn[data-v-f77d3d59],.action-btn[data-v-f77d3d59],.player-card[data-v-f77d3d59]{cursor:pointer}.tool-btn[data-v-f77d3d59]{width:66px;height:70px;display:grid;place-items:center;gap:2px;border:1px solid rgba(248,250,252,.9);border-radius:8px;color:inherit;background:#050210ad;font-size:13px}.tool-icon[data-v-f77d3d59]{font-size:24px;line-height:1}.opponent[data-v-f77d3d59]{display:grid;justify-items:center;gap:5px}.opponent-top[data-v-f77d3d59]{top:30px;left:50%;transform:translate(-50%);grid-template-columns:132px auto;grid-template-rows:repeat(3,auto);column-gap:18px;align-items:start}.opponent-top .role-panel[data-v-f77d3d59]{grid-row:1 / 4}.opponent-left[data-v-f77d3d59]{top:124px;left:20px}.opponent-right[data-v-f77d3d59]{top:124px;right:20px}.role-panel[data-v-f77d3d59]{display:grid;justify-items:center;gap:6px}.role-card[data-v-f77d3d59]{width:110px;height:calc(110px * 1771 / 1271);display:grid;place-items:center;border:0;border-radius:0;background:transparent;font-size:18px}.image-fill[data-v-f77d3d59]{overflow:hidden;color:transparent;background-image:var(--image-url);background-position:center;background-size:cover;background-repeat:no-repeat;text-shadow:none}.role-card.image-fill[data-v-f77d3d59]{background-size:contain;background-color:transparent}.role-name[data-v-f77d3d59]{min-width:76px;max-width:116px;padding:4px 8px;border:1px solid rgba(248,250,252,.86);border-radius:8px;color:#f8fafc;background:#050210c7;font-size:14px;line-height:1.2;text-align:center}.opponent-name[data-v-f77d3d59],.card-count[data-v-f77d3d59]{font-size:15px;line-height:1.2}.opponent-card-summary[data-v-f77d3d59]{position:relative;width:max-content}.opponent-left .opponent-card-summary[data-v-f77d3d59],.opponent-right .opponent-card-summary[data-v-f77d3d59]{height:var(--card-height);display:grid;place-items:center}.card-count-badge[data-v-f77d3d59]{position:absolute;top:-10px;right:-12px;min-width:28px;height:28px;display:grid;place-items:center;padding:0 6px;border:1px solid rgba(248,250,252,.95);border-radius:999px;color:#080312;background:#f8fafc;font-size:15px;font-weight:800}.game-card[data-v-f77d3d59]{width:var(--card-width);height:var(--card-height);display:grid;place-items:center;border:1px solid rgba(248,250,252,.92);border-radius:7px;color:#f8fafc;background-color:#050210b8;font-size:15px;text-align:center}.side-summary-card[data-v-f77d3d59]{width:var(--card-width);height:var(--card-height)}.side-card-horizontal[data-v-f77d3d59]{width:var(--card-height);height:var(--card-width)}.side-card-horizontal+.card-count-badge[data-v-f77d3d59]{top:-12px;right:-14px}.table-center[data-v-f77d3d59]{top:28%;left:50%;width:min(680px,calc(100vw - 360px));min-width:520px;height:230px;transform:translate(-50%);display:grid;grid-template-columns:var(--card-width) 230px var(--card-width);grid-template-areas:"deck info discard";align-items:start;justify-content:center;gap:64px}.deck-stack[data-v-f77d3d59]{grid-area:deck;position:relative;justify-self:end;margin-top:8px}.deck-card[data-v-f77d3d59]{position:relative;width:var(--card-width);height:var(--card-height)}.discard-pile[data-v-f77d3d59]{grid-area:discard;position:relative;width:var(--card-width);height:var(--card-height);justify-self:start;margin-top:8px}.pile-card[data-v-f77d3d59]{width:var(--card-width);height:var(--card-height);font-weight:800}.turn-panel[data-v-f77d3d59]{grid-area:info;position:relative;width:230px;justify-self:center;padding:12px 14px;border:1px solid rgba(248,250,252,.92);border-radius:8px;background:#050210bd}.turn-row[data-v-f77d3d59]{min-height:30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(248,250,252,.35);font-size:16px}.turn-row[data-v-f77d3d59]:last-child{border-bottom:0}.turn-row strong[data-v-f77d3d59]{font-size:20px}.penalty-row[data-v-f77d3d59]{color:#fecaca}.penalty-row strong[data-v-f77d3d59]{color:#fca5a5}.penalty-hint[data-v-f77d3d59]{padding:7px 0 8px;border-bottom:1px solid rgba(248,250,252,.35);color:#fde68a;font-size:13px;line-height:1.3;text-align:right}.event-hint[data-v-f77d3d59]{padding-top:8px;color:#bfdbfe;font-size:13px;line-height:1.35;text-align:right}.color-dot[data-v-f77d3d59]{width:20px;height:20px;border:1px solid rgba(248,250,252,.92);border-radius:50%}.current-color[data-v-f77d3d59]{display:inline-flex;align-items:center;gap:8px;font-size:18px}.player-area[data-v-f77d3d59]{left:50%;width:920px;height:198px;transform:translate(-50%);bottom:88px;display:block}.player-info[data-v-f77d3d59]{position:absolute;left:0;bottom:-18px;display:grid;justify-items:center;gap:6px}.player-hand[data-v-f77d3d59]{position:relative;height:168px}.player-card[data-v-f77d3d59]{position:absolute;left:50%;bottom:0;width:var(--card-width);min-width:var(--card-width);padding:0 4px;transform:translate(calc(-50% + var(--fan-offset))) rotate(var(--rotation));transform-origin:center 140%;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.face-card[data-v-f77d3d59],.player-card[data-v-f77d3d59]{align-items:start;justify-items:start;padding:8px 0 0 8px;font-size:16px;font-weight:800;line-height:1}.face-card.image-fill[data-v-f77d3d59],.player-card.image-fill[data-v-f77d3d59]{align-items:stretch;justify-items:stretch;padding:0}.card-label[data-v-f77d3d59]{color:inherit}.image-fill .card-label[data-v-f77d3d59]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.player-card.is-selected[data-v-f77d3d59]{border-color:#fde68a;background-color:#1e40aff2;box-shadow:0 0 0 3px #fde68af2,0 14px 26px #0000006b;transform:translate(calc(-50% + var(--fan-offset))) rotate(var(--rotation)) translateY(-30px) scale(1.04)}.player-card.is-playable[data-v-f77d3d59]{border-color:#86efac;box-shadow:0 0 0 2px #86efacc7}.player-card.is-blocked-by-penalty[data-v-f77d3d59]{opacity:.58}.player-card.is-selected.is-playable[data-v-f77d3d59]{border-color:#fde68a;box-shadow:0 0 0 3px #fde68af2,0 14px 26px #0000006b}.action-panel[data-v-f77d3d59]{right:20px;bottom:60px;width:160px;display:grid;gap:14px}.action-btn[data-v-f77d3d59]{height:52px;border:1px solid rgba(248,250,252,.92);border-radius:8px;color:#f8fafc;background:#050210b8;font-size:18px}.action-btn[data-v-f77d3d59]:disabled{opacity:.45;cursor:not-allowed}.tool-btn[data-v-f77d3d59]:hover,.action-btn[data-v-f77d3d59]:hover:not(:disabled),.player-card[data-v-f77d3d59]:hover{background-color:#261c42e6}.player-card.is-selected[data-v-f77d3d59]:hover{background-color:#1e40aff2}.settings-backdrop[data-v-f77d3d59]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#0000006b}.settings-modal[data-v-f77d3d59]{width:min(340px,calc(100vw - 32px));display:grid;gap:18px;padding:18px;border:1px solid rgba(248,250,252,.8);border-radius:8px;color:#f8fafc;background:#080312f5;box-shadow:0 24px 60px #00000073}.color-picker-modal[data-v-f77d3d59]{width:min(360px,calc(100vw - 32px));display:grid;gap:14px;padding:18px;border:1px solid rgba(248,250,252,.8);border-radius:8px;color:#f8fafc;background:#080312f5;box-shadow:0 24px 60px #00000073}.target-picker-modal[data-v-f77d3d59]{width:min(380px,calc(100vw - 32px));display:grid;gap:14px;padding:18px;border:1px solid rgba(248,250,252,.8);border-radius:8px;color:#f8fafc;background:#080312f5;box-shadow:0 24px 60px #00000073}.game-over-modal[data-v-f77d3d59]{width:min(560px,calc(100vw - 32px));display:grid;gap:16px;padding:20px;border:1px solid rgba(248,250,252,.86);border-radius:8px;color:#f8fafc;background:#080312f5;box-shadow:0 24px 60px #00000073}.winner-title[data-v-f77d3d59]{min-height:56px;display:grid;place-items:center;border:1px solid rgba(248,250,252,.24);border-radius:8px;background:#f8fafc14;font-size:24px;text-align:center}.ranking-list[data-v-f77d3d59]{display:grid;gap:8px}.ranking-row[data-v-f77d3d59]{min-height:42px;display:grid;grid-template-columns:48px 88px minmax(0,1fr) 56px;align-items:center;gap:10px;padding:0 12px;border:1px solid rgba(248,250,252,.26);border-radius:8px;background:#f8fafc0f}.ranking-rank[data-v-f77d3d59],.trophy-change[data-v-f77d3d59]{white-space:nowrap}.trophy-change[data-v-f77d3d59]{color:#facc15}.ranking-row strong[data-v-f77d3d59]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-over-exit[data-v-f77d3d59]{width:100%}.settings-header[data-v-f77d3d59]{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-header h2[data-v-f77d3d59]{margin:0;font-size:20px}.settings-close[data-v-f77d3d59]{width:32px;height:32px;border:1px solid rgba(248,250,252,.7);border-radius:8px;color:#f8fafc;background:transparent;cursor:pointer;font-size:22px;line-height:1}.scale-field[data-v-f77d3d59]{display:grid;gap:8px;font-size:14px;font-weight:700}.scale-field input[data-v-f77d3d59]{height:38px;padding:0 10px;border:1px solid rgba(248,250,252,.72);border-radius:8px;color:#f8fafc;background:#ffffff14;font-size:16px}.scale-slider[data-v-f77d3d59]{width:100%}.danger-action-btn[data-v-f77d3d59]{min-height:42px;border:1px solid rgba(248,113,113,.82);border-radius:8px;color:#fecaca;background:#7f1d1d6b;cursor:pointer;font-size:15px;font-weight:800}.danger-action-btn[data-v-f77d3d59]:hover{border-color:#fecacaf2;background:#991b1b9e}.selected-wild-card[data-v-f77d3d59]{min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(248,250,252,.24);border-radius:6px;background:#f8fafc14;font-size:16px;font-weight:700}.color-choice-grid[data-v-f77d3d59]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.color-choice-btn[data-v-f77d3d59]{min-height:52px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(248,250,252,.62);border-radius:8px;color:#f8fafc;background:#050210b8;cursor:pointer;font-size:16px;font-weight:700}.color-choice-btn[data-v-f77d3d59]:hover{background:#261c42e6}.color-choice-dot[data-v-f77d3d59]{width:18px;height:18px;border:1px solid rgba(248,250,252,.82);border-radius:999px}.color-choice-btn.red .color-choice-dot[data-v-f77d3d59]{background:#dc2626}.color-choice-btn.blue .color-choice-dot[data-v-f77d3d59]{background:#2563eb}.color-choice-btn.yellow .color-choice-dot[data-v-f77d3d59]{background:#facc15}.color-choice-btn.green .color-choice-dot[data-v-f77d3d59]{background:#16a34a}.target-choice-list[data-v-f77d3d59]{display:grid;gap:10px}.empty-choice-hint[data-v-f77d3d59]{margin:0;padding:12px;border:1px solid rgba(248,250,252,.22);border-radius:8px;color:#cbd5e1;background:#f8fafc14;text-align:center}.target-choice-btn[data-v-f77d3d59]{min-height:54px;display:grid;grid-template-columns:56px 1fr 48px;align-items:center;gap:10px;padding:0 12px;border:1px solid rgba(248,250,252,.62);border-radius:8px;color:#f8fafc;background:#050210b8;cursor:pointer;font-size:15px;text-align:left}.target-choice-btn[data-v-f77d3d59]:hover{background:#261c42e6}.target-choice-btn strong[data-v-f77d3d59]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 900px){.game-board-page[data-v-f77d3d59]{min-height:760px}.room-panel[data-v-f77d3d59]{width:180px}.opponent-top[data-v-f77d3d59]{top:112px}.opponent-left[data-v-f77d3d59],.opponent-right[data-v-f77d3d59]{display:none}.table-center[data-v-f77d3d59]{top:280px;width:calc(100vw - 40px);min-width:0;grid-template-columns:var(--card-width) minmax(190px,230px) var(--card-width);gap:24px}.player-area[data-v-f77d3d59]{width:calc(100vw - 28px);grid-template-columns:108px 1fr;bottom:110px}.action-panel[data-v-f77d3d59]{left:14px;right:14px;bottom:24px;width:auto;grid-template-columns:repeat(3,1fr)}}.debug-page[data-v-f6c1d095]{min-height:100vh;padding:20px;color:#e5e7eb;background:#0f172a;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.debug-header[data-v-f6c1d095],.player-header[data-v-f6c1d095]{display:flex;align-items:start;justify-content:space-between;gap:16px}h1[data-v-f6c1d095],h2[data-v-f6c1d095],p[data-v-f6c1d095]{margin:0}.debug-header[data-v-f6c1d095]{margin-bottom:16px}.state-grid[data-v-f6c1d095]{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.discard-strip-panel[data-v-f6c1d095]{margin-bottom:14px}.discard-strip-header[data-v-f6c1d095]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.discard-strip[data-v-f6c1d095]{display:flex;flex-direction:row-reverse;gap:8px;overflow-x:auto;padding-bottom:4px}.discard-card-chip[data-v-f6c1d095]{flex:0 0 auto;padding:8px 10px;border:1px solid #475569;border-radius:999px;background:#020617;color:#bfdbfe;font-size:13px;white-space:nowrap}.panel[data-v-f6c1d095]{padding:14px;border:1px solid #334155;border-radius:8px;background:#111827}.player-panel.current[data-v-f6c1d095]{border-color:#facc15;box-shadow:0 0 0 2px #facc1538}.state-list[data-v-f6c1d095]{display:grid;gap:8px}.state-list div[data-v-f6c1d095]{display:flex;justify-content:space-between;gap:12px}.badge[data-v-f6c1d095],.flags span[data-v-f6c1d095]{display:inline-flex;padding:3px 7px;border:1px solid #64748b;border-radius:999px;color:#f8fafc;font-size:12px}.flags[data-v-f6c1d095]{min-height:24px;display:flex;gap:6px;margin:10px 0}.hand-list[data-v-f6c1d095]{display:flex;flex-wrap:wrap;gap:6px}.card-chip[data-v-f6c1d095]{padding:6px 8px;border:1px solid #475569;border-radius:6px;background:#020617;font-size:13px}.card-chip.playable[data-v-f6c1d095]{border-color:#86efac;color:#bbf7d0}.event-panel[data-v-f6c1d095]{margin-top:14px}.event-row[data-v-f6c1d095]{padding:10px 0;border-top:1px solid #334155}pre[data-v-f6c1d095]{overflow:auto;margin:8px 0 0;color:#bfdbfe;white-space:pre-wrap}.error-message[data-v-f6c1d095]{margin-bottom:12px;color:#fecaca}:root{color:#1f2937;background:#eef2f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}.auth-page{align-items:center;display:flex;min-height:100vh;padding:32px 16px}.auth-page.lobby-page{align-items:stretch;background:linear-gradient(135deg,#0f172aeb,#182e46c7),radial-gradient(circle at 18% 16%,rgba(34,197,94,.28),transparent 30%),radial-gradient(circle at 82% 78%,rgba(245,158,11,.24),transparent 32%),#102033;color:#f8fafc;padding:0}.auth-shell{background:#fff;border:1px solid #d8dee8;border-radius:8px;box-shadow:0 18px 48px #0f172a1f;margin:0 auto;max-width:440px;padding:28px;width:100%}.auth-shell.lobby-shell{background:transparent;border:0;border-radius:0;box-shadow:none;display:flex;margin:0;max-width:none;min-height:100vh;padding:0}.page-header{margin-bottom:20px}.lobby-shell>.page-header,.lobby-shell>.notice{display:none}h1,h2,p{margin-top:0}h1{font-size:28px;line-height:1.2;margin-bottom:0}h2{font-size:20px}.tabs{display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin-bottom:18px}.tabs button,.primary-action,.secondary-action{border:1px solid #c8d1df;border-radius:6px;cursor:pointer;min-height:42px}.tabs button{background:#f8fafc;color:#334155}.tabs button.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.auth-form{display:grid;gap:14px}label{color:#334155;display:grid;font-size:14px;gap:6px}input{border:1px solid #cbd5e1;border-radius:6px;min-height:42px;padding:10px 12px;width:100%}input:focus{border-color:#1d4ed8;outline:3px solid rgba(29,78,216,.14)}.password-control{display:grid;position:relative}.password-control input{padding-right:48px}.icon-button{align-items:center;background:transparent;border:0;color:#475569;cursor:pointer;display:flex;height:42px;justify-content:center;padding:0;position:absolute;right:0;top:0;width:42px}.icon-button svg{fill:none;height:20px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:20px}.icon-button:focus{outline:3px solid rgba(29,78,216,.14)}.primary-action{background:#1d4ed8;border-color:#1d4ed8;color:#fff;margin-top:4px}.secondary-action{background:#fff;color:#1f2937;padding:0 18px}button:disabled{cursor:not-allowed;opacity:.7}.notice{border-radius:6px;font-size:14px;margin-bottom:16px;padding:10px 12px}.notice.success{background:#ecfdf5;color:#047857}.notice.error{background:#fef2f2;color:#b91c1c}.success-panel{display:grid;gap:18px}.game-lobby{display:grid;flex:1;grid-template-rows:auto 1fr;min-height:100vh;overflow:hidden;padding:24px;position:relative}.test-game-page{display:grid;flex:1;grid-template-rows:auto 1fr auto;min-height:100vh;padding:24px;position:relative}.test-game-topbar{align-items:start;display:flex;gap:16px;justify-content:space-between;position:relative;z-index:1}.test-game-topbar h1{color:#fff;font-size:32px;margin:6px 0 0}.test-game-board{align-content:center;display:grid;gap:16px;grid-template-columns:repeat(4,minmax(136px,1fr));justify-content:center;margin:0 auto;max-width:860px;padding:64px 0;width:100%}.test-player{align-items:center;background:#ffffff21;border:1px solid rgba(255,255,255,.22);border-radius:8px;display:grid;gap:10px;min-height:190px;padding:16px;text-align:center}.test-player.ai{border-color:#f59e0bb8}.test-player strong{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-player span{color:#cbd5e1;font-size:13px;font-weight:700}.end-game-action{align-self:end;background:#dc2626;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#fff;cursor:pointer;font-size:18px;font-weight:900;justify-self:center;min-height:58px;padding:0 28px}.lobby-topbar{align-items:start;display:flex;gap:16px;justify-content:space-between;position:relative;z-index:1}.player-summary{align-items:center;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);border-radius:8px;display:flex;gap:12px;min-width:min(360px,100%);padding:12px}.player-avatar{align-items:center;background:#f59e0b;border-radius:6px;color:#111827;display:flex;flex:0 0 48px;font-size:22px;font-weight:800;height:48px;justify-content:center;line-height:1;width:48px}.player-info{display:grid;gap:4px;min-width:0}.player-name{color:#fff;font-size:18px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-trophies{align-items:center;color:#fde68a;display:flex;font-size:14px;font-weight:700;gap:6px}.room-code{color:#bfdbfe;font-size:13px;font-weight:800}.player-trophies svg{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:18px}.lobby-logout{background:#ffffff1a;border:1px solid rgba(255,255,255,.24);border-radius:6px;color:#f8fafc;cursor:pointer;min-height:40px;padding:0 14px}.lobby-stage{align-items:center;display:flex;justify-content:center;min-height:0}.lobby-stage.room-stage{align-content:center;display:grid;gap:16px;grid-template-columns:repeat(4,minmax(136px,1fr));justify-content:center;margin:0 auto;max-width:860px;padding:96px 0 124px;width:100%}.room-seat{align-items:center;background:#ffffff21;border:1px solid rgba(255,255,255,.22);border-radius:8px;display:grid;gap:12px;min-height:220px;padding:16px;text-align:center}.room-seat.ready{border-color:#22c55ed9;box-shadow:0 0 0 1px #22c55e47}.room-seat.ai{border-color:#f59e0bb8}.room-seat.empty{border-style:dashed;opacity:.68}.seat-avatar{align-items:center;align-self:end;background:#e2e8f0;border-radius:8px;color:#0f172a;display:flex;font-size:34px;font-weight:900;height:86px;justify-content:center;justify-self:center;width:86px}.room-seat.ready .seat-avatar{background:#22c55e}.room-seat.ai .seat-avatar{background:#f59e0b}.room-seat.empty .seat-avatar{background:transparent;border:2px dashed rgba(255,255,255,.42);color:#ffffff8a}.seat-details{display:grid;gap:4px;min-width:0}.seat-details strong{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-details span{color:#cbd5e1;font-size:13px;font-weight:700}.seat-controls{display:grid;gap:8px;grid-template-columns:1fr 1fr}.seat-controls button{background:#0f172a9e;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#f8fafc;cursor:pointer;min-height:34px}.stage-title{color:#ffffff24;font-size:clamp(48px,9vw,128px);font-weight:900;letter-spacing:0;line-height:1;text-align:center;text-transform:uppercase}.lobby-actions{bottom:28px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(120px,1fr));max-width:560px;position:absolute;right:28px;width:calc(100% - 56px)}.lobby-action{border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:800;min-height:56px;padding:0 16px}.lobby-action:disabled{opacity:.48}.create-room{background:#2563eb}.join-room{background:#0f766e}.start-match{background:#dc2626}.lobby-action:focus,.lobby-logout:focus{outline:3px solid rgba(255,255,255,.28);outline-offset:2px}.join-room-backdrop{align-items:center;background:#0f172ab8;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:16px;position:fixed;z-index:10}.join-room-dialog{background:#fff;border-radius:8px;box-shadow:0 24px 64px #0f172a52;color:#1f2937;display:grid;gap:16px;max-width:360px;padding:22px;width:100%}.dialog-actions{display:grid;gap:10px;grid-template-columns:1fr 1fr}.dialog-actions .primary-action,.dialog-actions .secondary-action{margin-top:0}dl{border-top:1px solid #e2e8f0;margin:0}dl div{border-bottom:1px solid #e2e8f0;display:grid;gap:4px;padding:12px 0}dt{color:#64748b;font-size:13px}dd{margin:0;overflow-wrap:anywhere}@media (max-width: 420px){.auth-shell{padding:20px}h1{font-size:24px}}@media (max-width: 720px){.game-lobby,.test-game-page{padding:16px}.test-game-topbar{align-items:stretch;flex-direction:column}.test-game-board{grid-template-columns:repeat(2,minmax(130px,1fr));padding:24px 0}.test-player{min-height:160px;padding:12px}.lobby-topbar{align-items:stretch;flex-direction:column}.player-summary{min-width:0;width:100%}.lobby-logout{align-self:flex-start}.lobby-actions{bottom:16px;grid-template-columns:1fr;right:16px;width:calc(100% - 32px)}.lobby-action{min-height:52px}.lobby-stage.room-stage{grid-template-columns:repeat(2,minmax(130px,1fr));padding:24px 0 204px}.room-seat{min-height:172px;padding:12px}.seat-avatar{height:64px;width:64px}}
