.P2pChessTool_roleRow__4NMs_{display:flex;gap:12px;flex-wrap:wrap}.P2pChessTool_roleBtn__S_xjY{flex:1 1;min-width:160px;display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--bg-raised);border:1px solid var(--line-strong);cursor:pointer;text-align:left;font-family:var(--font-mono),var(--font-mono-fallback);transition:border-color .12s,background .12s}.P2pChessTool_roleBtn__S_xjY:hover{border-color:var(--accent);background:var(--bg-hover)}.P2pChessTool_roleBtnTitle__45_0I{font-size:.85rem;color:var(--accent-bright);font-weight:700;letter-spacing:.04em}.P2pChessTool_roleBtnSub__nb0zu{font-size:.7rem;color:var(--text-faint)}.P2pChessTool_joinRow__4s_n5{display:flex;gap:8px;align-items:center}.P2pChessTool_codeInput__Qwsvm{font-family:var(--font-mono);font-size:1.2rem;letter-spacing:.2em;padding:6px 12px;background:transparent;border:1px solid var(--line-strong);color:var(--text);width:160px;text-transform:uppercase}.P2pChessTool_codeInput__Qwsvm:focus{outline:none;border-color:var(--text)}.P2pChessTool_btn__zH9oU{font-family:var(--font-mono);font-size:.75rem;padding:6px 14px;background:transparent;border:1px solid var(--line-strong);color:var(--text);cursor:pointer;white-space:nowrap}.P2pChessTool_btn__zH9oU:hover{background:var(--line-strong)}.P2pChessTool_error__mnAuu{font-family:var(--font-mono);font-size:.75rem;color:var(--err);margin-top:6px}.P2pChessTool_gameHeader__uISrb{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.P2pChessTool_playerBadge__50uyR{font-family:var(--font-mono);font-size:.75rem;padding:3px 10px;border:1px solid var(--line-strong);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.P2pChessTool_playerBadge__50uyR[data-color=white]{border-color:var(--text-dim);color:var(--text-bright)}.P2pChessTool_playerBadge__50uyR[data-color=black]{border-color:var(--accent);color:var(--accent)}.P2pChessTool_statusMsg__0mj6F{font-family:var(--font-mono);font-size:.78rem;color:var(--text-dim);flex:1 1}.P2pChessTool_statusMsg__0mj6F[data-status=check]{color:#f5a623}.P2pChessTool_statusMsg__0mj6F[data-status=checkmate]{color:var(--err);font-weight:700}.P2pChessTool_statusMsg__0mj6F[data-status=stalemate]{color:var(--text-faint)}.P2pChessTool_colLabels__kmTlD{display:grid;grid-template-columns:repeat(8,1fr);margin-left:22px;margin-bottom:2px}.P2pChessTool_label__8yUTo{font-family:var(--font-mono);font-size:.6rem;color:var(--text-faint);text-align:center;line-height:1}.P2pChessTool_boardRow__5Cn8G{display:flex;gap:2px;align-items:flex-start}.P2pChessTool_rowLabels__vvl85{display:flex;flex-direction:column;width:20px;flex-shrink:0}.P2pChessTool_rowLabels__vvl85 .P2pChessTool_label__8yUTo{flex:1 1;display:flex;align-items:center;justify-content:center;aspect-ratio:1}.P2pChessTool_board__eL4kv{display:grid;grid-template-columns:repeat(8,1fr);border:1px solid var(--line-strong);width:100%;max-width:480px;aspect-ratio:1}.P2pChessTool_sq__8xRq4{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background 80ms}.P2pChessTool_sqLight__ANg6N{background:#d9c89e}.P2pChessTool_sqDark__msb_c{background:#7a5c38}.P2pChessTool_sqSel__1nNgp{background:color-mix(in srgb,var(--accent) 55%,transparent)!important}.P2pChessTool_sqLast__J5Y1n{background:color-mix(in srgb,#f5c842 30%,var(--bg))}.P2pChessTool_sqCheck__BM1gy{background:color-mix(in srgb,var(--err) 50%,transparent)!important}.P2pChessTool_sqLight__ANg6N.P2pChessTool_sqLast__J5Y1n{background:#f6f069}.P2pChessTool_sqDark__msb_c.P2pChessTool_sqLast__J5Y1n{background:#c8a61a}.P2pChessTool_targetDot__lpzKq{width:28%;height:28%;border-radius:50%;background:rgba(0,0,0,.22);pointer-events:none}.P2pChessTool_targetCapture__a55t_{position:absolute;inset:0;border-radius:50%;border:4px solid rgba(0,0,0,.22);pointer-events:none}.P2pChessTool_piece__yzvlm{font-size:clamp(1.4rem,4.5vw,2.4rem);line-height:1;pointer-events:none;transition:transform 80ms}.P2pChessTool_piece__yzvlm[data-color=w]{color:var(--text-bright);text-shadow:0 0 2px var(--bg),0 1px 3px rgba(0,0,0,.6)}.P2pChessTool_piece__yzvlm[data-color=b]{color:#1a1008;text-shadow:0 1px 3px rgba(255,255,255,.25)}.P2pChessTool_sq__8xRq4:hover .P2pChessTool_piece__yzvlm{transform:scale(1.08)}@media (max-width:480px){.P2pChessTool_board__eL4kv{max-width:100%}.P2pChessTool_piece__yzvlm{font-size:1.2rem}}