.notification-container {
    position: fixed; top: 1.25rem; right: 1.25rem; z-index: 200000;
    display: flex; flex-direction: column; gap: 0.6rem;
}
.notification {
    background: #0a0a0a; color: #f5f5f5;
    min-width: 320px; max-width: 420px; position: relative;
    transform: translateY(-20px); opacity: 0;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-family: 'Inter', -apple-system, sans-serif; font-size: 0.82rem;
    border: 1px solid rgba(255,255,255,0.1);
    overflow: hidden;
}
.notification.show { transform: translateY(0); opacity: 1; }
.notification-body {
    display: flex; align-items: flex-start; gap: 0.75rem;
    padding: 0.85rem 2rem 0.85rem 0.85rem;
}
.notification-icon { font-size: 0.85rem; flex-shrink: 0; margin-top: 0.1rem; }
.notification-text { flex: 1; font-weight: 400; color: rgba(255,255,255,0.65); line-height: 1.45; }
.notification-timer {
    position: absolute; bottom: 0; left: 0; height: 2px; width: 100%;
    transform-origin: left;
    animation: notif-timer linear forwards;
}
@keyframes notif-timer { from { transform: scaleX(1); } to { transform: scaleX(0); } }
.notification.success .notification-icon { color: #22c55e; }
.notification.success .notification-timer { background: #22c55e; }
.notification.error .notification-icon { color: #ef4444; }
.notification.error .notification-timer { background: #ef4444; }
.notification.info .notification-icon { color: #3b82f6; }
.notification.info .notification-timer { background: #3b82f6; }
.notification-close {
    position: absolute; top: 0.55rem; right: 0.55rem;
    background: none; border: none; color: rgba(255,255,255,0.25);
    cursor: pointer; font-size: 0.75rem; padding: 0;
    line-height: 1; transition: color 0.15s ease;
}
.notification-close:hover { color: #f5f5f5; }
