.loading-spinner[data-v-140df4b6]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.spinner[data-v-140df4b6]{width:48px;height:48px;border:4px solid #4f545c;border-top-color:#5865f2;border-radius:50%;animation:spin-140df4b6 1s linear infinite}@keyframes spin-140df4b6{to{transform:rotate(360deg)}}.message[data-v-140df4b6]{color:#b9bbbe;font-size:14px}.player-slot[data-v-c27170ba]{background-color:#2f3136;border-radius:12px;padding:20px;min-width:200px;display:flex;flex-direction:column;align-items:center;gap:12px;border:2px solid transparent;transition:border-color .2s,background-color .2s}.player-slot.ready[data-v-c27170ba]{border-color:#3ba55c;background-color:#3ba55c1a}.player-slot.empty[data-v-c27170ba]{border-style:dashed;border-color:#4f545c}.empty-content[data-v-c27170ba]{display:flex;flex-direction:column;align-items:center;gap:12px}.empty-avatar[data-v-c27170ba]{width:80px;height:80px;border-radius:50%;background-color:#202225;display:flex;align-items:center;justify-content:center}.empty-avatar .symbol[data-v-c27170ba]{font-size:36px;color:#4f545c;font-weight:700}.empty-text[data-v-c27170ba]{color:#72767d;font-size:14px}.btn-join[data-v-c27170ba]{background-color:#5865f2;color:#fff;border:none;padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-join[data-v-c27170ba]:hover{background-color:#4752c4}.player-content[data-v-c27170ba]{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.avatar-wrapper[data-v-c27170ba]{position:relative}.avatar[data-v-c27170ba]{width:80px;height:80px;border-radius:50%;border:3px solid #4f545c}.player-slot.ready .avatar[data-v-c27170ba]{border-color:#3ba55c}.symbol-badge[data-v-c27170ba]{position:absolute;bottom:-4px;right:-4px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff}.symbol-badge.symbol-o[data-v-c27170ba]{background-color:#5865f2}.symbol-badge.symbol-x[data-v-c27170ba]{background-color:#ed4245}.player-info[data-v-c27170ba]{display:flex;flex-direction:column;align-items:center;gap:4px}.username[data-v-c27170ba]{font-size:16px;font-weight:600;color:#fff}.status[data-v-c27170ba]{font-size:12px;color:#72767d}.status.ready[data-v-c27170ba]{color:#3ba55c}.my-badge[data-v-c27170ba]{position:absolute;top:-8px;right:-8px;background-color:#faa61a;color:#202225;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.self-buttons[data-v-c27170ba]{display:flex;gap:8px;width:100%}.btn-ready[data-v-c27170ba]{background-color:#3ba55c;color:#fff;border:none;padding:10px 16px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;flex:1}.btn-ready[data-v-c27170ba]:hover{background-color:#2d7d46}.btn-ready.is-ready[data-v-c27170ba]{background-color:#4f545c}.btn-ready.is-ready[data-v-c27170ba]:hover{background-color:#5d6269}.btn-leave[data-v-c27170ba]{background-color:#4f545c;color:#dcddde;border:none;padding:10px 12px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-leave[data-v-c27170ba]:hover{background-color:#5d6269}.btn-kick[data-v-c27170ba]{background-color:#ed4245;color:#fff;border:none;padding:8px 20px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-kick[data-v-c27170ba]:hover{background-color:#c73e41}.ready-timer[data-v-e68c0156]{width:100%;max-width:400px;display:flex;flex-direction:column;gap:8px}.timer-bar[data-v-e68c0156]{height:8px;background-color:#202225;border-radius:4px;overflow:hidden}.timer-fill[data-v-e68c0156]{height:100%;background-color:#3ba55c;transition:width .1s linear,background-color .3s;border-radius:4px}.ready-timer.warning .timer-fill[data-v-e68c0156]{background-color:#faa61a}.ready-timer.critical .timer-fill[data-v-e68c0156]{background-color:#ed4245;animation:pulse-bar-e68c0156 .5s ease-in-out infinite}.timer-text[data-v-e68c0156]{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;color:#b9bbbe}.ready-timer.warning .timer-text[data-v-e68c0156]{color:#faa61a}.ready-timer.critical .timer-text[data-v-e68c0156]{color:#ed4245;font-weight:600}.timer-icon[data-v-e68c0156]{font-size:16px}@keyframes pulse-bar-e68c0156{0%,to{opacity:1}50%{opacity:.6}}.lobby[data-v-e44d04e9]{display:flex;flex-direction:column;align-items:center;padding:24px;gap:24px;width:100%;max-width:600px;margin:0 auto}.lobby-title[data-v-e44d04e9]{font-size:28px;font-weight:700;color:#fff;margin:0}.lobby-subtitle[data-v-e44d04e9]{font-size:16px;color:#b9bbbe;margin:0}.players-area[data-v-e44d04e9]{display:flex;align-items:center;justify-content:center;gap:24px;width:100%}.vs-divider[data-v-e44d04e9]{display:flex;flex-direction:column;align-items:center;gap:8px}.vs-text[data-v-e44d04e9]{font-size:24px;font-weight:700;color:#72767d}.spectator-info[data-v-e44d04e9]{display:flex;align-items:center;gap:8px;padding:12px 20px;background-color:#2f3136;border-radius:8px;color:#b9bbbe;font-size:14px}.spectator-icon[data-v-e44d04e9]{font-size:18px}.start-countdown[data-v-e44d04e9]{padding:16px 32px;background:linear-gradient(135deg,#5865f2,#3ba55c);border-radius:8px;animation:pulse-e44d04e9 1s ease-in-out infinite}.countdown-text[data-v-e44d04e9]{color:#fff;font-size:18px;font-weight:600}@keyframes pulse-e44d04e9{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}@media(max-width:500px){.players-area[data-v-e44d04e9]{flex-direction:column}.vs-divider[data-v-e44d04e9]{transform:rotate(90deg)}.vs-text[data-v-e44d04e9]{transform:rotate(-90deg)}}.game-piece[data-v-81c65006]{position:relative;width:64px;height:64px;display:flex;align-items:center;justify-content:center}.piece-avatar[data-v-81c65006]{width:56px;height:56px;border-radius:50%;border:3px solid #4f545c;object-fit:cover}.symbol-o .piece-avatar[data-v-81c65006]{border-color:#5865f2}.symbol-x .piece-avatar[data-v-81c65006]{border-color:#ed4245}.symbol-badge[data-v-81c65006]{position:absolute;bottom:-2px;right:-2px;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;border:2px solid #36393f}.symbol-badge.badge-o[data-v-81c65006]{background-color:#5865f2}.symbol-badge.badge-x[data-v-81c65006]{background-color:#ed4245}.about-to-remove[data-v-81c65006]{transform:scale(.7);opacity:.5;transition:transform .3s,opacity .3s}.winning[data-v-81c65006]{animation:winning-pulse-81c65006 .8s ease-in-out infinite}.winning .piece-avatar[data-v-81c65006]{border-color:#3ba55c!important;box-shadow:0 0 15px #3ba55ccc}@keyframes winning-pulse-81c65006{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.game-cell[data-v-d299fe04]{width:100%;height:100%;background-color:#202225;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .1s}.game-cell.clickable[data-v-d299fe04]{cursor:pointer}.game-cell.clickable[data-v-d299fe04]:hover{background-color:#2f3136}.game-cell.clickable[data-v-d299fe04]:active{transform:scale(.95)}.game-cell.occupied[data-v-d299fe04]{cursor:default}.game-cell.winning[data-v-d299fe04]{background-color:#3ba55c4d;box-shadow:0 0 20px #3ba55c99,inset 0 0 10px #3ba55c4d;animation:winning-glow-d299fe04 1s ease-in-out infinite alternate}@keyframes winning-glow-d299fe04{0%{box-shadow:0 0 15px #3ba55c80,inset 0 0 8px #3ba55c33}to{box-shadow:0 0 25px #3ba55ccc,inset 0 0 12px #3ba55c66}}.game-board[data-v-658b4ebc]{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;width:300px;height:300px;background-color:#4f545c;padding:4px;border-radius:12px}.turn-timer[data-v-996d860a]{width:100%;max-width:300px;display:flex;flex-direction:column;gap:8px}.timer-bar[data-v-996d860a]{height:8px;background-color:#202225;border-radius:4px;overflow:hidden}.timer-fill[data-v-996d860a]{height:100%;background-color:#4f545c;transition:width .1s linear,background-color .3s;border-radius:4px}.turn-timer.my-turn .timer-fill[data-v-996d860a]{background-color:#3ba55c}.turn-timer.warning .timer-fill[data-v-996d860a]{background-color:#faa61a}.turn-timer.critical .timer-fill[data-v-996d860a]{background-color:#ed4245;animation:pulse-bar-996d860a .5s ease-in-out infinite}.timer-text[data-v-996d860a]{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px;color:#72767d}.turn-timer.my-turn .timer-text[data-v-996d860a]{color:#3ba55c;font-weight:500}.turn-timer.warning .timer-text[data-v-996d860a]{color:#faa61a}.turn-timer.critical .timer-text[data-v-996d860a]{color:#ed4245;font-weight:600}.timer-icon[data-v-996d860a]{font-size:16px}@keyframes pulse-bar-996d860a{0%,to{opacity:1}50%{opacity:.6}}.game-view[data-v-e99dba96]{display:flex;flex-direction:column;align-items:center;gap:20px;padding:20px}.game-status[data-v-e99dba96]{display:flex;align-items:center;gap:16px}.player-card[data-v-e99dba96]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;background-color:#2f3136;border-radius:8px;border:2px solid transparent;transition:border-color .2s,background-color .2s;min-width:100px}.player-card.active[data-v-e99dba96]{border-color:#3ba55c;background-color:#3ba55c1a}.status-avatar[data-v-e99dba96]{width:48px;height:48px;border-radius:50%;object-fit:cover}.status-avatar-placeholder[data-v-e99dba96]{width:48px;height:48px;border-radius:50%;background-color:#202225;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#4f545c}.player-name[data-v-e99dba96]{font-size:14px;font-weight:500;color:#dcddde;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.symbol[data-v-e99dba96]{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff}.symbol-o[data-v-e99dba96]{background-color:#5865f2}.symbol-x[data-v-e99dba96]{background-color:#ed4245}.turn-indicator[data-v-e99dba96]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:80px}.vs-text[data-v-e99dba96]{font-size:20px;font-weight:700;color:#4f545c}.your-turn-badge[data-v-e99dba96]{background-color:#3ba55c;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:600;animation:pulse-e99dba96 1s ease-in-out infinite}@keyframes pulse-e99dba96{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.spectator-notice[data-v-e99dba96]{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#2f3136;border-radius:8px;color:#b9bbbe;font-size:14px}.spectator-icon[data-v-e99dba96]{font-size:18px}.disconnect-warning[data-v-e99dba96]{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#faa81a26;border:1px solid #faa81a;border-radius:8px;color:#faa81a;font-size:14px;animation:pulse-warning-e99dba96 2s ease-in-out infinite}.disconnect-icon[data-v-e99dba96]{font-size:18px}@keyframes pulse-warning-e99dba96{0%,to{opacity:1}50%{opacity:.7}}.game-result[data-v-24c734b2]{display:flex;align-items:center;justify-content:center;padding:20px}.result-card[data-v-24c734b2]{background-color:#2f3136;border-radius:16px;padding:32px 48px;text-align:center;min-width:320px}.winner-section[data-v-24c734b2]{margin-bottom:24px}.winner-avatar-wrapper[data-v-24c734b2]{position:relative;display:inline-block;margin-bottom:16px}.winner-avatar[data-v-24c734b2]{width:96px;height:96px;border-radius:50%;border:4px solid #4f545c;object-fit:cover}.winner-avatar-wrapper.win .winner-avatar[data-v-24c734b2]{border-color:#3ba55c;box-shadow:0 0 20px #3ba55c66}.winner-avatar-wrapper.lose .winner-avatar[data-v-24c734b2]{border-color:#ed4245;opacity:.7}.winner-avatar-placeholder[data-v-24c734b2]{width:96px;height:96px;border-radius:50%;background-color:#202225;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;color:#4f545c}.winner-symbol[data-v-24c734b2]{position:absolute;bottom:-4px;right:-4px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;border:3px solid #2f3136}.winner-symbol.symbol-o[data-v-24c734b2]{background-color:#5865f2}.winner-symbol.symbol-x[data-v-24c734b2]{background-color:#ed4245}.result-title[data-v-24c734b2]{font-size:28px;font-weight:700;margin:0 0 8px;color:#fff}.result-title.win[data-v-24c734b2]{color:#3ba55c}.result-title.lose[data-v-24c734b2]{color:#ed4245}.result-reason[data-v-24c734b2]{color:#b9bbbe;margin:0;font-size:14px}.rematch-section[data-v-24c734b2]{border-top:1px solid #4f545c;padding-top:24px}.rematch-title[data-v-24c734b2]{color:#dcddde;font-weight:600;font-size:16px;margin:0 0 16px}.rematch-buttons[data-v-24c734b2]{display:flex;gap:12px;justify-content:center}.btn-accept[data-v-24c734b2],.btn-decline[data-v-24c734b2]{display:flex;align-items:center;gap:8px;padding:12px 28px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s}.btn-accept[data-v-24c734b2]{background-color:#3ba55c;color:#fff}.btn-accept[data-v-24c734b2]:hover{background-color:#2d7d46}.btn-decline[data-v-24c734b2]{background-color:#4f545c;color:#dcddde}.btn-decline[data-v-24c734b2]:hover{background-color:#5d6269}.btn-accept[data-v-24c734b2]:active,.btn-decline[data-v-24c734b2]:active{transform:scale(.95)}.btn-icon[data-v-24c734b2]{font-size:14px}.vote-status[data-v-24c734b2]{display:flex;flex-direction:column;gap:8px}.my-vote[data-v-24c734b2]{color:#b9bbbe;margin:0}.vote-yes[data-v-24c734b2]{color:#3ba55c}.vote-no[data-v-24c734b2]{color:#ed4245}.waiting-text[data-v-24c734b2]{color:#72767d;margin:0}.loading-dots[data-v-24c734b2]:after{content:"";animation:dots-24c734b2 1.5s steps(4,end) infinite}@keyframes dots-24c734b2{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.opponent-left-section[data-v-24c734b2]{border-top:1px solid #4f545c;padding-top:24px;display:flex;flex-direction:column;align-items:center;gap:16px}.opponent-left-text[data-v-24c734b2]{color:#72767d;margin:0;font-size:14px}.btn-leave-seat[data-v-24c734b2]{background-color:#4f545c;color:#dcddde;border:none;padding:12px 28px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-leave-seat[data-v-24c734b2]:hover{background-color:#5d6269}.spectator-section[data-v-24c734b2]{border-top:1px solid #4f545c;padding-top:24px}.spectator-text[data-v-24c734b2]{color:#72767d;margin:0 0 12px;font-size:14px}.votes-display[data-v-24c734b2]{display:flex;justify-content:center;gap:12px;font-size:14px}.vote-indicator[data-v-24c734b2]{padding:4px 12px;border-radius:4px;background-color:#202225}.vote-indicator.vote-pending[data-v-24c734b2]{color:#72767d}.vote-indicator.vote-yes[data-v-24c734b2]{color:#3ba55c}.vote-indicator.vote-no[data-v-24c734b2]{color:#ed4245}.vote-separator[data-v-24c734b2]{color:#4f545c}.app[data-v-056632fc]{width:100%;height:100%;display:flex;flex-direction:column;user-select:none;-webkit-user-select:none}.center-container[data-v-056632fc]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.landing-container[data-v-056632fc]{gap:16px;text-align:center}.landing-title[data-v-056632fc]{font-size:32px;font-weight:700;color:#fff;margin:0}.landing-subtitle[data-v-056632fc]{font-size:16px;color:#72767d;margin:0}.landing-desc[data-v-056632fc]{font-size:14px;color:#b9bbbe;margin:8px 0 16px}.btn-github[data-v-056632fc]{display:inline-flex;align-items:center;gap:8px;background-color:#24292e;color:#fff;padding:12px 24px;border-radius:8px;text-decoration:none;font-weight:500;transition:background-color .2s}.btn-github[data-v-056632fc]:hover{background-color:#2f363d}.landing-links[data-v-056632fc]{margin-top:24px;font-size:12px;color:#72767d}.landing-links a[data-v-056632fc]{color:#5865f2;text-decoration:none}.landing-links a[data-v-056632fc]:hover{text-decoration:underline}.landing-links .divider[data-v-056632fc]{margin:0 8px}.main-container[data-v-056632fc]{flex:1;display:flex;flex-direction:column}.header[data-v-056632fc]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#2f3136;border-bottom:1px solid #202225}.user-info[data-v-056632fc]{display:flex;align-items:center;gap:10px}.avatar[data-v-056632fc]{width:32px;height:32px;border-radius:50%}.username[data-v-056632fc]{font-weight:500}.role-badge[data-v-056632fc]{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.role-badge.player1[data-v-056632fc]{background-color:#5865f2;color:#fff}.role-badge.player2[data-v-056632fc]{background-color:#ed4245;color:#fff}.role-badge.spectator[data-v-056632fc]{background-color:#4f545c;color:#b9bbbe}.header-right[data-v-056632fc]{display:flex;align-items:center;gap:12px}.match-info[data-v-056632fc]{display:flex;align-items:center;gap:4px}.match-id[data-v-056632fc]{font-family:monospace;font-size:11px;color:#72767d;background-color:#202225;padding:4px 8px;border-radius:4px}.btn-clear[data-v-056632fc]{background:none;border:none;color:#72767d;cursor:pointer;padding:4px 6px;font-size:10px;border-radius:4px;transition:all .2s}.btn-clear[data-v-056632fc]:hover{background-color:#ed4245;color:#fff}.connection-status[data-v-056632fc]{display:flex;align-items:center;gap:6px;font-size:12px;color:#b9bbbe}.status-dot[data-v-056632fc]{width:8px;height:8px;border-radius:50%}.status-dot.connected[data-v-056632fc]{background-color:#3ba55c}.content[data-v-056632fc]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:20px}.reconnecting-overlay[data-v-056632fc]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.reconnecting-content[data-v-056632fc]{display:flex;flex-direction:column;align-items:center;gap:16px}.reconnecting-spinner[data-v-056632fc]{width:40px;height:40px;border:3px solid #4f545c;border-top-color:#5865f2;border-radius:50%;animation:spin-056632fc 1s linear infinite}@keyframes spin-056632fc{to{transform:rotate(360deg)}}.reconnecting-text[data-v-056632fc]{color:#fff;font-size:18px;font-weight:500;margin:0}.reconnecting-attempts[data-v-056632fc]{color:#b9bbbe;font-size:14px;margin:0}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#36393f;color:#dcddde}button{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:14px;transition:background-color .2s}button:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background-color:#5865f2;color:#fff}.btn-primary:hover:not(:disabled){background-color:#4752c4}.btn-success{background-color:#3ba55c;color:#fff}.btn-success:hover:not(:disabled){background-color:#2d8049}.btn-danger{background-color:#ed4245;color:#fff}.btn-danger:hover:not(:disabled){background-color:#c93b3e}
