.P2pCanvasTool_roleRow__gxTyY{display:flex;gap:12px;flex-wrap:wrap}.P2pCanvasTool_roleBtn__QA45H{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}.P2pCanvasTool_roleBtn__QA45H:hover{border-color:var(--accent);background:var(--bg-hover)}.P2pCanvasTool_roleBtnTitle__8CfCK{font-size:.85rem;color:var(--accent-bright);font-weight:700;letter-spacing:.04em}.P2pCanvasTool_roleBtnSub__RgPSv{font-size:.7rem;color:var(--text-faint)}.P2pCanvasTool_joinRow__dCh0B{display:flex;gap:8px;align-items:center}.P2pCanvasTool_codeInput__CTcXL{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}.P2pCanvasTool_codeInput__CTcXL:focus{outline:none;border-color:var(--text)}.P2pCanvasTool_btn__czFH7{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}.P2pCanvasTool_btn__czFH7:hover:not(:disabled){background:var(--line-strong)}.P2pCanvasTool_btn__czFH7:disabled{opacity:.4;cursor:not-allowed}.P2pCanvasTool_btnActive__UMESI{background:var(--line-strong);border-color:var(--text)}.P2pCanvasTool_btnPrimary__UugMe{font-family:var(--font-mono);font-size:.75rem;padding:6px 14px;background:var(--text);border:1px solid var(--text);color:var(--bg,var(--bg));cursor:pointer;white-space:nowrap}.P2pCanvasTool_btnPrimary__UugMe:hover:not(:disabled){opacity:.85}.P2pCanvasTool_btnPrimary__UugMe:disabled{opacity:.4;cursor:not-allowed}.P2pCanvasTool_toolbar__lnum0{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:6px 0;border-bottom:1px solid var(--line-strong)}.P2pCanvasTool_toolGroup__An__S{display:flex;gap:4px;align-items:center}.P2pCanvasTool_toolSep__CoGAZ{width:1px;height:22px;background:var(--line-strong);margin:0 4px}.P2pCanvasTool_toolBtn__rH4ii{font-family:var(--font-mono);font-size:.7rem;padding:4px 10px;background:transparent;border:1px solid var(--line-strong);color:var(--text);cursor:pointer;white-space:nowrap;min-width:36px;text-align:center}.P2pCanvasTool_toolBtn__rH4ii:hover{border-color:var(--text)}.P2pCanvasTool_toolBtnActive__aCGZa{background:var(--line-strong);border-color:var(--text)}.P2pCanvasTool_colorSwatch__vRH8L{width:20px;height:20px;border:1px solid var(--line-strong);cursor:pointer;padding:0}.P2pCanvasTool_colorInput__XU_HB{width:28px;height:28px;border:none;cursor:pointer;padding:0;background:transparent}.P2pCanvasTool_widthSelect__4ZMSs{font-family:var(--font-mono);font-size:.65rem;padding:3px 6px;background:var(--bg-raised);border:1px solid var(--line-strong);color:var(--text);cursor:pointer}.P2pCanvasTool_canvasWrap__ACozw{position:relative;border:1px solid var(--line-strong);background:var(--bg-raised);overflow:hidden;touch-action:none}.P2pCanvasTool_canvas__6X_Qc{display:block;width:100%}.P2pCanvasTool_frozenOverlay__AUFVk{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.75rem;color:#facc15;background:rgba(0,0,0,.3);pointer-events:none;letter-spacing:.1em}.P2pCanvasTool_peerPointer__EPzWh{position:absolute;width:12px;height:12px;pointer-events:none;transform:translate(-50%,-50%)}.P2pCanvasTool_peerPointerDot__2_oQ6{width:8px;height:8px;border-radius:50%;background:#4ade80;border:1px solid var(--bg)}.P2pCanvasTool_peerPointerLabel__qHeYc{font-family:var(--font-mono);font-size:.6rem;color:#4ade80;position:absolute;left:10px;top:-4px;white-space:nowrap;background:rgba(0,0,0,.7);padding:1px 4px}.P2pCanvasTool_actions__nidiT{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.P2pCanvasTool_hint__EzChB{font-family:var(--font-mono);font-size:.65rem;color:var(--text-faint);margin:4px 0 0}.P2pCanvasTool_error__lxF_e{font-family:var(--font-mono);font-size:.75rem;color:#f87171;margin:4px 0}.P2pCanvasTool_hidden__YfZhP{display:none}