/* Motion supports feedback and hierarchy; values themselves are never tweened. */
:root { --ease-out: cubic-bezier(.22, 1, .36, 1); --ease-ui: cubic-bezier(.2, .7, .2, 1); }
@media (prefers-reduced-motion: no-preference) {
  body, .c-topbar, .c-card, .c-import-card, .c-sim-card, .c-quotes-card, .c-calc-card, .c-chart-card, .c-historial-card, input, select { transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease; }
  button, .c-button, .c-nav-tab, .c-quote-menu summary, .c-import-advanced summary { transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 220ms var(--ease-out); }
  button:hover:not(:disabled), .c-button:hover { transform: translateY(-1px); }
  button:active:not(:disabled), .c-button:active { transform: translateY(0) scale(.98); }
  .c-rate-card, .c-quote-card--compact { transition: transform 300ms var(--ease-out), box-shadow 300ms ease, border-color 200ms ease; }
  .c-rate-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
  .c-quote-card--compact:hover { border-color: var(--control-border); box-shadow: var(--shadow-md); }
  .c-view:not(.hidden-view) { animation: dz-view-in 450ms var(--ease-out) both; }
  .c-rate-card { animation: dz-card-in 520ms var(--ease-out) both; }
  .c-rate-card:nth-child(2) { animation-delay: 45ms; }
  .c-rate-card:nth-child(3) { animation-delay: 90ms; }
  .c-rate-card:nth-child(4) { animation-delay: 135ms; }
  .c-quote-card--compact { animation: dz-card-in 420ms var(--ease-out) both; }
  .c-quote-card--compact:nth-child(2) { animation-delay: 35ms; }
  .c-quote-card--compact:nth-child(3) { animation-delay: 70ms; }
  .c-quote-card--compact:nth-child(4) { animation-delay: 105ms; }
  #imp-results:not([hidden]), .c-quote-lazy-detail:not([hidden]), .c-sim-card:not([hidden]), .c-import-advanced[open] > .c-import-advanced__body { animation: dz-card-in 350ms var(--ease-out) both; }
  .rate-updated { animation: dz-rate-update 600ms ease-out; }
  .c-quote-card--skeleton span, .c-quote-detail-skeleton span { background: linear-gradient(100deg, var(--line) 30%, var(--bg) 50%, var(--line) 70%); background-size: 200% 100%; animation: dz-loading 1.4s ease-in-out infinite; }
  .dz-modal-overlay.is-in .dz-modal, dialog[open] { animation: dz-dialog-in 300ms var(--ease-out) both; }
  .c-mobile-menu-button[aria-expanded="true"] i { transform: rotate(90deg); }
  .c-mobile-menu-button i { transition: transform 220ms var(--ease-out); }
}
@keyframes dz-view-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes dz-card-in { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
@keyframes dz-dialog-in { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes dz-rate-update { 0% { background-color: var(--selected-bg); } 100% { background-color: transparent; } }
@keyframes dz-loading { from { background-position: 100% 0; } to { background-position: -100% 0; } }
