#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}.lang-toggle{position:fixed;top:16px;right:16px;z-index:4000;border:none;background:#ffffffe6;color:#333;padding:6px 10px;border-radius:20px;cursor:pointer;box-shadow:0 2px 10px #00000026}.login-required-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;padding:24px;z-index:3000}.login-required-dialog{background:#fff;border-radius:16px;padding:32px;max-width:420px;width:100%;text-align:center;box-shadow:0 12px 40px #0000004d}.login-required-dialog h2{margin:0 0 16px;font-size:24px;color:#333}.login-required-dialog p{margin:0 0 32px;color:#555;line-height:1.5;font-size:16px}.login-required-btn{display:inline-block;padding:12px 24px;background:#4caf50;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s ease;min-width:200px}.login-required-btn:hover{background:#45a049}*{box-sizing:border-box}body{margin:0;padding:0;background:#fef6ec}.create-room[data-v-54a54ae2]{max-width:400px;margin:0 auto;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}h2[data-v-54a54ae2]{text-align:center;margin-bottom:20px;color:#333}.form-group[data-v-54a54ae2]{margin-bottom:15px}label[data-v-54a54ae2]{display:block;margin-bottom:5px;font-weight:700;color:#555}input[data-v-54a54ae2]{width:100%;padding:10px;border:2px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .3s ease}input[data-v-54a54ae2]:focus,select[data-v-54a54ae2]:focus{outline:none;border-color:#4caf50}.readonly-hint[data-v-54a54ae2]{margin-top:6px;font-size:12px;color:#777}.error-hint[data-v-54a54ae2]{margin-top:10px;padding:12px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px}.error-hint p[data-v-54a54ae2]{margin:0 0 10px;color:#856404;font-size:13px;font-weight:500}.go-login-button[data-v-54a54ae2]{width:100%;padding:8px 16px;background-color:#ffc107;color:#333;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:background-color .3s ease}.go-login-button[data-v-54a54ae2]:hover{background-color:#ffb300}select[data-v-54a54ae2]{width:100%;padding:10px;border:2px solid #ddd;border-radius:4px;font-size:16px;background:#fff;transition:border-color .3s ease}.timer-group.ai-mode select[data-v-54a54ae2]{cursor:not-allowed}.timer-group option[disabled][data-v-54a54ae2]{color:#999}.timer-hint[data-v-54a54ae2]{display:block;margin-top:6px;font-size:12px;color:#777}.create-button[data-v-54a54ae2]{width:100%;padding:12px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:700;cursor:pointer;transition:background-color .3s ease}.create-button[data-v-54a54ae2]:hover:not(:disabled){background-color:#45a049}.create-button[data-v-54a54ae2]:disabled{background-color:#ccc;cursor:not-allowed}.error-message[data-v-54a54ae2]{margin-top:10px;padding:10px;background-color:#ffebee;color:#c62828;border-radius:4px;text-align:center}.room-list[data-v-69eea4a9]{max-width:600px;margin:0 auto;padding:20px}h2[data-v-69eea4a9],h3[data-v-69eea4a9]{text-align:center;margin-bottom:20px;color:#333}.join-form[data-v-69eea4a9]{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:20px}.form-group[data-v-69eea4a9]{margin-bottom:15px}label[data-v-69eea4a9]{display:block;margin-bottom:5px;font-weight:700;color:#555}input[data-v-69eea4a9]{width:100%;padding:10px;border:2px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .3s ease}input[data-v-69eea4a9]:focus{outline:none;border-color:#4caf50}.join-button[data-v-69eea4a9]{width:100%;padding:12px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:700;cursor:pointer;transition:background-color .3s ease}.join-button[data-v-69eea4a9]:hover:not(:disabled){background-color:#1976d2}.join-button[data-v-69eea4a9]:disabled{background-color:#ccc;cursor:not-allowed}.error-message[data-v-69eea4a9]{margin-top:10px;padding:10px;background-color:#ffebee;color:#c62828;border-radius:4px;text-align:center}.readonly-hint[data-v-69eea4a9]{margin-top:6px;font-size:12px;color:#777}.error-hint[data-v-69eea4a9]{margin-top:10px;padding:12px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px}.error-hint p[data-v-69eea4a9]{margin:0 0 10px;color:#856404;font-size:13px;font-weight:500}.go-login-button[data-v-69eea4a9]{width:100%;padding:8px 16px;background-color:#ffc107;color:#333;border:none;border-radius:4px;font-size:14px;font-weight:700;cursor:pointer;transition:background-color .3s ease}.go-login-button[data-v-69eea4a9]:hover{background-color:#ffb300}.dev-login-panel[data-v-f0d522da]{position:fixed;bottom:20px;right:20px;background:#000c;padding:15px;border-radius:8px;z-index:9999;display:flex;gap:10px;flex-direction:column}.dev-login-panel h4[data-v-f0d522da]{color:#fff;margin:0;font-size:14px}.dev-btn[data-v-f0d522da]{background:#4caf50;color:#fff;border:none;padding:5px 10px;cursor:pointer;border-radius:4px}.dev-btn[data-v-f0d522da]:hover{background:#45a049}.home[data-v-f0d522da]{min-height:100vh;background:#fef6ec;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,Georgia,Times New Roman,serif}.portal-back[data-v-f0d522da]{position:fixed;top:20px;left:20px;z-index:1500;border:none;background:#ffffffe6;color:#333;padding:8px 16px;border-radius:20px;cursor:pointer;box-shadow:0 4px 12px #00000026;font-size:14px;font-weight:600}.portal-back[data-v-f0d522da]:hover{background:#fff}.main-content[data-v-f0d522da]{display:flex;min-height:100vh}.left-panel[data-v-f0d522da]{flex:1;padding:40px 40px 20px;display:flex;flex-direction:column;justify-content:flex-start;max-width:600px}.hero-section[data-v-f0d522da]{margin-bottom:30px}.main-title[data-v-f0d522da]{font-size:3.2rem;font-weight:700;color:#2c3e50;margin-bottom:15px;line-height:1.1;font-family:Georgia,serif}.hero-description[data-v-f0d522da]{font-size:1rem;color:#2c3e50;line-height:1.5;margin-bottom:25px;max-width:500px}.action-buttons[data-v-f0d522da]{display:flex;flex-direction:column;gap:15px}.action-btn[data-v-f0d522da]{display:flex;align-items:center;padding:15px;background:#fff;border:2px solid #E8E8E8;border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:left;box-shadow:0 2px 10px #0000000d}.action-btn[data-v-f0d522da]:hover{border-color:#77a9b8;transform:translateY(-2px);box-shadow:0 4px 20px #0000001a}.btn-icon[data-v-f0d522da]{font-size:1.8rem;margin-right:15px;min-width:50px}.btn-content h4[data-v-f0d522da]{margin:0 0 5px;color:#2c3e50;font-size:1.1rem;font-weight:600;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,sans-serif}.btn-content p[data-v-f0d522da]{margin:0;color:#666;font-size:.85rem;line-height:1.3;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,sans-serif}.right-panel[data-v-f0d522da]{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px 20px;position:relative}.chess-board-container[data-v-f0d522da]{position:relative;width:100%;max-width:500px}.chess-board[data-v-f0d522da]{background:#fef6ec;border-radius:12px;padding:20px;box-shadow:0 8px 30px #0000001a;position:relative;display:flex;justify-content:center;align-items:center;min-height:400px}.chessboard-image[data-v-f0d522da]{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;transition:transform .3s ease;will-change:transform;transform:translateZ(0)}.chessboard-image[data-v-f0d522da]:hover{transform:scale(1.02) translateZ(0)}.decorative-elements[data-v-f0d522da]{position:absolute;inset:0;pointer-events:none}.chess-pieces[data-v-f0d522da]{position:absolute;top:20px;right:20px;display:flex;flex-direction:column;gap:10px}.piece[data-v-f0d522da]{width:40px;height:40px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 15px #0000001a;animation:float-f0d522da 3s ease-in-out infinite}.piece-king[data-v-f0d522da]{animation-delay:0s}.piece-queen[data-v-f0d522da]{animation-delay:1s}.piece-rook[data-v-f0d522da]{animation-delay:2s}@keyframes float-f0d522da{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.geometric-shapes[data-v-f0d522da]{position:absolute;top:20px;left:20px}.shape[data-v-f0d522da]{position:absolute;border-radius:50%}.shape-circle[data-v-f0d522da]{width:60px;height:60px;background:#f0906c;top:0;left:0;animation:pulse-f0d522da 2s ease-in-out infinite}.shape-square[data-v-f0d522da]{width:30px;height:30px;background:#a8d9c7;top:40px;left:40px;border-radius:4px;animation:rotate-f0d522da 4s linear infinite}@keyframes pulse-f0d522da{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.1);opacity:1}}@keyframes rotate-f0d522da{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay[data-v-f0d522da]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal[data-v-f0d522da]{background:#fff;border-radius:12px;max-width:90vw;max-height:90vh;overflow:auto;box-shadow:0 20px 60px #0000004d}@media (max-width: 1024px){.main-content[data-v-f0d522da]{flex-direction:column}.right-panel[data-v-f0d522da]{order:-1;padding:20px}.left-panel[data-v-f0d522da]{padding:40px 20px}.main-title[data-v-f0d522da]{font-size:3rem}}@media (max-width: 768px){.main-title[data-v-f0d522da]{font-size:2.5rem}.action-buttons[data-v-f0d522da]{gap:15px}.action-btn[data-v-f0d522da]{padding:15px}.btn-icon[data-v-f0d522da]{font-size:1.5rem;margin-right:15px}.chessboard-image[data-v-f0d522da]{max-width:90%}}.game-container{height:100vh;background:#fef6ec;display:flex;flex-direction:column;overflow:hidden;margin:-2rem;padding:0;box-sizing:border-box}.game-header{background:#fff;padding:12px 20px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;gap:15px;order:2;flex-shrink:0;box-sizing:border-box;max-width:1600px;margin:0 auto;width:100%}.room-info h2{margin:0 0 8px;color:#333;font-size:20px}.room-info-container{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}.room-id,.invite-link{display:flex;align-items:center;justify-content:space-between;font-size:17px;gap:20px}.copy-btn{padding:8px 14px;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:15px;transition:background-color .3s ease}.copy-btn:hover{background:#1976d2}.invite-btn{background:#4caf50}.invite-btn:hover{background:#45a049}.tooltip-container{position:relative;display:inline-block}.tooltip{position:absolute;top:50%;left:100%;transform:translateY(-50%);background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000;margin-left:8px}.tooltip:after{content:"";position:absolute;top:50%;right:100%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#000000e6}.tooltip-container:hover .tooltip{opacity:1;visibility:visible}.players{display:flex;flex-direction:column;gap:12px}.player-row{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-radius:20px;background:#f0f2f5;transition:all .3s ease;font-size:15px;min-width:320px}.player-row.current-player{background:#e3f2fd;border:2px solid #2196F3}.player-row.winner{background:#4caf504d;border:2px solid rgba(76,175,80,.6)}.player-row.loser{background:#f443364d;border:2px solid rgba(244,67,54,.6)}.player-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.captured-pieces{display:flex;align-items:center;gap:0;white-space:nowrap;flex:0 0 auto;max-width:250px}.captured-piece{width:21px;height:21px;object-fit:contain;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.3));transition:all .2s ease;margin-left:-6px}.captured-piece:first-child{margin-left:0}.captured-piece:hover{transform:scale(1.1)}.player-color{width:14px;height:14px;border-radius:50%;border:2px solid #333}.player-color.white{background:#fff}.player-color.black{background:#000}.turn-indicator{font-size:15px;color:#2196f3;font-weight:700}.game-controls{display:flex;gap:10px}.sound-button{padding:12px 20px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.sound-button:hover{background:#45a049}.sound-button.sound-off{background:#757575}.sound-button.sound-off:hover{background:#616161}.leave-button{padding:12px 20px;background:#f44336;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.leave-button:hover{background:#d32f2f}.undo-button{padding:12px 20px;background:#ff9800;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;margin-right:10px;font-size:16px}.undo-button:hover:not(:disabled){background:#f57c00}.undo-button:disabled{background:#ccc;cursor:not-allowed}.surrender-button{padding:12px 20px;background:#ff5722;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;margin-right:10px;font-size:16px}.surrender-button:hover{background:#e64a19}.download-button{padding:12px 20px;background:#607d8b;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.download-button:hover{background:#546e7a}.download-button.secondary{background:#455a64}.download-button.secondary:hover{background:#37474f}.game-content{flex:1;display:flex;gap:10px;padding:10px;max-width:1600px;margin:0 auto;width:100%;min-height:0;overflow:hidden;order:1;box-sizing:border-box}.chess-container{flex:1;display:flex;justify-content:center;align-items:center;min-height:0}.game-sidebar{width:280px;display:flex;flex-direction:column;gap:10px;overflow:hidden;box-sizing:border-box;flex-shrink:0}.chat-sidebar{width:280px;display:flex;flex-direction:column;flex-shrink:0;box-sizing:border-box}.game-status,.move-history{background:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;box-sizing:border-box;flex-shrink:0}.game-status h3,.move-history h3{margin:0 0 8px;color:#333;font-size:16px}.status-item{display:flex;justify-content:space-between;margin-bottom:6px;padding:6px 0;border-bottom:1px solid #eee;font-size:13px}.status-item:last-child{border-bottom:none;margin-bottom:0}.label{font-weight:700;color:#666}.value{color:#333}.current-player-indicator{display:flex;align-items:center;gap:8px}.turn-dot{width:16px;height:16px;border-radius:50%;transition:all .3s ease}.turn-dot.my-turn{background-color:#478058;box-shadow:0 0 8px #47805866}.turn-dot.opponent-turn{background-color:#999}.moves-list{max-height:180px;overflow-y:auto;flex:1;min-height:0}.move-item{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid #eee;font-size:12px}.move-item:last-child{border-bottom:none}.move-header{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:2px solid #ddd;font-weight:700;font-size:12px;color:#333;background:#f8f9fa;border-radius:6px 6px 0 0;position:sticky;top:0;z-index:10}.header-round{font-weight:700;color:#333;min-width:35px;font-size:14px}.header-white,.header-black{flex:1;text-align:center;font-size:14px}.replay-controls{display:flex;justify-content:center;gap:5px;padding:6px;background:#f8f9fa;border-top:1px solid #ddd;border-radius:0 0 8px 8px;margin-top:6px}.replay-btn{width:35px;height:35px;border:none;border-radius:50%;background:#6c757d;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.replay-btn:hover:not(:disabled){background:#5a6268;transform:scale(1.05)}.replay-btn:disabled{background:#adb5bd;cursor:not-allowed;transform:none}.replay-btn.play-btn{background:#28a745}.replay-btn.play-btn:hover:not(:disabled){background:#218838}.replay-btn.play-btn.playing{background:#dc3545}.replay-btn.play-btn.playing:hover:not(:disabled){background:#c82333}.replay-btn.notification-btn{background:#adb5bd;cursor:default;pointer-events:none}.replay-btn.notification-btn.has-new-move{animation:shake-notification .6s ease-in-out}@keyframes shake-notification{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.replay-icon{width:18px;height:18px;filter:brightness(0) invert(1);transition:all .2s ease}.replay-icon-notification{width:28px;height:28px;transition:all .2s ease}.replay-btn:hover:not(:disabled) .replay-icon{transform:scale(1.1)}.replay-btn:disabled .replay-icon{opacity:.5}.move-number{font-weight:700;color:#666;min-width:35px;font-size:14px}.move-columns{display:flex;flex:1;gap:8px}.move-column{flex:1;display:flex;align-items:center;justify-content:center;min-height:20px}.move-notation{font-family:monospace;font-size:14px;color:#495057;font-weight:500}.move-hidden{color:#adb5bd;font-size:16px;font-weight:700}.move-player{font-size:14px;color:#666;padding:4px 10px;background:#f0f0f0;border-radius:10px}@media (max-width: 768px){.game-content{flex-direction:column;padding:10px;overflow-y:auto;-webkit-overflow-scrolling:touch}.game-sidebar{width:100%;padding-bottom:20px}.moves-list{max-height:120px}.chat-sidebar{width:100%}.game-header{flex-direction:column;gap:10px;text-align:center;padding:10px}.players{justify-content:center}.chess-container{align-items:center;margin-bottom:10px}}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.dialog-content{background:#fff;padding:40px;border-radius:12px;box-shadow:0 4px 30px #0000004d;max-width:500px;width:90%;text-align:center}.dialog-content h3{margin:0 0 20px;color:#333;font-size:26px;font-weight:600}.victory-title{color:#4caf50!important;text-shadow:0 0 10px rgba(76,175,80,.3)}.defeat-title{color:#f44336!important;text-shadow:0 0 10px rgba(244,67,54,.3)}.dialog-content p{margin:0 0 30px;color:#666;line-height:1.6;font-size:18px}.dialog-buttons{display:flex;gap:15px;justify-content:center}.dialog-buttons button{padding:14px 28px;border:none;border-radius:6px;cursor:pointer;font-size:17px;font-weight:500;transition:all .3s ease;min-width:110px}.confirm-btn{background:#4caf50;color:#fff}.confirm-btn:hover{background:#45a049}.cancel-btn{background:#f44336;color:#fff}.cancel-btn:hover{background:#da190b}.accept-btn{background:#4caf50;color:#fff}.accept-btn:hover{background:#45a049}.reject-btn{background:#f44336;color:#fff}.reject-btn:hover{background:#da190b}.ok-btn{background:#2196f3;color:#fff}.ok-btn:hover{background:#1976d2}.game-container{position:relative;transition:all .3s ease}.game-container:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:500;opacity:0;transition:opacity .3s ease}.game-container.victory-flash:before{background:#4caf5099;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1;animation:victoryPulse 2s ease-in-out}.game-container.defeat-flash:before{background:#f4433699;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:1;animation:defeatPulse 2s ease-in-out}@keyframes victoryPulse{0%{opacity:0;background:#4caf5000}25%{opacity:1;background:#4caf50b3}50%{opacity:1;background:#4caf5099}75%{opacity:1;background:#4caf5080}to{opacity:0;background:#4caf5000}}@keyframes defeatPulse{0%{opacity:0;background:#f4433600}25%{opacity:1;background:#f44336b3}50%{opacity:1;background:#f4433699}75%{opacity:1;background:#f4433680}to{opacity:0;background:#f4433600}}.chess-piece[data-v-4b28ba4b]{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.piece-image[data-v-4b28ba4b]{width:87%;height:87%;object-fit:contain;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.3))}.piece-white .piece-image[data-v-4b28ba4b]{filter:drop-shadow(1px 1px 2px rgba(0,0,0,.5))}.piece-black .piece-image[data-v-4b28ba4b]{filter:drop-shadow(1px 1px 2px rgba(255,255,255,.3))}.piece-hidden .piece-image[data-v-4b28ba4b]{opacity:0;filter:grayscale(100%);z-index:0}.piece-counter-rotated[data-v-4b28ba4b]{transform:rotate(180deg)}.chess-piece[data-v-4b28ba4b]:hover:not(.piece-hidden){transform:scale(1.1)}.piece-counter-rotated[data-v-4b28ba4b]:hover:not(.piece-hidden){transform:rotate(180deg) scale(1.1)}@media (max-width: 768px){.piece-image[data-v-4b28ba4b]{width:88%;height:88%}}.chess-board[data-v-8a2b3282]{display:flex;justify-content:center;align-items:center;padding:20px;width:100%;height:100%;box-sizing:border-box}.board-container[data-v-8a2b3282]{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:0;border:2px solid #7a8a9a;box-shadow:0 4px 8px #9ca8b84d;width:min(63vh,81vw,540px);height:min(63vh,81vw,540px);max-width:540px;max-height:540px;transition:transform .6s ease;touch-action:none}.board-container.board-rotated[data-v-8a2b3282]{transform:rotate(180deg)}.board-row[data-v-8a2b3282]{display:contents}.square[data-v-8a2b3282]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:relative;cursor:pointer;transition:all .2s ease;aspect-ratio:1}.square-non-clickable[data-v-8a2b3282]{cursor:default}.square-light[data-v-8a2b3282]{background-color:#f0d9b5}.square-dark[data-v-8a2b3282]{background-color:#b58863}.square-selected[data-v-8a2b3282]{background-color:#a9bd70!important}.square-highlighted[data-v-8a2b3282]{background-color:gold!important;box-shadow:inset 0 0 0 3px orange}.square-possible[data-v-8a2b3282]:after{content:"";position:absolute;width:20px;height:20px;background-color:#1e88e5e6;border-radius:50%;opacity:.7}.square-last-move[data-v-8a2b3282]{background-color:#ffe4b5!important}.square-hidden[data-v-8a2b3282]{background-color:#505050cc!important;position:relative}.square-hidden[data-v-8a2b3282]:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(120,120,120,.4) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(100,100,100,.3) 0%,transparent 40%),radial-gradient(circle at 20% 60%,rgba(90,90,90,.25) 0%,transparent 35%);animation:fogFloat-8a2b3282 4s ease-in-out infinite;z-index:1}@keyframes fogFloat-8a2b3282{0%,to{transform:translateY(0) rotate(0);opacity:.6}50%{transform:translateY(-2px) rotate(.5deg);opacity:.8}}.square-clickable[data-v-8a2b3282]:hover:not(.square-hidden){background-color:#e6e6fa!important}@media (max-width: 768px){.chess-board[data-v-8a2b3282]{padding:10px}.board-container[data-v-8a2b3282]{width:min(72vh,85.5vw,450px);height:min(72vh,85.5vw,450px)}}.replay-btn.notification-btn[data-v-94b08b08]{background:#adb5bd;cursor:default;pointer-events:none;width:50px;height:50px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center}.replay-btn.notification-btn.has-new-move[data-v-94b08b08]{animation:shake-notification-94b08b08 .6s ease-in-out}@keyframes shake-notification-94b08b08{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.replay-icon[data-v-94b08b08]{width:24px;height:24px;filter:brightness(0) invert(1);transition:all .2s ease}.replay-icon-notification[data-v-94b08b08]{width:28px;height:28px;transition:all .2s ease}.replay-controls[data-v-f908fb60]{display:flex;justify-content:center;gap:6px;padding:10px;background:#f8f9fa;border-top:1px solid #ddd;border-radius:0 0 8px 8px;margin-top:8px}.replay-btn[data-v-f908fb60]{width:42px;height:42px;border:none;border-radius:50%;background:#6c757d;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.replay-btn[data-v-f908fb60]:hover:not(:disabled){background:#5a6268;transform:scale(1.05)}.replay-btn[data-v-f908fb60]:disabled{background:#adb5bd;cursor:not-allowed;transform:none}.replay-icon[data-v-f908fb60]{width:20px;height:20px;filter:brightness(0) invert(1);transition:all .2s ease}.replay-btn:hover:not(:disabled) .replay-icon[data-v-f908fb60]{transform:scale(1.1)}.move-history[data-v-68f1ece7]{background:#fff;padding:14px;border-radius:8px;box-shadow:0 2px 4px #0000001a}h3[data-v-68f1ece7]{margin:0 0 12px;color:#333;font-size:18px}.moves-list[data-v-68f1ece7]{max-height:250px;overflow-y:auto}.move-header[data-v-68f1ece7]{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:2px solid #ddd;font-weight:700;font-size:13px;color:#333;background:#f8f9fa;border-radius:6px 6px 0 0;position:sticky;top:0;z-index:10}.header-round[data-v-68f1ece7]{min-width:30px;font-weight:700;color:#333;font-size:13px}.header-white[data-v-68f1ece7],.header-black[data-v-68f1ece7]{flex:1;text-align:center;font-size:13px}.move-item[data-v-68f1ece7]{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #eee;font-size:13px}.move-item[data-v-68f1ece7]:last-child{border-bottom:none}.move-number[data-v-68f1ece7]{font-weight:700;color:#666;min-width:30px;font-size:13px}.move-columns[data-v-68f1ece7]{display:flex;flex:1;gap:6px}.move-column[data-v-68f1ece7]{flex:1;display:flex;align-items:center;justify-content:center;min-height:18px}.move-notation[data-v-68f1ece7]{font-family:monospace;font-size:13px;color:#495057;font-weight:500}.move-hidden[data-v-68f1ece7]{color:#adb5bd;font-size:14px;font-weight:700}.dialog-overlay[data-v-4555f99b]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.dialog-content[data-v-4555f99b]{background:#fff;padding:40px;border-radius:12px;box-shadow:0 4px 30px #0000004d;max-width:500px;width:90%;text-align:center}.dialog-content h3[data-v-4555f99b]{margin:0 0 20px;color:#333;font-size:26px;font-weight:600}.dialog-content p[data-v-4555f99b]{margin:0 0 30px;color:#666;line-height:1.6;font-size:18px}.dialog-buttons[data-v-4555f99b]{display:flex;gap:15px;justify-content:center}.dialog-buttons button[data-v-4555f99b]{padding:14px 28px;border:none;border-radius:6px;cursor:pointer;font-size:17px;font-weight:500;transition:all .3s ease;min-width:110px}.confirm-btn[data-v-4555f99b]{background:#4caf50;color:#fff}.confirm-btn[data-v-4555f99b]:hover{background:#45a049}.cancel-btn[data-v-4555f99b]{background:#f44336;color:#fff}.cancel-btn[data-v-4555f99b]:hover{background:#da190b}.accept-btn[data-v-4555f99b]{background:#4caf50;color:#fff}.accept-btn[data-v-4555f99b]:hover{background:#45a049}.reject-btn[data-v-4555f99b]{background:#f44336;color:#fff}.reject-btn[data-v-4555f99b]:hover{background:#da190b}.ok-btn[data-v-4555f99b]{background:#2196f3;color:#fff}.ok-btn[data-v-4555f99b]:hover{background:#1976d2}.game-controls[data-v-31caaa48]{display:flex;flex-wrap:wrap;gap:10px}.undo-button[data-v-31caaa48]{padding:12px 20px;background:#ff9800;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;margin-right:10px;font-size:16px}.undo-button[data-v-31caaa48]:hover:not(:disabled){background:#f57c00}.undo-button[data-v-31caaa48]:disabled{background:#ccc;cursor:not-allowed}.surrender-button[data-v-31caaa48]{padding:12px 20px;background:#ff5722;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;margin-right:10px;font-size:16px}.surrender-button[data-v-31caaa48]:hover{background:#e64a19}.draw-button[data-v-31caaa48]{padding:12px 20px;background:#3f4f65;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;margin-right:10px;font-size:16px}.draw-button[data-v-31caaa48]:hover{background:#2d3a4a}.download-button[data-v-31caaa48]{padding:12px 20px;background:#607d8b;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.download-button[data-v-31caaa48]:hover{background:#546e7a}.download-button.secondary[data-v-31caaa48]{background:#455a64}.download-button.secondary[data-v-31caaa48]:hover{background:#37474f}.sound-button[data-v-31caaa48]{padding:12px 20px;background:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.sound-button[data-v-31caaa48]:hover{background:#45a049}.sound-button.sound-off[data-v-31caaa48]{background:#757575}.sound-button.sound-off[data-v-31caaa48]:hover{background:#616161}.leave-button[data-v-31caaa48]{padding:12px 20px;background:#f44336;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.leave-button[data-v-31caaa48]:hover{background:#d32f2f}.switch-button[data-v-31caaa48]{padding:12px 20px;background:#3949ab;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.switch-button[data-v-31caaa48]:hover{background:#303f9f}.vision-button[data-v-31caaa48]{padding:12px 20px;background:#6a1b9a;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s ease;font-size:16px}.vision-button[data-v-31caaa48]:hover{background:#4a148c}.game-status[data-v-c1c74118]{background:#fff;padding:14px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.game-status h3[data-v-c1c74118]{margin:0 0 12px;color:#333;font-size:18px}.status-item[data-v-c1c74118]{display:flex;justify-content:space-between;margin-bottom:8px;padding:8px 0;border-bottom:1px solid #eee;font-size:14px}.status-item[data-v-c1c74118]:last-child{border-bottom:none;margin-bottom:0}.label[data-v-c1c74118]{font-weight:700;color:#666}.value[data-v-c1c74118]{color:#333}.current-player-indicator[data-v-c1c74118]{display:flex;align-items:center;gap:8px}.turn-dot[data-v-c1c74118]{width:16px;height:16px;border-radius:50%;transition:all .3s ease}.turn-dot.my-turn[data-v-c1c74118]{background-color:#478058;box-shadow:0 0 8px #47805866}.turn-dot.opponent-turn[data-v-c1c74118]{background-color:#999}.game-header[data-v-bcd896bf]{background:#fff;padding:20px;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;max-width:1600px;margin:0 auto;width:100%;box-sizing:border-box}.room-info h2[data-v-bcd896bf]{margin:0 0 15px;color:#333;font-size:26px}.room-info-container[data-v-bcd896bf]{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.room-id[data-v-bcd896bf],.invite-link[data-v-bcd896bf]{display:flex;align-items:center;justify-content:space-between;font-size:17px;gap:20px}.copy-btn[data-v-bcd896bf]{padding:8px 14px;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:15px;transition:background-color .3s ease}.copy-btn[data-v-bcd896bf]:hover{background:#1976d2}.invite-btn[data-v-bcd896bf]{background:#4caf50}.invite-btn[data-v-bcd896bf]:hover{background:#45a049}.tooltip-container[data-v-bcd896bf]{position:relative;display:inline-block}.tooltip[data-v-bcd896bf]{position:absolute;top:50%;left:100%;transform:translateY(-50%);background:#000000e6;color:#fff;padding:8px 12px;border-radius:6px;font-size:13px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000;margin-left:8px}.tooltip[data-v-bcd896bf]:after{content:"";position:absolute;top:50%;right:100%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#000000e6}.tooltip-container:hover .tooltip[data-v-bcd896bf]{opacity:1;visibility:visible}.players[data-v-bcd896bf]{display:flex;flex-direction:column;gap:12px}.player-row[data-v-bcd896bf]{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-radius:20px;background:#f0f2f5;transition:all .3s ease;font-size:15px;min-width:320px}.player-row.current-player[data-v-bcd896bf]{background:#e3f2fd;border:2px solid #2196F3}.player-row.winner[data-v-bcd896bf]{background:#4caf504d;border:2px solid rgba(76,175,80,.6)}.player-row.loser[data-v-bcd896bf]{background:#f443364d;border:2px solid rgba(244,67,54,.6)}.player-info[data-v-bcd896bf]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.captured-pieces[data-v-bcd896bf]{display:flex;align-items:center;gap:0;white-space:nowrap;flex:0 0 auto;max-width:250px}.captured-piece[data-v-bcd896bf]{width:21px;height:21px;object-fit:contain;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.3));transition:all .2s ease;margin-left:-6px}.captured-piece[data-v-bcd896bf]:first-child{margin-left:0}.captured-piece[data-v-bcd896bf]:hover{transform:scale(1.1)}.player-color[data-v-bcd896bf]{width:14px;height:14px;border-radius:50%;border:2px solid #333}.player-color.white[data-v-bcd896bf]{background:#fff}.player-color.black[data-v-bcd896bf]{background:#000}.actions-slot[data-v-bcd896bf]{display:flex;align-items:center}.dialog-overlay[data-v-9a649b7f]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.dialog-content[data-v-9a649b7f]{background:#fff;padding:40px;border-radius:12px;box-shadow:0 4px 30px #0000004d;max-width:500px;width:90%;text-align:center}.dialog-content h3[data-v-9a649b7f]{margin:0 0 20px;color:#333;font-size:26px;font-weight:600}.victory-title[data-v-9a649b7f]{color:#4caf50!important;text-shadow:0 0 10px rgba(76,175,80,.3)}.defeat-title[data-v-9a649b7f]{color:#f44336!important;text-shadow:0 0 10px rgba(244,67,54,.3)}.dialog-content p[data-v-9a649b7f]{margin:0 0 30px;color:#666;line-height:1.6;font-size:18px}.dialog-buttons[data-v-9a649b7f]{display:flex;gap:15px;justify-content:center}.dialog-buttons button[data-v-9a649b7f]{padding:14px 28px;border:none;border-radius:6px;cursor:pointer;font-size:17px;font-weight:500;transition:all .3s ease;min-width:110px}.ok-btn[data-v-9a649b7f]{background:#2196f3;color:#fff}.ok-btn[data-v-9a649b7f]:hover{background:#1976d2}.side-chat[data-v-61d572e9]{width:280px;height:100%;display:flex;flex-direction:column;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;box-sizing:border-box}.chat-header[data-v-61d572e9]{padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;flex-shrink:0}.chat-header h3[data-v-61d572e9]{margin:0;font-size:16px;color:#333}.chat-messages[data-v-61d572e9]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px;min-height:0}.chat-empty[data-v-61d572e9]{text-align:center;color:#999;padding:20px;font-size:14px}.chat-message[data-v-61d572e9]{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:#f0f2f5;border-radius:8px;width:85%;box-sizing:border-box}.chat-message.own-message[data-v-61d572e9]{align-self:flex-end;background:#e3f2fd}.message-author[data-v-61d572e9]{font-size:12px;font-weight:700;color:#666}.chat-message:not(.own-message) .message-author[data-v-61d572e9]{text-align:left}.chat-message.own-message .message-author[data-v-61d572e9]{text-align:right}.message-content[data-v-61d572e9]{font-size:14px;color:#333;word-wrap:break-word;white-space:pre-wrap;word-break:break-word;line-height:1.4;text-align:left}.message-time[data-v-61d572e9]{font-size:11px;color:#999;align-self:flex-end}.chat-input-container[data-v-61d572e9]{display:flex;gap:8px;padding:12px;border-top:1px solid #e0e0e0;flex-shrink:0;align-items:flex-end}.chat-input[data-v-61d572e9]{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;resize:none;overflow-y:auto;min-height:36px;max-height:120px;font-family:inherit;line-height:1.4}.chat-input[data-v-61d572e9]:focus{border-color:#2196f3}.chat-send-btn[data-v-61d572e9]{padding:0 10px;background:#2196f3;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;white-space:nowrap;transition:background-color .3s ease;flex-shrink:0;height:36px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.chat-send-btn[data-v-61d572e9]:hover{background:#1976d2}.chat-send-btn[data-v-61d572e9]:disabled{background:#b0bec5;cursor:not-allowed}.chat-readonly-hint[data-v-61d572e9]{padding:0 12px 10px;color:#8d6e63;font-size:12px}.promotion-overlay[data-v-cef01b11]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1200}.promotion-dialog[data-v-cef01b11]{background:#fff;border-radius:12px;padding:20px 22px;width:360px;max-width:92vw;box-shadow:0 10px 30px #00000040;text-align:center}.promotion-dialog h3[data-v-cef01b11]{margin:0 0 14px;font-size:18px}.promotion-grid[data-v-cef01b11]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.promotion-item[data-v-cef01b11]{border:none;background:transparent;padding:8px;border-radius:8px;cursor:pointer;transition:transform .15s ease,background .15s ease}.promotion-item[data-v-cef01b11]:hover{transform:translateY(-2px);background:#f3f5f7}.promotion-item img[data-v-cef01b11]{width:48px;height:48px;-webkit-user-select:none;user-select:none;pointer-events:none;display:block}.promotion-cancel[data-v-cef01b11]{width:100%;border:none;background:#e0e0e0;padding:10px;border-radius:8px;cursor:pointer}.promotion-cancel[data-v-cef01b11]:hover{background:#d5d5d5}.timer-display[data-v-cef01b11]{position:fixed;top:50%;right:20px;transform:translateY(-50%);z-index:100}.timer-circle[data-v-cef01b11]{width:130px;height:130px;border-radius:50%;background:#fffffff2;border:5px solid #ddd;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 8px 20px #00000038}.timer-circle.timer-warning[data-v-cef01b11]{border-color:#ff9800;background:#ff9800e6}.timer-circle.timer-danger[data-v-cef01b11]{border-color:#f44336;background:#f44336e6;animation:pulse-cef01b11 1s infinite}.timer-circle.timer-finished[data-v-cef01b11]{background:#cfd8dc;border-color:#b0bec5;animation:none}@keyframes pulse-cef01b11{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.timer-text[data-v-cef01b11]{font-size:26px;font-weight:700;color:#333;text-align:center;line-height:1}.lobby[data-v-736953e7]{max-width:900px;margin:40px auto;padding:0 16px;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,sans-serif}.lobby-header[data-v-736953e7]{display:flex;align-items:center;gap:20px;margin-bottom:20px}.back-button[data-v-736953e7]{padding:10px 16px;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background-color .3s ease;white-space:nowrap}.back-button[data-v-736953e7]:hover{background:#5a6268}.toolbar[data-v-736953e7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:20px;flex-wrap:wrap}.input-group[data-v-736953e7]{display:flex;align-items:center;gap:10px}.input-group label[data-v-736953e7]{font-weight:600;color:#333;white-space:nowrap}.readonly-wrapper[data-v-736953e7]{display:flex;flex-direction:column}.input-group input[data-v-736953e7]{padding:12px;border:2px solid #ddd;border-radius:6px;font-size:16px;min-width:200px;background-color:#f7f7f7;color:#555}.readonly-hint[data-v-736953e7]{margin-top:4px;font-size:12px;color:#888}.button-group[data-v-736953e7]{display:flex;gap:10px}button[data-v-736953e7]{padding:12px 20px;border:none;background:#1976d2;color:#fff;border-radius:6px;cursor:pointer;font-size:16px}.list ul[data-v-736953e7]{list-style:none;padding:0;margin:0}.item[data-v-736953e7]{display:flex;justify-content:space-between;align-items:flex-start;padding:20px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:16px;transition:transform .2s ease}.item[data-v-736953e7]:hover{transform:translateY(-2px)}.meta[data-v-736953e7]{flex:1;margin-right:20px}.title[data-v-736953e7]{font-weight:700;font-size:18px;margin-bottom:8px;color:#333}.players[data-v-736953e7]{display:flex;flex-direction:column;gap:8px}.player-list[data-v-736953e7]{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.player[data-v-736953e7]{display:flex;align-items:center;gap:4px;font-weight:500}.color[data-v-736953e7]{font-size:14px}.separator[data-v-736953e7]{color:#999}.empty[data-v-736953e7]{color:#999;font-style:italic}.info[data-v-736953e7]{display:flex;gap:12px;font-size:14px}.game-mode--ai[data-v-736953e7]{background:#fff3e0;color:#e65100;padding:4px 8px;border-radius:4px;font-weight:600}.timer-mode[data-v-736953e7]{background:#e3f2fd;color:#1976d2;padding:4px 8px;border-radius:4px;font-weight:500}.status[data-v-736953e7]{background:#f3e5f5;color:#7b1fa2;padding:4px 8px;border-radius:4px;font-weight:500}.spectator-count[data-v-736953e7]{background:#f1f8e9;color:#558b2f;padding:4px 8px;border-radius:4px;font-weight:500}.join[data-v-736953e7]{padding:12px 24px;border:none;background:#4caf50;color:#fff;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;min-width:80px}.join[disabled][data-v-736953e7]{background:#ccc;cursor:not-allowed}.room-actions[data-v-736953e7]{display:flex;gap:8px}.spectate[data-v-736953e7]{padding:12px 16px;border:none;background:#1e88e5;color:#fff;border-radius:8px;cursor:pointer;font-weight:600;font-size:16px;min-width:80px}.spectate[data-v-736953e7]:disabled{background:#ccc;cursor:not-allowed}.hint[data-v-736953e7]{color:#666;text-align:center;padding:40px;font-size:16px}.spinner[data-v-736953e7]{display:inline-block;animation:spin-736953e7 1s linear infinite;margin-right:8px}@keyframes spin-736953e7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.profile[data-v-8498c883]{min-height:100vh;background:#fef6ec;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,Georgia,Times New Roman,serif;padding:20px}.portal-back[data-v-8498c883]{position:fixed;top:20px;left:20px;z-index:1500;border:none;background:#ffffffe6;color:#333;padding:8px 16px;border-radius:20px;cursor:pointer;box-shadow:0 4px 12px #00000026;font-size:14px;font-weight:600}.portal-back[data-v-8498c883]:hover{background:#fff}.main-content[data-v-8498c883]{max-width:1200px;margin:0 auto;padding-top:60px}.back-button[data-v-8498c883]{padding:10px 16px;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background-color .3s ease;white-space:nowrap;margin-bottom:20px;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,sans-serif}.back-button[data-v-8498c883]:hover{background:#5a6268}.stats-section[data-v-8498c883]{display:flex;gap:20px;margin-bottom:40px;flex-wrap:wrap}.stat-card[data-v-8498c883]{flex:1;min-width:200px;max-width:280px;background:#fff;border:2px solid #E8E8E8;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000d;overflow:hidden}.stat-label[data-v-8498c883]{font-size:.9rem;color:#666;margin-bottom:10px;font-weight:500}.stat-value[data-v-8498c883]{font-size:2rem;font-weight:700;color:#2c3e50;font-family:Georgia,serif}.username-value[data-v-8498c883]{font-size:1.5rem;word-break:break-all;overflow-wrap:anywhere;line-height:1.4;max-height:6em;overflow-y:auto;overflow-x:hidden;min-height:2em;display:block}.games-section[data-v-8498c883]{background:#fff;border:2px solid #E8E8E8;border-radius:12px;padding:30px;box-shadow:0 2px 10px #0000000d}.section-title[data-v-8498c883]{font-size:1.5rem;font-weight:700;color:#2c3e50;margin-bottom:20px;font-family:Georgia,serif}.games-list[data-v-8498c883]{max-height:calc(100vh - 500px);min-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:15px}.game-record[data-v-8498c883]{display:flex;align-items:center;justify-content:space-between;padding:15px;background:#fef6ec;border-radius:8px;border:1px solid #E8E8E8;cursor:pointer;transition:all .3s ease}.game-record[data-v-8498c883]:hover{border-color:#77a9b8;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.game-players[data-v-8498c883]{flex:1;display:flex;align-items:center;gap:10px;font-size:1rem}.player[data-v-8498c883]{font-weight:600;color:#2c3e50;padding:2px 6px;border-radius:4px;transition:all .2s ease}.player.current-player[data-v-8498c883]{font-weight:700;background-color:#f9992c;color:#fff}.player.white[data-v-8498c883]:before{content:"⚪ "}.player.black[data-v-8498c883]:before{content:"⚫ "}.player.current-player.white[data-v-8498c883]:before,.player.current-player.black[data-v-8498c883]:before{color:#fff}.vs[data-v-8498c883]{color:#999;margin:0 10px}.game-result[data-v-8498c883]{margin:0 20px}.result-badge[data-v-8498c883]{padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600}.result-win[data-v-8498c883]{background:#4caf50;color:#fff}.result-loss[data-v-8498c883]{background:#f44336;color:#fff}.result-draw[data-v-8498c883]{background:#ff9800;color:#fff}.result-timeout[data-v-8498c883]{background:#9e9e9e;color:#fff}.game-time[data-v-8498c883]{color:#666;font-size:.9rem;min-width:150px;text-align:right}.loading-message[data-v-8498c883],.empty-message[data-v-8498c883]{text-align:center;padding:40px;color:#666;font-size:1.1rem}.error-message[data-v-8498c883]{background:#ffebee;border:2px solid #f44336;border-radius:8px;padding:15px;margin-bottom:20px;color:#c62828;font-size:.95rem;text-align:center}.games-list[data-v-8498c883]::-webkit-scrollbar{width:8px}.games-list[data-v-8498c883]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.games-list[data-v-8498c883]::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.games-list[data-v-8498c883]::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width: 768px){.stats-section[data-v-8498c883]{flex-direction:column}.stat-card[data-v-8498c883]{max-width:100%}.username-value[data-v-8498c883]{font-size:1.3rem}.game-record[data-v-8498c883]{flex-direction:column;align-items:flex-start;gap:10px}.game-result[data-v-8498c883]{margin:0}.game-time[data-v-8498c883]{text-align:left;min-width:auto}}.static-chess-board[data-v-c1146c6c]{display:flex;justify-content:center;align-items:center;padding:12px 0;box-sizing:border-box;width:100%}.board-wrapper[data-v-c1146c6c]{--board-size: min(52vh, 40vw, 420px);width:var(--board-size);height:var(--board-size);max-width:420px;max-height:420px}.board-grid[data-v-c1146c6c]{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border:2px solid #7a8a9a;border-radius:6px;overflow:hidden;box-shadow:0 4px 8px #9ca8b84d;width:100%;height:100%}.board-row[data-v-c1146c6c]{display:contents}.square[data-v-c1146c6c]{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;width:100%;height:100%}.square-light[data-v-c1146c6c]{background-color:#f0d9b5}.square-dark[data-v-c1146c6c]{background-color:#b58863}.square-last-move[data-v-c1146c6c]{background-color:#478048!important}.square-hidden[data-v-c1146c6c]{background-color:#505050d9!important}.square-hidden[data-v-c1146c6c]:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(120,120,120,.4) 0%,transparent 50%),radial-gradient(circle at 70% 80%,rgba(100,100,100,.3) 0%,transparent 40%),radial-gradient(circle at 20% 60%,rgba(90,90,90,.25) 0%,transparent 35%);animation:fogFloat-c1146c6c 4s ease-in-out infinite;z-index:1}@keyframes fogFloat-c1146c6c{0%,to{transform:translateY(0) rotate(0);opacity:.6}50%{transform:translateY(-2px) rotate(.5deg);opacity:.8}}.square-hidden[data-v-c1146c6c] .piece-image{opacity:0}.square[data-v-c1146c6c] .piece-image{width:87%;height:87%}@media (max-width: 768px){.board-wrapper[data-v-c1146c6c]{--board-size: min(70vw, 70vh, 360px)}}.review-actions[data-v-0174cd72]{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.review-action-buttons[data-v-0174cd72]{display:flex;gap:10px;align-items:center}.view-mode-buttons[data-v-0174cd72]{display:flex;gap:8px}.game-content[data-v-0174cd72]{align-items:flex-start;gap:28px}.dual-board-wrapper[data-v-0174cd72]{flex:0 0 auto;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,max-content);gap:28px;justify-content:center;align-items:start;padding-right:10px}.board-section[data-v-0174cd72]{display:flex;flex-direction:column;align-items:center;gap:12px;width:var(--review-board-size)}.board-header[data-v-0174cd72]{text-align:center}.board-header h3[data-v-0174cd72]{margin:0;font-size:20px;color:#333}.board-subtitle[data-v-0174cd72]{font-size:14px;color:#666}.primary-board[data-v-0174cd72] .chess-board{padding:12px}.primary-board[data-v-0174cd72] .board-container{width:var(--review-board-size);height:var(--review-board-size);max-width:420px;max-height:420px}.god-board[data-v-0174cd72] .board-wrapper{width:var(--review-board-size);height:var(--review-board-size)}.view-mode-btn[data-v-0174cd72]{padding:8px 12px;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:18px;transition:all .3s ease;white-space:nowrap;min-width:40px;display:flex;align-items:center;justify-content:center}.view-mode-btn[data-v-0174cd72]:hover{background:#5a6268;transform:scale(1.05)}.view-mode-btn.active[data-v-0174cd72]{background:#f9992c;box-shadow:0 2px 8px #f9992c66}@media (max-width: 1280px){.dual-board-wrapper[data-v-0174cd72]{grid-auto-flow:row;grid-template-columns:repeat(1,minmax(0,max-content));justify-content:center;padding-right:0}.primary-board[data-v-0174cd72] .board-container,.god-board[data-v-0174cd72] .board-wrapper{width:min(60vh,75vw,360px);height:min(60vh,75vw,360px)}}@media (max-width: 768px){.dual-board-wrapper[data-v-0174cd72]{grid-auto-flow:row;grid-template-columns:repeat(1,minmax(0,max-content))}}.back-button[data-v-0174cd72]{padding:10px 16px;background:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background-color .3s ease;white-space:nowrap;font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,sans-serif}.back-button[data-v-0174cd72]:hover{background:#5a6268}.demo-board-wrapper[data-v-40b4c4d7]{margin-top:40px;padding:30px;background:#fff;border-radius:16px;box-shadow:0 4px 20px #0000000d}.demo-header[data-v-40b4c4d7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.demo-header h3[data-v-40b4c4d7]{margin:0;color:#2c3e50;font-size:1.4rem;font-weight:700}.demo-turn-indicator[data-v-40b4c4d7]{text-align:center;padding:12px 20px;background:#ff9f781a;border:2px solid #FF9F78;border-radius:12px;font-size:1.1rem;font-weight:600;color:#2c3e50;margin-bottom:20px}.turn-white[data-v-40b4c4d7]{color:#333;font-weight:700}.turn-black[data-v-40b4c4d7]{color:#000;font-weight:700}.demo-turn-indicator.game-over[data-v-40b4c4d7]{background:linear-gradient(135deg,#ffd70033,#ff9f7833);border-color:gold;animation:winnerPulse-40b4c4d7 2s ease-in-out infinite}.winner-text[data-v-40b4c4d7]{color:#ff9f78;font-weight:700;font-size:1.2rem;text-shadow:0 2px 4px rgba(0,0,0,.1)}@keyframes winnerPulse-40b4c4d7{0%,to{transform:scale(1);box-shadow:0 0 #ffd70066}50%{transform:scale(1.02);box-shadow:0 0 20px #ffd70099}}.reset-btn[data-v-40b4c4d7]{padding:8px 20px;background:#ff9f78;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;box-shadow:0 2px 8px #ff9f784d}.reset-btn[data-v-40b4c4d7]:hover{background:#ff8a5c;transform:translateY(-1px);box-shadow:0 4px 12px #ff9f7866}.demo-board-container[data-v-40b4c4d7]{display:flex;justify-content:center;padding:20px 0}.demo-board[data-v-40b4c4d7]{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:400px;height:400px;border:2px solid #7a8a9a;box-shadow:0 4px 12px #0000001a;-webkit-user-select:none;user-select:none}.demo-row[data-v-40b4c4d7]{display:contents}.demo-square[data-v-40b4c4d7]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;position:relative;cursor:pointer;transition:background-color .15s ease}.demo-square-light[data-v-40b4c4d7]{background-color:#f0d9b5}.demo-square-dark[data-v-40b4c4d7]{background-color:#b58863}.demo-square-selected[data-v-40b4c4d7]{background-color:#a9bd70!important}.demo-square-legal[data-v-40b4c4d7]:after{content:"";position:absolute;width:18px;height:18px;background-color:#1e88e5cc;border-radius:50%;pointer-events:none}.demo-square[data-v-40b4c4d7]:hover{filter:brightness(1.1)}.demo-piece[data-v-40b4c4d7]{width:85%;height:85%;display:flex;justify-content:center;align-items:center;pointer-events:none}.demo-piece img[data-v-40b4c4d7]{width:100%;height:100%;object-fit:contain}@media (max-width: 600px){.demo-board[data-v-40b4c4d7]{width:320px;height:320px}.demo-board-wrapper[data-v-40b4c4d7]{padding:20px}}.promotion-overlay[data-v-40b4c4d7]{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:10000}.promotion-dialog[data-v-40b4c4d7]{background:#fff;border-radius:16px;padding:30px;box-shadow:0 8px 32px #0000004d;max-width:400px}.promotion-dialog h4[data-v-40b4c4d7]{margin:0 0 20px;color:#2c3e50;font-size:1.3rem;text-align:center;font-weight:700}.promotion-options[data-v-40b4c4d7]{display:flex;gap:15px;justify-content:center}.promotion-option[data-v-40b4c4d7]{width:70px;height:70px;border:3px solid #ddd;border-radius:12px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:all .2s;background:#f0d9b5}.promotion-option[data-v-40b4c4d7]:hover{border-color:#ff9f78;transform:scale(1.1);box-shadow:0 4px 12px #ff9f7866}.promotion-option img[data-v-40b4c4d7]{width:90%;height:90%;object-fit:contain}.rules-page[data-v-bfd1d0b4]{min-height:100vh;padding:40px 20px;background:#fef6ec;font-family:Microsoft YaHei,sans-serif}.rules-container[data-v-bfd1d0b4]{max-width:800px;margin:0 auto}.top-back-button[data-v-bfd1d0b4]{margin-bottom:30px}.back-btn-top[data-v-bfd1d0b4]{padding:10px 25px;background:#fffc;border:2px solid #ddd;color:#666;border-radius:20px;cursor:pointer;font-size:1rem;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.back-btn-top .back-arrow[data-v-bfd1d0b4]{font-size:1.2rem;transition:transform .2s}.back-btn-top[data-v-bfd1d0b4]:hover{border-color:#999;color:#333;background:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.back-btn-top:hover .back-arrow[data-v-bfd1d0b4]{transform:translate(-3px)}.toggle-container[data-v-bfd1d0b4]{display:flex;justify-content:center;gap:20px;margin-bottom:40px}.toggle-btn[data-v-bfd1d0b4]{padding:12px 30px;border:2px solid transparent;background:#fff9;border-radius:25px;font-size:1.1rem;font-weight:600;color:#8b8b8b;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #0000000d}.toggle-btn[data-v-bfd1d0b4]:hover{transform:translateY(-2px);background:#fff}.toggle-btn.active[data-v-bfd1d0b4]{background:#ff9f78;color:#fff;box-shadow:0 6px 12px #ff9f7866}.rules-content[data-v-bfd1d0b4]{display:flex;flex-direction:column;gap:20px}.rule-card[data-v-bfd1d0b4]{background:#fff;border-radius:16px;padding:30px;display:flex;align-items:flex-start;box-shadow:0 4px 20px #0000000d;transition:transform .2s;border:1px solid rgba(0,0,0,.02)}.rule-card[data-v-bfd1d0b4]:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014}.rule-number[data-v-bfd1d0b4]{flex-shrink:0;width:40px;height:40px;background:#ff9f78;color:#fff;border-radius:12px;display:flex;justify-content:center;align-items:center;font-weight:700;font-size:1.2rem;margin-right:25px;box-shadow:0 4px 10px #ff9f784d}.rule-text[data-v-bfd1d0b4]{flex:1}.rule-text h3[data-v-bfd1d0b4]{margin:0 0 10px;color:#2c3e50;font-size:1.4rem;font-weight:700;font-family:Georgia,serif}.rule-text p[data-v-bfd1d0b4]{margin:0;color:#666;line-height:1.6;font-size:1.05rem;white-space:pre-line}.footer-actions[data-v-bfd1d0b4]{margin-top:40px;text-align:center}.coming-soon[data-v-bfd1d0b4]{text-align:center;justify-content:center;flex-direction:column;align-items:center;padding:60px;color:#999}.fade-in[data-v-bfd1d0b4]{animation:fadeIn-bfd1d0b4 .4s ease-out}@keyframes fadeIn-bfd1d0b4{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 600px){.rule-card[data-v-bfd1d0b4]{padding:20px}.rule-number[data-v-bfd1d0b4]{width:32px;height:32px;font-size:1rem;margin-right:15px}.rule-text h3[data-v-bfd1d0b4]{font-size:1.2rem}}:root{font-family:Microsoft YaHei,微软雅黑,PingFang SC,Hiragino Sans GB,幼圆,YouYuan,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#fef6ec;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:#fef6ec}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.card{padding:2em}#app{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fef6ec}a:hover{color:#747bff}button{background-color:#f9f9f9}}
