#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}.btn-icon,.btn-main,.btn-secondary{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;font-family:inherit;line-height:normal;text-align:center;cursor:pointer}.btn-main{height:46px;border:none;border-radius:10px;background:#8b5e34;color:#fff;font-size:17px;box-shadow:0 1px 3px rgba(0,0,0,.25)}.btn-secondary{height:42px;border:1px solid #c9b48a;border-radius:10px;font-size:15px}.btn-icon,.btn-secondary{background:#fff;color:#2c3e50}.btn-icon{width:40px;height:34px;padding:0;border:1px solid #c9b48a;border-radius:17px;font-size:20px}.btn-icon:disabled,.btn-main:disabled,.btn-secondary:disabled{opacity:.45;cursor:default}.stone{display:inline-block;width:.8em;height:.8em;border-radius:50%;vertical-align:-.08em;margin-right:.25em;box-sizing:border-box;flex:none}.stone.black{background:#111}.stone.white{background:#fff;border:1.5px solid #333}.icp{margin:24px 0 12px;font-size:12px}.icp a{color:#888}.test-site-banner{background:#ffc107;color:#212529;font-size:14px;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home[data-v-48c46174]{display:flex;flex-direction:column;align-items:center;max-width:260px;margin:0 auto;padding-top:48px}.logo[data-v-48c46174]{width:108px}h1[data-v-48c46174]{margin:16px 0 2px;font-size:24px}.tagline[data-v-48c46174]{margin:0 0 26px;color:#777;font-size:15px}.btn-main[data-v-48c46174],.btn-secondary[data-v-48c46174]{width:100%;margin-bottom:12px;font-size:16px;text-decoration:none}.no-icp[data-v-48c46174]{margin-top:28px;color:#aaa;font-size:12px}.navbar[data-v-4b0b00ae]{display:flex;align-items:center;background:#faedcd;padding:5px 16px 5px 10px;font-size:16px}.navbar.mobile[data-v-4b0b00ae]{padding:6px 10px 6px 8px}.brand[data-v-4b0b00ae]{display:flex;margin-right:16px}.brand img[data-v-4b0b00ae]{height:50px}.mobile .brand[data-v-4b0b00ae]{margin-right:12px}.mobile .brand img[data-v-4b0b00ae]{height:32px}.new[data-v-4b0b00ae]{margin-left:14px;padding:3px 8px;border:1px solid #c9a96a;border-radius:6px;background:#fff8e6;color:#2c3e50;text-decoration:none;white-space:nowrap}.new.current[data-v-4b0b00ae]{font-weight:700}.space[data-v-4b0b00ae]{flex:1}.item[data-v-4b0b00ae]{color:#595959;text-decoration:none;white-space:nowrap;padding:6px 0;margin-left:18px}.item[data-v-4b0b00ae]:first-of-type{margin-left:0}.item[data-v-4b0b00ae]:hover{color:#0175ff}.item.current[data-v-4b0b00ae]{color:#2c3e50;font-weight:700;text-decoration:underline;text-underline-offset:4px}.item.name[data-v-4b0b00ae]{max-width:8em;overflow:hidden;text-overflow:ellipsis}.mobile .item.name[data-v-4b0b00ae]{max-width:6em}.player-name[data-v-271f8594]{display:inline-flex;align-items:center;min-width:0}.name[data-v-271f8594]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name.empty[data-v-271f8594]{color:#999}.tabs[data-v-2ebeef3e]{display:flex;gap:6px;max-width:600px;margin:8px auto 0;padding:0 10px}.tab[data-v-2ebeef3e]{height:32px;padding:0 12px;border:1px solid #ccc;border-radius:16px;background:#fff;color:#2c3e50;font-size:14px;cursor:pointer}.tab.active[data-v-2ebeef3e]{background:#ffd39a;border-color:#e0b060;font-weight:700}section[data-v-2ebeef3e]{max-width:600px;margin:0 auto;padding:0 10px;text-align:left}h4[data-v-2ebeef3e]{margin:14px 0 6px;font-size:14px;color:#555}.empty[data-v-2ebeef3e],.loading[data-v-2ebeef3e]{color:#999}.card[data-v-2ebeef3e]{display:block;box-sizing:border-box;min-height:64px;margin-bottom:8px;padding:9px 12px;border:1px solid #d8c9a6;border-radius:8px;background:#fffaf0;color:#2c3e50;text-decoration:none}.card .line1[data-v-2ebeef3e]{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:17px}.card .who[data-v-2ebeef3e]{min-width:0}.card .grid[data-v-2ebeef3e]{color:#999;flex:none}.card .line2[data-v-2ebeef3e]{display:block;margin-top:4px;font-size:13px;color:#777}.card .your[data-v-2ebeef3e]{color:#0175ff}.card.quiet-card[data-v-2ebeef3e]{background:#fafafa;border-color:#e3e3e3;color:#666}.card.invitation[data-v-2ebeef3e]{background:#fff;border-style:dashed}.card .quiet[data-v-2ebeef3e]{color:#999}.card .copy[data-v-2ebeef3e]{color:#8b5e34;text-decoration:none}.row[data-v-2ebeef3e]{display:flex;align-items:center;gap:8px;height:40px;border-bottom:1px solid #eee;font-size:14px;color:#2c3e50;text-decoration:none}.row .players[data-v-2ebeef3e]{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden;white-space:nowrap}.row .vs[data-v-2ebeef3e]{color:#999;margin:0 6px;font-size:12px}.row .result[data-v-2ebeef3e]{white-space:nowrap}.row .result.won[data-v-2ebeef3e]{color:#0a0}.row .result.lost[data-v-2ebeef3e]{color:#d00}.row .date[data-v-2ebeef3e]{width:64px;flex:none;color:#999;font-size:12px;text-align:right}.more[data-v-2ebeef3e]{margin:10px 0 20px;color:#999;font-size:13px;text-align:center;cursor:pointer}.game-actions[data-v-69ad31e4]{position:relative}.open[data-v-69ad31e4]{line-height:1}.list[data-v-69ad31e4]{position:absolute;right:0;top:36px;z-index:10;min-width:160px;background:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);padding:4px 0;text-align:left}.list button[data-v-69ad31e4]{display:block;width:100%;padding:10px 16px;border:0;background:none;text-align:left;font-size:16px;white-space:nowrap}.list button[data-v-69ad31e4]:disabled{color:#aaa}.list button.danger[data-v-69ad31e4]{color:#e00}.list button.danger[data-v-69ad31e4]:disabled{color:#f0a0a0}.list hr[data-v-69ad31e4]{margin:4px 0;border:0;border-top:1px solid #eee}.heading[data-v-69ad31e4]{margin:6px 16px 2px;color:#999;font-size:13px;white-space:nowrap}.guard[data-v-69ad31e4]{margin:6px 16px;color:red;font-size:14px;white-space:nowrap}.game-canvas[data-v-54b2afea]{border:1px solid #aaa;outline:none}button[data-v-effe9a92]{width:100px;height:40px}.play-mode[data-v-56c67709]{display:block;margin:6px auto 0;padding:2px 4px;border:none;background:none;color:#999;font-size:12px;cursor:pointer}.play-mode[data-v-56c67709]:hover{color:#595959;text-decoration:underline}.chat-button[data-v-e947ebc2]{position:relative;width:64px;height:52px;padding:0;border:none;background:none;cursor:pointer;vertical-align:middle}.chat-button svg[data-v-e947ebc2]{position:absolute;left:0;top:0;width:64px;height:54px;fill:#fff;stroke:#c8b28a;stroke-width:2.2}.chat-button[aria-pressed=true] svg[data-v-e947ebc2]{fill:#ffd39a}.chat-button span[data-v-e947ebc2]{position:relative;top:-5px;font-size:14px;color:#2c3e50}.placement .put[data-v-057764a5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:300px;max-width:100%;height:46px;margin-left:auto;margin-right:auto;padding:0;border:none;border-radius:10px;background:#8b5e34;color:#fff;font-size:17px;line-height:normal;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.25);cursor:pointer}.estimate[data-v-057764a5]{margin-top:10px;width:200px}.placement[data-v-057764a5]{margin:10px auto;max-width:300px}.tools[data-v-057764a5]{position:relative}.ai-slow[data-v-057764a5]{color:#888;font-size:15px;margin:8px auto;padding:0 16px;max-width:420px}.tools .chat-btn[data-v-057764a5]{position:absolute;left:calc(50% + 112px);top:7px}.winrate-chart[data-v-524bfb47]{width:100%}.winrate-canvas[data-v-524bfb47]{display:block;width:100%;box-sizing:border-box;border:1px solid #aaa;touch-action:none}.move-line[data-v-44187b33]{margin:6px auto 0;color:#595959;font-size:14px}.move-line .mistake[data-v-44187b33]{color:red}.compare-tabs[data-v-44187b33]{display:flex;justify-content:center;margin:8px auto 6px}button.compare-tab[data-v-44187b33]{width:auto;height:36px;padding:0 14px;border:1px solid #c9a26b;border-left:none;border-radius:0;background:#fff;color:#2c3e50;font-size:15px;white-space:nowrap}button.compare-tab[data-v-44187b33]:first-child{border-left:1px solid #c9a26b;border-radius:8px 0 0 8px}button.compare-tab[data-v-44187b33]:last-child{border-radius:0 8px 8px 0}button.compare-tab[data-v-44187b33]:disabled{color:#ccc;cursor:default}button.compare-tab.selected[data-v-44187b33]{background:#ffd39a}.compare-label[data-v-44187b33],.compare-legend[data-v-44187b33],.compare-what[data-v-44187b33]{margin:2px auto 0;color:#595959;font-size:14px}.compare-legend .compare-label[data-v-44187b33]{margin:0}.compare-tabs[data-v-44187b33] button.tabs-study{width:auto;height:36px;margin-left:10px;padding:0 14px;font-size:15px}.compare-legend .square[data-v-44187b33]{display:inline-block;width:10px;height:10px;margin:0 3px 0 6px;vertical-align:-1px}.compare-legend .square.black[data-v-44187b33]{background:#000}.compare-legend .square.white[data-v-44187b33]{background:#fff;border:1px solid #333;box-sizing:border-box}.compare-legend .square.blue[data-v-44187b33]{background:#2a7de1}.compare-legend .square.red[data-v-44187b33]{background:#d0021b}.panel[data-v-40bb287d]{margin:0 auto}.placement[data-v-40bb287d]{margin:10px auto;max-width:300px}.put[data-v-40bb287d]{width:300px;max-width:100%}.chart-slot[data-v-40bb287d]{height:80px;margin:8px 0 8px}.replay.desktop .chart-slot[data-v-40bb287d]{height:100px}.chart-slot .winrate-chart[data-v-40bb287d]{margin:0}.chart-slot.empty[data-v-40bb287d]{box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:80px;border:1px dashed #d8c9a8;border-radius:6px;background:#fdf9f1}.replay.desktop .chart-slot.empty[data-v-40bb287d]{height:100px}.nav-row[data-v-40bb287d]{display:flex;flex-direction:column;align-items:stretch}.position-row[data-v-40bb287d]{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;max-width:360px;margin:4px auto 0;height:22px;color:#999;font-size:13px;white-space:nowrap}.position-row .chart-switches[data-v-40bb287d]{margin-left:auto}.position-row:has(.chart-switches) .position[data-v-40bb287d]{margin-left:2px}.position-row .separator[data-v-40bb287d]{color:#ccc}.replay-bar[data-v-40bb287d]{display:flex;width:100%;max-width:360px;margin:0 auto;box-sizing:border-box;border:1px solid #c9b48a;border-radius:10px;overflow:hidden;background:#fff}.replay-bar button[data-v-40bb287d]{flex:1;display:flex;align-items:center;justify-content:center;gap:1px;height:44px;padding:0;border:none;border-left:1px solid #eadfc6;background:#fff;color:#2c3e50;font-size:13px;cursor:pointer}.replay-bar button[data-v-40bb287d]:first-child{border-left:none}.replay-bar button[data-v-40bb287d]:disabled{color:#ccc;cursor:default}.replay-bar svg[data-v-40bb287d]{width:18px;height:18px;fill:currentColor}.move-hint[data-v-40bb287d]{margin:2px auto 0;color:#888;font-size:13px}.action-row[data-v-40bb287d],.mode-row[data-v-40bb287d]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;align-items:center;justify-items:stretch;width:100%;max-width:360px;margin:8px auto 2px}.action-row button.btn-main[data-v-40bb287d],.action-row button.btn-secondary[data-v-40bb287d],.mode-row button[data-v-40bb287d]{width:100%;min-width:0;height:38px;padding:0 2px;font-size:14px;white-space:nowrap;overflow:hidden}.action-row[data-v-40bb287d]{margin-top:10px;min-height:52px}.action-row .chat-btn[data-v-40bb287d]{justify-self:center}@media (max-width:375px){.action-row[data-v-40bb287d],.mode-row[data-v-40bb287d]{gap:4px}.action-row button.btn-secondary[data-v-40bb287d],.mode-row button[data-v-40bb287d]{font-size:13px}}.info[data-v-40bb287d]{margin-top:6px}.info.reserve[data-v-40bb287d]{min-height:44px}.line-switch[data-v-40bb287d]{display:flex;justify-content:center;align-items:center;gap:8px;margin:6px auto 0;color:#595959;font-size:14px;white-space:nowrap}.line-switch button[data-v-40bb287d]{width:34px;height:30px;padding:0;display:flex;align-items:center;justify-content:center}.line-switch svg[data-v-40bb287d]{width:14px;height:14px;fill:currentColor}.estimate-count[data-v-40bb287d]{margin-top:6px;color:#595959;font-size:14px}.replay.side[data-v-40bb287d]{display:flex;justify-content:center;align-items:flex-start;gap:28px;margin-top:8px;padding:0 16px}.replay.side .board[data-v-40bb287d]{flex:none}.replay.side .panel[data-v-40bb287d]{flex:0 1 460px;min-width:380px;margin:0;display:flex;flex-direction:column}.replay.side .panel>[data-v-40bb287d]{order:10}.replay.side .chart-slot[data-v-40bb287d]{order:1;margin-top:0}.replay.side .practice-info[data-v-40bb287d]{order:1}.replay.side .nav-row[data-v-40bb287d]{order:3}.replay.side .action-row[data-v-40bb287d]{order:4}.replay.side .placement[data-v-40bb287d]{order:5}.replay.side .action-row[data-v-40bb287d],.replay.side .ai-control[data-v-40bb287d],.replay.side .mode-row[data-v-40bb287d],.replay.side .position-row[data-v-40bb287d],.replay.side .replay-bar[data-v-40bb287d]{max-width:none}.replay.side .action-row[data-v-40bb287d]{margin:8px 0 6px}.replay.side .info[data-v-40bb287d]{min-height:0}.practice-info[data-v-40bb287d]{margin:4px 0 2px}.replay.practice:not(.side) .board[data-v-40bb287d]{margin-bottom:10px}.replay.practice:not(.side) .mode-row[data-v-40bb287d]{order:-1;margin-top:0}.replay.practice:not(.side) .nav-col[data-v-40bb287d]{margin-top:8px}button.verdict-study[data-v-40bb287d]{width:auto;height:30px;margin-left:10px;padding:0 14px;font-size:14px;font-weight:400;vertical-align:1px}.replay.side .practice-info[data-v-40bb287d]{position:relative;height:100px;margin:0 0 8px}.replay.side .practice-box[data-v-40bb287d]{height:100%;overflow:hidden}.replay.side .practice-info.open[data-v-40bb287d]{z-index:5}.replay.side .practice-info.open .practice-box[data-v-40bb287d]{position:absolute;top:0;left:0;right:0;height:auto;min-height:100%;padding-bottom:8px;background:#fff;border-radius:6px;box-shadow:0 4px 14px #0000002e}.replay.side .practice-info .compare[data-v-40bb287d] .move-line:first-child,.replay.side .practice-info .practice-head[data-v-40bb287d]{margin-top:0}.practice-info[data-v-40bb287d] .cut{visibility:hidden}button.practice-more[data-v-40bb287d]{position:absolute;right:0;bottom:0;width:auto;height:22px;padding:0 10px;border:1px solid #c9b48a;border-radius:11px;background:#fff;color:#595959;font-size:14px;line-height:18px;cursor:pointer}.move-line[data-v-40bb287d]{margin:6px auto 0;color:#595959;font-size:14px}.move-line .mistake[data-v-40bb287d]{color:red}.analysis-none[data-v-40bb287d]{margin:10px auto;color:#999;font-size:14px}.analysis-none button.analysis-request[data-v-40bb287d]{height:36px;margin-left:8px;padding:0 12px;font-size:14px}button.play-mode[data-v-40bb287d]{width:auto;height:auto}.compare-label[data-v-40bb287d],.estimate-katago[data-v-40bb287d]{margin:2px auto 0;color:#595959;font-size:14px}.study-from[data-v-40bb287d]{margin:0 auto 4px;color:#888;font-size:14px}.study-ai-line[data-v-40bb287d]{margin:4px auto 2px;color:#2c3e50;font-size:16px;font-weight:700}.study-ai-line .mistake[data-v-40bb287d]{color:red}.study-ai-judged.good[data-v-40bb287d]{color:#1a7f37}.study-ai-error[data-v-40bb287d]{color:#b35c00}.study-ai-error button.ai-retry[data-v-40bb287d]{height:30px;margin-left:8px;padding:0 12px;font-size:14px;font-weight:400}.ai-control[data-v-40bb287d]{width:100%;max-width:360px;margin:8px auto 2px}.ai-box[data-v-40bb287d]{position:relative;display:flex;height:38px;box-sizing:border-box;border:1px solid #5a5e63;border-radius:10px;overflow:hidden}.ai-half[data-v-40bb287d]{flex:none;width:calc(25% + 10.5px);display:flex;align-items:center;padding:0 5px;box-sizing:border-box;transition:width .3s ease}.ai-half.turn[data-v-40bb287d]{width:calc(75% - 10.5px)}.ai-half.right[data-v-40bb287d]{justify-content:flex-end}.ai-half.black[data-v-40bb287d]{background:#5a5e63;color:#fff}.ai-half.white[data-v-40bb287d]{background:#fff;color:#2b2d30}button.ai-switch[data-v-40bb287d]{position:relative;transition:background-color .2s ease;flex:none;width:72px;height:26px;margin:0;padding:0;border:none;border-radius:13px;font-family:inherit;font-size:12px;line-height:26px;font-weight:700;cursor:pointer}.ai-half.black button.ai-switch[data-v-40bb287d]{background:#fff;color:#2b2d30}.ai-half.white button.ai-switch[data-v-40bb287d]{background:#5a5e63;color:#fff}.ai-half.white button.ai-switch.on[data-v-40bb287d]{background:#8e44ad;color:#fff}.ai-half.black button.ai-switch.on[data-v-40bb287d]{background:#dcc5f0;color:#4a1f6b}.ai-switch .knob[data-v-40bb287d]{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;box-sizing:border-box;box-shadow:0 1px 2px #0000004d;transition:left .2s ease}.ai-switch.on .knob[data-v-40bb287d]{left:49px}.ai-half.black .ai-switch .knob[data-v-40bb287d]{background:#000}.ai-half.white .ai-switch .knob[data-v-40bb287d]{background:#fff}.ai-switch .label[data-v-40bb287d]{position:absolute;top:0;right:10px;line-height:26px}.ai-switch.on .label[data-v-40bb287d]{right:auto;left:8px}.ai-middle[data-v-40bb287d]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);box-sizing:border-box;width:112px;text-align:center;white-space:nowrap;font-size:13px}.ai-thinking.black[data-v-40bb287d]{color:#fff}.ai-thinking.white[data-v-40bb287d]{color:#2b2d30}button.ai-middle[data-v-40bb287d]{height:28px;margin:0;padding:0 6px;line-height:26px;border-radius:5px;border:1px solid #5a5e63;background:#fff;color:#2b2d30;font-family:inherit;cursor:pointer}button.ai-middle.black[data-v-40bb287d]{border-color:#fff}button.ai-continue[data-v-40bb287d]{font-weight:700}.ai-thinking .spinner[data-v-40bb287d]{display:inline-block;width:10px;height:10px;margin-left:6px;vertical-align:-1px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;box-sizing:border-box;animation:ai-spin-data-v-40bb287d .8s linear infinite}@keyframes ai-spin-data-v-40bb287d{to{transform:rotate(1turn)}}.practice-head[data-v-40bb287d]{margin-top:6px;color:#2c3e50;font-size:17px;font-weight:700}.practice-verdict[data-v-40bb287d]{margin:6px auto 2px;color:#2c3e50;font-size:16px;font-weight:700}.practice-verdict.good[data-v-40bb287d]{color:#1a7f37}button.mode-switch[data-v-40bb287d]{background:#f6ead6;border-color:#8b5e34;color:#8b5e34;font-weight:700}.estimate-katago[data-v-40bb287d]{margin-top:8px;color:#2c3e50;font-size:15px}button.suggestions-switch[data-v-40bb287d]{width:auto;height:auto;padding:2px 4px;border:none;background:none;color:#999;font-size:12px;cursor:pointer}button.suggestions-switch[data-v-40bb287d]:hover{color:#595959;text-decoration:underline}.game-chat[data-v-e4c0a4f0]{display:flex;flex-direction:column;box-sizing:border-box;background:#fff;overflow:hidden;text-align:left;z-index:50}.game-chat.sheet[data-v-e4c0a4f0]{position:fixed;left:16px;right:16px;bottom:0;border-radius:14px 14px 0 0;box-shadow:0 -3px 16px rgba(0,0,0,.25)}.game-chat.panel[data-v-e4c0a4f0]{position:absolute;border:1px solid #c8b28a;border-radius:10px}.chat-slide-enter-active[data-v-e4c0a4f0]{transition:transform .15s ease-out}.chat-slide-leave-active[data-v-e4c0a4f0]{transition:transform .12s ease-in}.chat-slide-enter[data-v-e4c0a4f0],.chat-slide-leave-to[data-v-e4c0a4f0]{transform:translateY(100%)}@media (prefers-reduced-motion:reduce){.chat-slide-enter-active[data-v-e4c0a4f0],.chat-slide-leave-active[data-v-e4c0a4f0]{transition:none}}.chat-head[data-v-e4c0a4f0]{display:flex;align-items:center;justify-content:space-between;flex:none;padding:4px 6px 4px 12px;border-bottom:1px solid #eee}.chat-title[data-v-e4c0a4f0]{font-size:16px;color:#2c3e50}.chat-close[data-v-e4c0a4f0]{width:40px;height:40px;padding:0;border:none;background:none;color:#888;font-size:26px;line-height:1;cursor:pointer}.chat-list[data-v-e4c0a4f0]{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding:4px 12px 8px;-webkit-overflow-scrolling:touch}.chat-list[data-v-e4c0a4f0]>:first-child{margin-top:auto}.chat-note[data-v-e4c0a4f0]{display:block;margin:24px auto;border:none;background:none;color:#999;font-size:14px;text-align:center}.chat-retry[data-v-e4c0a4f0]{color:#d00;cursor:pointer}.chat-message[data-v-e4c0a4f0]{display:flex;flex-direction:column;align-items:flex-start;margin:6px 0}.chat-message.mine[data-v-e4c0a4f0]{align-items:flex-end}.chat-meta[data-v-e4c0a4f0]{margin:0 4px 2px;font-size:12px;color:#999}.chat-move[data-v-e4c0a4f0]{padding:0;border:none;background:none;color:inherit;font:inherit}button.chat-move[data-v-e4c0a4f0]{text-decoration:underline;cursor:pointer}.chat-text[data-v-e4c0a4f0]{max-width:78%;padding:7px 11px;border-radius:12px;border-top-left-radius:3px;background:#f2f2f2;color:#2c3e50;font-size:15px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.mine .chat-text[data-v-e4c0a4f0]{border-top-left-radius:12px;border-top-right-radius:3px;background:#f3e6d3}.pending .chat-text[data-v-e4c0a4f0]{opacity:.55}.chat-failed[data-v-e4c0a4f0]{margin:2px 4px 0;padding:0;border:none;background:none;color:#d00;font-size:12px;cursor:pointer}.chat-divider[data-v-e4c0a4f0]{display:flex;align-items:center;gap:8px;margin:6px 0;color:#0175ff;font-size:12px}.chat-divider[data-v-e4c0a4f0]:after,.chat-divider[data-v-e4c0a4f0]:before{content:"";flex:1;height:1px;background:#bcd7ff}.chat-input[data-v-e4c0a4f0]{display:flex;align-items:center;gap:8px;flex:none;padding:8px 10px;border-top:1px solid #eee}.chat-input input[data-v-e4c0a4f0]{flex:1;min-width:0;height:38px;box-sizing:border-box;padding:0 10px;border:1px solid #ccc;border-radius:8px;font-size:16px}.chat-send[data-v-e4c0a4f0]{flex:none;height:38px;margin:0;padding:0 16px;border-radius:8px;font-size:15px}.gameline[data-v-8a84ad20]{display:flex;align-items:center;gap:8px;height:44px;padding:0 8px;box-sizing:border-box;font-size:15px}.gameline.offer[data-v-8a84ad20]{flex-wrap:wrap-reverse;height:auto;min-height:44px;padding-block:4px;row-gap:2px}.gameline.offer .who[data-v-8a84ad20]{flex:1 0 auto;max-width:calc(100% - 96px)}button.rematch[data-v-8a84ad20]{flex:none;margin-left:auto;height:30px;padding:0 10px;border:1px solid #8b5e34;border-radius:8px;background:#f6ead6;color:#8b5e34;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}button.rematch[data-v-8a84ad20]:disabled{opacity:.45;cursor:default}.pill[data-v-8a84ad20]{flex:none;padding:2px 9px;border-radius:12px;font-size:13px;white-space:nowrap}.pill.mine[data-v-8a84ad20]{background:#0175ff;color:#fff}.pill.done[data-v-8a84ad20],.pill.wait[data-v-8a84ad20]{background:#eee;color:#555}.pill.won[data-v-8a84ad20]{background:#e3f5e3;color:#0a0}.pill.lost[data-v-8a84ad20]{background:#fde8e8;color:#d00}.who[data-v-8a84ad20]{display:flex;align-items:center;flex:1;min-width:0;white-space:nowrap}.vs[data-v-8a84ad20]{color:#999;margin:0 6px;font-size:13px}.seat[data-v-8a84ad20]{display:inline-flex;align-items:center;flex:0 1 auto;min-width:0;padding:4px 0;border:none;background:none;color:inherit;font:inherit}.seat.long[data-v-8a84ad20]{min-width:3.2em}.seat[data-v-8a84ad20]:not(.long){flex-shrink:0}.who .seat.long[data-v-8a84ad20]:first-of-type{flex-shrink:100}.handicap[data-v-8a84ad20]{flex:none;margin-left:8px;color:#888}.seat[data-v-8a84ad20]:disabled{color:inherit;cursor:default}.here[data-v-8a84ad20]{flex:none;width:6px;height:6px;margin-left:3px;border-radius:50%;background:#258348}.msg[data-v-8a84ad20]{flex:1;margin:0;text-align:left;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space[data-v-8a84ad20]{flex:1}.pulse[data-v-8a84ad20]{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;background:none;cursor:pointer;z-index:5}.pulse svg[data-v-8a84ad20]{width:20px;height:17px;overflow:visible;fill:#0175ff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));transform-origin:20% 100%;animation:chat-grow-data-v-8a84ad20 .7s ease-in-out infinite alternate}.pulse-text[data-v-8a84ad20]{fill:#ffd400;font-size:15px;font-weight:700;text-anchor:middle;dominant-baseline:middle;animation:chat-text-data-v-8a84ad20 .7s ease-in-out infinite alternate}@keyframes chat-grow-data-v-8a84ad20{0%{transform:scale(1)}to{transform:scale(1.7)}}@keyframes chat-text-data-v-8a84ad20{0%,40%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.pulse svg[data-v-8a84ad20]{animation:none;transform:scale(1.4)}.pulse-text[data-v-8a84ad20]{animation:none;opacity:1}}.pulse-anchor[data-v-8a84ad20]{position:relative;flex:none;width:0;align-self:stretch}.pulse.on-seat[data-v-8a84ad20]{position:absolute;left:12px;top:-17px}.pulse.after-names[data-v-8a84ad20]{margin-left:6px}.chat-slot[data-v-8a84ad20]{position:relative;margin-top:12px}.presence-tip[data-v-8a84ad20]{margin-top:-6px;font-size:12px;color:#777}.info[data-v-8a84ad20]{color:#00f}.warn[data-v-8a84ad20]{color:red}.succ[data-v-8a84ad20]{color:#0a0}.auth form{align-items:center;margin:10px auto;max-width:300px;padding:0 10px}.auth form,.auth label{display:flex;flex-direction:column}.auth label{align-items:flex-start;width:100%;margin:4px 0}.auth input{width:100%;box-sizing:border-box;height:42px;padding:0 10px;border:1px solid #c9b48a;border-radius:8px;font-size:16px}.auth a{color:#8b5e34;text-decoration:none}.auth .wechat-action,.auth button{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:140px;height:42px;margin:8px 2px;border:1px solid #c9b48a;border-radius:10px;background:#fff;color:#2c3e50;font-size:15px;cursor:pointer}.auth .start,.auth .wechat-action.main,.auth button.main,.auth button[type=submit],.auth form .wechat-action{height:46px;border:none;background:#8b5e34;color:#fff;font-size:17px;box-shadow:0 1px 3px rgba(0,0,0,.25)}.auth .wechat-action:disabled,.auth button:disabled{opacity:.45;cursor:default}.auth h3,.auth h4{margin:5px 0}.auth .info{color:#00f}.auth .warn{color:red}.sign-out[data-v-2a45fb44]{margin-top:20px}.auth input[readonly][data-v-2a45fb44]{height:auto;padding:2px 0 8px;border:none;border-bottom:1px solid #eee;border-radius:0;color:#777;background:none}select[data-v-40bf13c6]{width:100%;font-size:16px}.note[data-v-40bf13c6]{color:#888;font-size:14px;line-height:1.4;margin:2px 0 10px;text-align:left}option.invite[data-v-40bf13c6]{font-weight:700;color:#8b5e34;border-bottom:1px solid #ccc}option.ai-entry[data-v-40bf13c6]{font-weight:700;border-bottom:1px solid #c8a97e}.opponents li.ai-entry[data-v-40bf13c6]{font-weight:700;border-bottom:2px solid #c8a97e}.opponents .ai-level[data-v-40bf13c6]{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:15px;font-weight:400;color:#555}.opponents .ai-level select[data-v-40bf13c6]{width:auto;flex:none}.phone .form[data-v-40bf13c6]{display:flex;flex-direction:column;align-items:center;margin:10px auto;max-width:360px;padding:0 12px}.phone .choices[data-v-40bf13c6]{display:flex;flex-wrap:wrap;justify-content:center;width:100%;margin-top:12px}.phone .choices .wechat-action[data-v-40bf13c6],.phone .choices button[data-v-40bf13c6]{flex:1 1 140px;max-width:170px;height:48px;margin:4px;font-size:16px}.phone .choices button.choose[data-v-40bf13c6]{color:#2c3e50;background:#fff;border:1px solid #c9b48a;border-radius:10px}.phone .choices .wechat-action.invite[data-v-40bf13c6],.phone .choices button.invite[data-v-40bf13c6]{color:#fff;background:#8b5e34;border:1px solid #8b5e34;border-radius:10px}.phone .topbar[data-v-40bf13c6]{text-align:left;padding:6px 4px;border-bottom:1px solid #ddd}.phone .topbar .back[data-v-40bf13c6]{width:auto;height:36px;margin:0;border:none;background:none;font-size:16px;color:#8b5e34}.phone .summary[data-v-40bf13c6]{margin:10px 0 4px;font-size:18px}.phone .opponents-view[data-v-40bf13c6]{padding-bottom:80px}.opponents[data-v-40bf13c6]{list-style:none;width:100%;margin:8px 0;padding:0;text-align:left}.opponents li[data-v-40bf13c6]{padding:12px 10px;border-bottom:1px solid #eee;font-size:16px;overflow-wrap:anywhere;cursor:pointer}.opponents li.chosen[data-v-40bf13c6]{background:#ffd39a;font-weight:700}.phone .bottom[data-v-40bf13c6]{position:fixed;left:0;right:0;bottom:0;padding:10px 12px;background:#fff;border-top:1px solid #ddd}.phone .bottom .start[data-v-40bf13c6]{width:100%;max-width:360px;height:48px;margin:0;font-size:18px}.admin:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:#f7f1e6}.admin{max-width:980px;margin:0 auto;padding:0 12px 30px;box-sizing:border-box}.admin-top{display:flex;align-items:center;justify-content:space-between;padding:14px 4px 10px}.admin .admin-top h3{margin:0;font-size:20px;color:#5a3b1e}.admin .admin-top button{width:auto;height:34px;margin:0;padding:0 14px;font-size:14px}.admin-tabs{display:flex;gap:6px;padding:0 4px;border-bottom:2px solid #8b5e34}.admin .admin-tabs button{width:auto;height:auto;margin:0;padding:8px 16px;border:none;border-radius:10px 10px 0 0;background:#efe4cf;color:#7a5a38;font-size:15px}.admin .admin-tabs button.on{background:#ffd39a;color:#5a3b1e;font-weight:600}.admin-tabs i{margin-left:4px;font-style:normal;font-size:12px;color:#9a8466}.admin-card{background:#fff;border:1px solid #e6d8bc;border-top:none;border-radius:0 0 12px 12px;box-shadow:0 1px 3px rgba(90,59,30,.08);overflow:hidden;text-align:left}.admin-card section{padding-bottom:8px}.admin-search{display:flex;padding:10px 12px 0}.admin .admin-search input{flex:1;height:36px;border-radius:18px;padding:0 14px;font-size:14px}.admin-who{display:inline-flex;align-items:center;gap:6px;margin:10px 12px 0;padding:3px 4px 3px 12px;border-radius:14px;background:#8b5e34;color:#fff;font-size:13px}.admin .admin-who button{width:22px;height:22px;min-height:0;margin:0;padding:0;border:none;border-radius:50%;background:hsla(0,0%,100%,.25);color:#fff;font-size:12px}.admin-filter{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px}.admin .admin-filter button{width:auto;height:26px;margin:0;padding:0 12px;border-radius:14px;font-size:13px;color:#5a3b1e}.admin .admin-filter button.on{background:#ffd39a;border-color:#ffd39a}.admin-note{padding:12px 14px;margin:0;color:#9a8466;font-size:14px}.admin-card>section>p.info,.admin-card>section>p.warn{padding:0 14px}.admin table{width:100%;margin:0;border-collapse:collapse}.admin th{padding:6px 10px;border-bottom:1px solid #e6d8bc;background:#f6ecd9;color:#7a5a38;font-size:13px;font-weight:600;text-align:left}.admin td{padding:7px 10px;border-bottom:1px solid #f0e6d3;font-size:14px;text-align:left;white-space:nowrap}.admin td:last-child{white-space:normal}.admin tr:nth-child(odd) td{background:#fdfaf4}.admin tr.is-empty td{background:#f1f1f1}.admin td.num{color:#9a8466;font-variant-numeric:tabular-nums}.admin td.name{font-weight:600}.admin .moves{text-align:right;font-variant-numeric:tabular-nums}.admin td.moves.none{color:#aaa}.admin td.moves .analysis{display:block;font-size:12px;color:#777;white-space:nowrap}.admin td.moves .analysis.old{color:#a0601a}.admin td.acts{text-align:right}.admin .pill{display:inline-block;padding:1px 9px;border-radius:10px;font-size:13px;line-height:20px}.admin .pill.playing{background:#ffd39a;color:#5a3b1e}.admin .pill.done{background:#ece4d6;color:#6b5a44}.admin .pill.empty{background:#5f5f5f;color:#fff}.admin .pill.off{background:#f3d6d2;color:#9b2c22}.admin .pill.ai,.admin .pill.ai-games{background:#efe3f6;color:#6c2f8a}.admin .inline button,.admin td button{width:auto;height:28px;margin:2px;padding:0 10px;border-radius:8px;font-size:13px;white-space:nowrap}.admin button.danger{color:#9b2c22;border-color:#e0b4ad}.admin button.games-link{min-width:64px;color:#8b5e34;font-weight:600}.admin .inline input,.admin .inline select{width:auto;max-width:100%;height:28px;font-size:14px}.admin td select{height:28px;font-size:14px}@media (max-width:600px){.admin{padding:0 8px 30px}.admin tr:first-child{display:none}.admin table,.admin tbody{display:block}.admin tr{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;box-sizing:border-box;padding:8px 12px;border-bottom:1px solid #f0e6d3}.admin tr:nth-child(odd){background:#fdfaf4}.admin tr.is-empty{background:#f1f1f1}.admin td,.admin tr.is-empty td,.admin tr:nth-child(odd) td{display:block;padding:0;border:none;background:transparent;white-space:normal}.admin td:empty{display:none}.admin td.moves{flex:1 0 30%}.admin td.players{flex:1 1 60%;color:#555}.admin td.acts{flex:0 0 auto;margin-left:auto}.admin td.mail{flex:1 1 auto;color:#555;word-break:break-all}.admin td.glink{margin-left:auto}.admin-accounts td.acts,.admin-wechat td.acts{flex:1 1 100%}}.invitation-page[data-v-5e34ca49]>:not(nav){padding:0 10px}.expires[data-v-5e34ca49]{margin:0 0 14px;color:#999;font-size:14px}.loading[data-v-5e34ca49]{margin-top:40px}.logo[data-v-5e34ca49]{width:120px;height:120px;margin-top:16px}.title[data-v-5e34ca49]{overflow-wrap:anywhere}.settings[data-v-5e34ca49]{font-size:18px}.auth .main[data-v-5e34ca49],.auth .share[data-v-5e34ca49],.auth button.withdraw[data-v-5e34ca49]{width:100%;max-width:260px;height:48px;font-size:18px}.auth button.withdraw[data-v-5e34ca49]{font-size:17px}.setrow[data-v-79f3f965]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 8px;min-height:48px;padding:6px 0;box-sizing:border-box;border-bottom:1px solid #eee;font-size:15px;text-align:left}.seg[data-v-79f3f965]{display:inline-flex;margin-left:auto;border:1px solid #c9b48a;border-radius:8px;overflow:hidden}.seg button[data-v-79f3f965]{padding:6px 10px;border:none;border-left:1px solid #eadfc6;background:#fff;color:#2c3e50;font-size:13px;white-space:nowrap;cursor:pointer}.seg button[data-v-79f3f965]:first-child{border-left:none}.seg button.on[data-v-79f3f965]{background:#ffd39a;font-weight:700}.step[data-v-79f3f965]{display:inline-flex;align-items:center;gap:10px;margin-left:auto}.step button[data-v-79f3f965]{width:32px;height:32px;padding:0;border:1px solid #c9b48a;border-radius:16px;background:#fff;color:#2c3e50;font-size:16px;cursor:pointer}.step button[data-v-79f3f965]:disabled{color:#ccc;cursor:default}.step .value[data-v-79f3f965]{min-width:1.5em;text-align:center}h3[data-v-4e0f416b]{margin:8px 0 4px}.settings[data-v-4e0f416b]{max-width:420px;margin:0 auto;padding:0 12px}.preview[data-v-4e0f416b]{margin:12px auto}.wechat-action[data-v-422689e0]{position:relative;display:inline-block;height:40px;vertical-align:middle;width:100%;min-height:40px;box-sizing:border-box;border:1px solid #333;background:#eee;color:#222}.wechat-action.link[data-v-422689e0]{border:0;background:none;color:#2674a0;text-decoration:underline}.wechat-action>.native-fallback[data-v-422689e0]:disabled,.wechat-action[data-v-422689e0]:disabled{color:#777;cursor:default}.wechat-action.link>.native-fallback[data-v-422689e0]{text-decoration:underline}.wechat-action>.native-fallback[data-v-422689e0],.wechat-action>.native-tag[data-v-422689e0]{position:absolute;inset:0;box-sizing:border-box;width:100%!important;max-width:none!important;height:100%!important;min-height:0;margin:0!important;border:0;border-radius:inherit;background:inherit;color:inherit;font:inherit;padding:0}.wechat-action>.native-fallback[data-v-422689e0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inherit;align-items:inherit;justify-content:inherit}.wechat-action>.native-tag.pending[data-v-422689e0]{opacity:0;pointer-events:none}.notify-notice-backdrop[data-v-1754de96]{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45)}.notify-notice[data-v-1754de96]{box-sizing:border-box;width:calc(100% - 36px);max-width:400px;padding:20px 18px 14px;border-radius:12px;background:#fff;color:#2c3e50;text-align:left;font-size:15px;line-height:1.55}.notify-notice h3[data-v-1754de96]{margin:0 0 12px;text-align:center;font-size:18px}.notify-notice p[data-v-1754de96]{margin:0 0 8px}.notify-notice .warning[data-v-1754de96]{margin-bottom:14px;color:#c0392b}.notify-notice .notice-off[data-v-1754de96],.notify-notice .notice-on[data-v-1754de96]{display:block;width:100%;height:46px;margin:0 0 10px;font-size:17px}.wechat-settings[data-v-14adc276]{margin:12px 0}.notify-setting[data-v-14adc276]{width:100%;height:44px;margin:4px 0;padding:0 14px}.notify-hint[data-v-14adc276]{color:#777;font-size:13px;margin:6px 0;text-align:left}.enable-notify[data-v-77bc2200]{display:block;margin:8px auto;max-width:300px}.page-loading[data-v-a33741d2]{margin-top:30vh;color:#888}.brand[data-v-a33741d2]{margin-top:40px}.brand img[data-v-a33741d2]{width:160px;height:160px}.brand h2[data-v-a33741d2]{margin:8px 0 24px}.auth button.wechat-main[data-v-a33741d2]{width:260px;height:52px;font-size:20px;color:#fff;background:#07c160;border:none;border-radius:6px}.have-account[data-v-a33741d2]{font-size:13px;color:#576b95}.wechat-send[data-v-560937ba]{margin:6px auto;max-width:320px;padding:0 10px}.send-to-friend[data-v-560937ba]{width:100%;max-width:260px;height:48px;font-size:18px;color:#fff;background:#07c160;border:none;border-radius:6px}.wechat-send-overlay[data-v-560937ba]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:rgba(0,0,0,.75);color:#fff;text-align:right}.arrow[data-v-560937ba]{display:block;width:110px;height:130px;margin:6px 14px 0 auto}.overlay-close[data-v-560937ba]{position:absolute;left:0;right:0;bottom:40px;margin:0;text-align:center;font-size:18px;opacity:.9}.overlay-text[data-v-560937ba]{margin:0 24px;font-size:22px;line-height:1.4}