.scan__drop{padding:var(--sp-5) var(--sp-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);text-align:center;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);flex-direction:column;align-items:center;gap:8px;display:flex}.scan__drop.is-drag{border-color:var(--fg);background:var(--wash-faint)}.scan__drop.is-error{text-align:left;border-style:solid;border-color:var(--border);align-items:stretch}.scan__badge{background:var(--accent);width:40px;height:40px;color:var(--accent-fg);border-radius:12px;place-items:center;display:inline-grid}.scan__title{font-size:var(--fs-sm);font-weight:var(--fw-bold);align-items:center;gap:8px;margin:0;display:inline-flex}.scan__sub{max-width:46ch;font-size:var(--fs-xs);color:var(--muted);margin:0;line-height:1.45}.scan__hint{font-size:var(--fs-xs);color:var(--faint)}.scan__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.scan__drop.is-error .scan__actions,.scan__status .scan__actions{justify-content:flex-start}.scan__privacy{font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:6px;margin:4px 0 0;display:inline-flex}.scan__drop.is-error .scan__privacy{align-self:flex-start}.scan__cam{flex-direction:column;align-items:center;gap:8px;display:flex}.scan__video{aspect-ratio:4/3;border-radius:var(--r-md);background:#000;width:100%;max-width:420px;position:relative;overflow:hidden}.scan__video video{object-fit:cover;width:100%;height:100%}.scan__frame{aspect-ratio:1;border:1.5px solid var(--accent);pointer-events:none;border-radius:6px;position:absolute;inset:8% auto 8% 50%;transform:translate(-50%);box-shadow:0 0 0 999px #00000059}.scan__reading,.scan__done{gap:var(--sp-3);align-items:flex-start;display:flex}.scan__compare{flex:none;gap:8px;display:flex}.scan__photo{aspect-ratio:1;object-fit:cover;border-radius:var(--r-sm,8px);border:1px solid var(--border);flex:none;width:112px}.scan__photo.is-empty{background:var(--wash)}.scan__photo.is-reading{animation:st-pulse 1.4s var(--ease) infinite}.scan__board{flex:none;width:112px}.scan__status{min-width:0;font-size:var(--fs-sm);flex-direction:column;flex:1;align-items:flex-start;gap:8px;display:flex}@media (width<=639px){.scan__done{flex-direction:column}.scan__compare{width:100%}.scan__photo,.scan__board{width:calc(50% - 4px)}}
