@keyframes receiptReveal { from {opacity:0;transform:translateY(9px)} to {opacity:1;transform:translateY(0)} }
@keyframes receiptFade {from {opacity:0} to {opacity:1}}
.modal,.img-modal {animation:receiptFade .18s ease-out}
.modal-content,.img-modal__inner,.step,[id$="Screen"],#searchResults,.track-scanner-panel {animation:receiptReveal .24s cubic-bezier(.2,.8,.2,1)}
button,input,textarea {transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}
button:disabled {opacity:.6;cursor:wait}
#step1 label {display:block;margin-top:14px}
#step1 details {margin-top:16px}
.receive-hint {font-size:13px;opacity:.7;margin:14px 0}
#receiptStatus {position:fixed;right:14px;top:10px;z-index:9990;max-width:min(360px,calc(100vw - 28px));background:var(--card-bg,#172638);color:var(--text-primary,#fff);border:1px solid #3984b8;border-radius:14px;box-shadow:0 6px 24px #0003;font-size:12px;overflow:hidden}
#receiptStatus[hidden] {display:none}
#receiptStatus summary {padding:10px 13px;cursor:pointer;list-style:none}
#receiptStatus[data-error="true"] {border-color:#ef9d37}
.receipt-jobs {padding:0 12px;max-height:260px;overflow:auto}
#receiptStatus button {margin:8px 12px;padding:8px 12px;border-radius:8px}
#receiveScreen {padding-top:36px}
@media(prefers-reduced-motion:reduce) { .modal,.img-modal,.modal-content,.img-modal__inner,.step,[id$="Screen"],#searchResults,.track-scanner-panel {animation:none} button,input,textarea {transition:none} }
