@media (max-width: 640px) {
  .tracker-grid tbody tr[data-id] > td { transition: transform .18s ease-out; }
  .tracker-grid tbody tr.kama-swiping > td, .tracker-grid tbody tr.kama-swipe-settling > td { transform: translateX(var(--kama-swipe-x, 0px)); }
  .tracker-grid tbody tr.kama-swiping > td { transition: none; background-color: rgba(73,156,218,.09); }
}
.kama-row-arrived > td { animation: kama-row-arrive .32s ease-out; }
.kama-row-changed > td { animation: kama-row-change .48s ease-out; }
.kama-row-removed { animation: kama-row-change .48s ease-out; }
#saveStatus.is-saving { display: inline-flex; align-items: center; gap: 7px; }
#saveStatus.is-saving::before { content: ''; width: 13px; height: 13px; flex: 0 0 13px; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: kama-saving-spin .8s linear infinite; }
#saveStatus.kama-save-done { animation: kama-row-change .6s ease-out; }
.kama-queued-toast.is-error { border-color: rgba(255,116,127,.6); color: #ff9da8; }
.kama-queued-toast.is-dialog-blocked { opacity: 0 !important; visibility: hidden !important; transition: none !important; }
.credit-add-choice-overlay { animation: kama-credit-backdrop-in .18s ease-out both; -webkit-backdrop-filter: blur(10px); }
.credit-add-choice-overlay .credit-delete-choice-dialog { animation: kama-credit-dialog-in .2s ease-out both; }
@keyframes kama-credit-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes kama-credit-dialog-in { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes kama-saving-spin { to { transform: rotate(360deg); } }
@keyframes kama-row-arrive { from { opacity: .25; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kama-row-change { from { background-color: rgba(79,190,154,.22); } to { background-color: transparent; } }
@media (prefers-reduced-motion: reduce) {
  .tracker-grid tbody tr[data-id] > td { transition: none; }
  .kama-row-arrived > td, .kama-row-changed > td, .kama-row-removed, #saveStatus.kama-save-done { animation: none; }
  #saveStatus.is-saving::before { animation: none; }
  .kama-queued-toast { transition: none !important; animation: none !important; }
  .credit-add-choice-overlay, .credit-add-choice-overlay .credit-delete-choice-dialog { animation: none !important; }
}
