.qr-screen { max-width:640px; margin:0 auto; min-width:0; }
.qr-screen h2 { font:600 28px/1.35 var(--font-heading); margin:16px 0 24px; text-wrap:balance; }
.qr-card,.qr-settings,.qr-pending { padding:20px; margin-bottom:20px; min-width:0; }
.qr-card { display:flex; flex-direction:column; gap:16px; }
.qr-card h3,.qr-settings h3,.qr-pending h3 { font:600 20px/1.4 var(--font-heading); margin:0; }
.qr-screen .qr-help,.qr-settings .qr-help,.qr-pending .qr-help { font-size:14px; line-height:1.6; color:var(--color-neutral-800); margin:0; overflow-wrap:anywhere; text-wrap:pretty; }
.qr-recipient,.qr-memo { display:flex; flex-direction:column; gap:4px; overflow-wrap:anywhere; }
.qr-recipient > span,.qr-memo > span { font-size:14px; color:var(--color-neutral-800); }
.qr-recipient strong { font-size:18px; }
.qr-memo { padding-top:16px; border-top:1px solid var(--color-divider); }
.qr-memo strong { font-size:16px; white-space:pre-wrap; }
.qr-amount { font:600 clamp(28px,8vw,40px)/1.2 var(--font-heading); overflow-wrap:anywhere; }
.qr-screen .field,.qr-settings .field { min-width:0; }
.qr-categories { min-width:0; border:0; padding:0; margin:0; }
.qr-categories > legend { padding:0; margin-bottom:8px; font-size:14px; color:var(--color-text); }
.qr-category-cards { display:flex; flex-wrap:wrap; gap:7px; }
.qr-category-card { min-height:44px; max-width:100%; padding:10px 14px; box-sizing:border-box;
  display:inline-flex; align-items:center; font:600 13px/1.5 var(--font-heading);
  border:1px solid var(--color-neutral-300); border-radius:var(--radius-sm); background:transparent;
  color:var(--color-text); white-space:normal; overflow-wrap:anywhere; text-align:left; cursor:pointer;
  transition:transform .08s; }
.qr-category-card[aria-pressed="true"] { border-color:var(--color-accent); background:var(--color-accent); color:var(--color-bg); }
.qr-category-card:disabled { cursor:wait; opacity:.65; }
.qr-category-card:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.qr-categories .qr-help { margin-top:8px; }
.qr-screen .field > label,.qr-settings .field > label { display:block; margin-bottom:8px; font-size:14px; }
.qr-screen .input,.qr-settings .input { box-sizing:border-box; width:100%; min-height:44px; font-size:16px; background:var(--color-surface); }
.qr-manual { display:flex; flex-direction:column; gap:16px; }
.qr-actions { display:flex; gap:12px; flex-wrap:wrap; }
.qr-actions > .btn { flex:1 1 220px; white-space:normal; }
.qr-screen .btn,.qr-pending .btn { min-height:44px; text-align:center; line-height:1.4; }
.qr-screen .btn:focus-visible,.qr-screen summary:focus-visible,.qr-settings input:focus-visible,.qr-settings select:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.qr-error,.qr-warning { border-left:3px solid var(--color-accent-2-700); background:var(--color-surface); color:var(--color-text); font-size:14px; line-height:1.6; padding:12px; margin:0; }
.qr-camera-box { position:relative; width:min(100%,280px); aspect-ratio:1; align-self:center; overflow:hidden; border-radius:var(--radius-md); background:var(--color-neutral-100); }
.qr-camera { display:block; width:100%; height:100%; object-fit:cover; }
.qr-camera-guide { position:absolute; inset:12%; border:2px solid white; border-radius:12px; box-shadow:0 0 0 100px rgb(0 0 0 / .3); pointer-events:none; }
.qr-camera-off { display:none; }
.qr-pending-list { display:flex; flex-direction:column; margin-top:12px; gap:12px; }
.qr-pending-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; border-top:1px solid var(--color-divider); padding-top:12px; }
.qr-pending-row > div { flex:1 1 200px; min-width:0; overflow-wrap:anywhere; }
.qr-pending-row strong { font-size:16px; }
.qr-pending-row p { font-size:14px; line-height:1.5; margin:4px 0 0; color:var(--color-neutral-800); }
.qr-toggle { display:flex; gap:12px; align-items:center; min-height:44px; font-size:16px; }
.qr-toggle input { width:20px; height:20px; accent-color:var(--color-accent); flex:none; }
.qr-settings { display:flex; flex-direction:column; gap:16px; max-width:780px; margin:24px auto; }
@media(max-width:480px) { .qr-card,.qr-settings,.qr-pending { padding:16px; } .qr-pending-row > .btn { width:100%; } }

.qr-fallback { border-top:1px solid var(--color-divider); }
.qr-fallback-toggle { cursor:pointer; min-height:44px; width:100%; padding:12px 0; font-family:inherit; font-size:14px; font-weight:600; line-height:1.4; text-align:left; border:0; background:transparent; color:var(--color-text); }
.qr-fallback-toggle:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.qr-fallback .qr-manual { margin-top:4px; }
