.crm-saving{position:relative;cursor:progress!important}
.crm-saving::after{content:'';position:absolute;inset:auto 6px 3px;height:2px;background:currentColor;border-radius:2px;transform-origin:left;animation:crm-saving-progress .8s ease-in-out infinite alternate;pointer-events:none}
@keyframes crm-saving-progress{from{transform:scaleX(.2);opacity:.4}to{transform:scaleX(1);opacity:1}}
.crm-save-toast{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;padding:16px 24px;max-width:calc(100vw - 32px);box-sizing:border-box;display:flex;gap:10px;align-items:center;border:1px solid var(--line,#ddd);border-radius:16px;background:var(--text,#171917);color:var(--bg,#fff);box-shadow:0 10px 40px #0003;z-index:100000;pointer-events:none;font:500 16px/1.4 system-ui;animation:crm-saved-in .2s ease-out}
.crm-save-check{display:grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;flex:none;animation:crm-check-in .25s ease-out}
.crm-toast-action{pointer-events:auto;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;padding:6px 10px;font:inherit;cursor:pointer}
@keyframes crm-saved-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@keyframes crm-check-in{from{scale:.5;opacity:0}to{scale:1;opacity:1}}
@media(prefers-reduced-motion:reduce){.crm-save-toast,.crm-save-check,.crm-saving::after{animation:none}}
