.notification{position:fixed;top:20px;right:20px;z-index:9999;min-width:320px;max-width:400px;background:white;border-radius:12px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);border:1px solid #e5e7eb;display:flex;align-items:flex-start;gap:12px;padding:16px;transform:translateX(100%);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:auto}.notification-visible{transform:translateX(0);opacity:1}.notification-leaving{transform:translateX(100%);opacity:0}.notification-success{border-left:4px solid #10b981}.notification-success .notification-icon{color:#10b981}.notification-error{border-left:4px solid #ef4444}.notification-error .notification-icon{color:#ef4444}.notification-warning{border-left:4px solid #f59e0b}.notification-warning .notification-icon{color:#f59e0b}.notification-info{border-left:4px solid #3b82f6}.notification-info .notification-icon{color:#3b82f6}.notification-icon{flex-shrink:0;margin-top:2px}.notification-content{flex:1;min-width:0}.notification-title{font-weight:600;font-size:.95rem;color:#111827;margin-bottom:4px;line-height:1.4}.notification-message{font-size:.875rem;color:#6b7280;line-height:1.5}.notification-close{flex-shrink:0;background:none;border:none;cursor:pointer;color:#9ca3af;padding:2px;border-radius:4px;transition:all .2s ease;margin-top:2px}.notification-close:hover{color:#6b7280;background:#f3f4f6}.notification:after{content:"";position:absolute;bottom:0;left:0;height:2px;background:currentColor;opacity:.3;animation:notificationProgress 4s linear;border-radius:0 0 12px 12px}@keyframes notificationProgress{0%{width:100%}to{width:0}}@media (max-width:480px){.notification{top:10px;right:10px;left:10px;min-width:auto;max-width:none;transform:translateY(-100%)}.notification-visible{transform:translateY(0)}.notification-leaving{transform:translateY(-100%)}}.notification:nth-child(2){top:100px}.notification:nth-child(3){top:180px}.notification:nth-child(4){top:260px}.notification:nth-child(5){top:340px}.notification:hover:after{animation-play-state:paused}