[dir=rtl] .custom-alert{right:auto;left:20px}.custom-alert{position:fixed;top:20px;right:20px;min-width:300px;max-width:450px;padding:16px;border-radius:8px;background:var(--background);box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:1000;border:1px solid var(--border-light);overflow:hidden}.custom-alert .alert-content{display:flex;align-items:center;justify-content:center;gap:12px}.custom-alert .alert-content .alert-icon{display:flex}.custom-alert .alert-content .alert-message{flex-grow:1;font-size:.95rem;line-height:1.4}.custom-alert .alert-content .alert-close{flex-shrink:0;display:flex;background:none;border:none;color:var(--muted);font-size:1.25rem;cursor:pointer;padding:4px;margin:-4px;border-radius:50%;transition:all .2s ease}.custom-alert .alert-content .alert-close:hover{color:var(--foreground);background:rgba(var(--light-rgb),.1)}.custom-alert .alert-progress{position:absolute;bottom:0;left:0;width:100%;height:3px;background:hsla(0,0%,100%,.1)}.custom-alert .alert-progress:after{content:"";position:absolute;left:0;top:0;height:100%;width:100%;background:currentColor;animation:progress linear forwards}.custom-alert.success{background:rgba(var(--success-rgb),.1);border-color:var(--success);color:var(--success)}.custom-alert.error{background:rgba(var(--error-rgb),.1);border-color:var(--error);color:var(--error)}.custom-alert.warning{background:rgba(var(--warning-rgb),.1);border-color:var(--warning);color:var(--warning)}.custom-alert.info{background:rgba(var(--info-rgb),.1);border-color:var(--info);color:var(--info)}@keyframes slideInLTR{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOutLTR{0%{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@keyframes slideInRTL{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideOutRTL{0%{transform:translateX(0);opacity:1}to{transform:translateX(-100%);opacity:0}}html:not([dir=rtl]) .custom-alert{animation:slideInLTR .3s ease-out}html:not([dir=rtl]) .custom-alert.leaving{animation:slideOutLTR .3s ease-in forwards}html[dir=rtl] .custom-alert{animation:slideInRTL .3s ease-out}html[dir=rtl] .custom-alert.leaving{animation:slideOutRTL .3s ease-in forwards}@keyframes progress{0%{width:100%}to{width:0}}@media(max-width:768px){.custom-alert{top:10px;right:10px;left:10px;min-width:unset;max-width:unset;width:auto}}