  /* ---------- send / merge between phones ---------- */
  .send-code{font-family:var(--num);font-weight:700;font-size:54px;letter-spacing:4px;text-align:center;padding:10px 0;background:var(--surface-2);border-radius:16px;user-select:all;-webkit-user-select:all;}
  .code-input{font-family:var(--num);font-weight:700;font-size:28px;letter-spacing:3px;text-align:center;height:60px;}
  .merge-from{background:var(--surface-2);border-radius:14px;padding:12px 14px;font-size:14px;color:var(--ink-2);}
  .merge-from b{display:block;color:var(--ink);font-size:17px;font-weight:700;}
  .loop-row{display:flex;gap:8px;}
  .loop-row .input{flex:1;min-width:0;}
  .loop-clear{flex:none;min-width:88px;min-height:48px;padding:0 14px;font-size:15px;}
  .map-row{display:flex;flex-direction:column;gap:6px;}
  .qr-box{display:grid;place-items:center;padding:14px;background:#fff;border-radius:16px;border:1.5px solid var(--line);}
  .qr-box svg{width:min(250px, 68vw);height:auto;display:block;}
  .scan-wrap{display:flex;flex-direction:column;gap:8px;}
  .scan-box{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:1 / 1;}
  .scan-box video{width:100%;height:100%;object-fit:cover;display:block;}
  .scan-box::after{content:'';position:absolute;inset:16%;border:3px solid rgba(255,255,255,.9);border-radius:18px;pointer-events:none;}
  .map-row .label b{color:var(--ink);}
