/* ═══ Scanning: the header button, the camera sheet, Move mode ═══ */

/* The one filled button in the header: scanning is the app's main verb. */
.icon-btn{flex:none;width:44px;height:44px;border-radius:var(--r-sm);display:grid;place-items:center;
  background:var(--accent);color:var(--on-accent);
  transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.icon-btn:hover{background:var(--accent-strong)}
.icon-btn:active{transform:scale(.96)}
.icon-btn .icon{width:22px;height:22px}

.scan-stage{position:relative;aspect-ratio:4/3;background:#000;border-radius:var(--r-md);
  overflow:hidden;border:1px solid var(--border-strong)}
.scan-video{width:100%;height:100%;object-fit:cover;display:block}
/* The frame is a hint, not a limit: the whole image is decoded. */
.scan-reticle{position:absolute;inset:20% 9%;border:2px solid var(--accent);border-radius:var(--r-md);
  box-shadow:0 0 0 9999px rgba(0,0,0,.38);pointer-events:none}
.scan-status{position:absolute;left:0;right:0;bottom:0;padding:9px 12px;text-align:center;
  background:rgba(6,9,14,.78);color:var(--text);font-size:var(--fs-meta)}
.scan-manual{display:flex;gap:8px;margin-top:12px}
.scan-manual input{flex:1;min-width:0}

/* ── Move mode ───────────────────────────────────────────── */
/* Where things are going, always on screen while scanning. */
.dest{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:14px;
  background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--r-md)}
.dest .lbl{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--text-muted);
  letter-spacing:.1em;text-transform:uppercase}
.dest .site{font-size:1.25rem;font-weight:700;line-height:1.25}

/* A scanned item landing: the card pulses once so the eye finds it. */
.scan-hit{animation:scanHit 1.8s var(--ease-out)}
@keyframes scanHit{
  0%,55%{box-shadow:0 0 0 3px var(--accent),0 0 26px var(--accent-t28)}
  100%{box-shadow:0 0 0 0 transparent}
}
.moved-row{display:flex;align-items:center;gap:12px;padding:11px 14px;margin-bottom:8px;
  background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);width:100%;text-align:left}
.moved-row.bad{border-color:var(--danger-border);background:var(--danger-tint)}
.moved-row .ic{flex:none;width:22px;height:22px;color:var(--accent)}
.moved-row.bad .ic{color:var(--danger)}
