/* Гараж Монтаж: движение отмечает завершение и изменение расчёта. */
.gm-status-icon{display:block;width:28px;height:28px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.gm-status-track{opacity:.18}.gm-status-ring{opacity:.7;transform-origin:center;transform:rotate(-90deg)}
.gm-status-tick{stroke-width:2.25}
.success-mark .gm-status-icon{width:39px;height:39px}
.quick-success-mark .gm-status-icon{width:32px;height:32px}
.feedback-check .gm-status-icon{width:23px;height:23px}
@media (prefers-reduced-motion:no-preference){
 .receipt-heading .gm-status-ring,.quick-success:not([hidden]) .gm-status-ring,.cart-feedback:not([hidden]) .gm-status-ring{stroke-dasharray:76;animation:gm-status-ring .62s cubic-bezier(.24,.7,.2,1) both}
 .receipt-heading .gm-status-tick,.quick-success:not([hidden]) .gm-status-tick,.cart-feedback:not([hidden]) .gm-status-tick{stroke-dasharray:20;animation:gm-status-tick .38s .16s cubic-bezier(.2,.7,.2,1) both}
 .receipt-heading .success-mark,.quick-success:not([hidden]) .quick-success-mark,.cart-feedback:not([hidden]) .feedback-check{animation:gm-status-arrive .5s cubic-bezier(.2,.7,.2,1) both}
 .quick-dialog[open]{animation:gm-dialog-enter .22s ease-out both}
 .quick-dialog[open]::backdrop{animation:gm-backdrop-enter .22s ease-out both}
 .gm-price-change{animation:gm-price-update .4s ease-out}
}
@keyframes gm-status-ring{from{stroke-dashoffset:76}to{stroke-dashoffset:0}}
@keyframes gm-status-tick{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}
@keyframes gm-status-arrive{from{transform:scale(.88);opacity:.55}to{transform:scale(1);opacity:1}}
@keyframes gm-dialog-enter{from{opacity:.75;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes gm-backdrop-enter{from{opacity:0}to{opacity:1}}
@keyframes gm-price-update{0%{opacity:.55;transform:translateY(2px)}100%{opacity:1;transform:none}}
